sh.c (sh_gimplify_va_arg_expr): Don't call targetm.calls.must_pass_in_stack for void...
[gcc.git] / gcc / ChangeLog
1 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
2
3 PR target/48767
4 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
5 targetm.calls.must_pass_in_stack for void type.
6
7 2011-04-26 Jan Hubicka <jh@suse.cz>
8
9 * cgraphbuild.c (build_cgraph_edges): Update call
10 of cgraph_create_edge and cgraph_create_indirect_edge.
11 * cgraph.c (cgraph_create_edge_including_clones,
12 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13 cgraph_update_edges_for_call_stmt_node): Do not take nest
14 argument; do not initialize call_stmt_size/time.
15 (dump_cgraph_node): Do not dump nest.
16 (cgraph_clone_edge): Do not take loop_nest argument;
17 do not propagate it; do not clone call_stmt_size/time.
18 (cgraph_clone_node): Likewise.
19 (cgraph_create_virtual_clone): Update.
20 * cgraph.h (struct cgraph_edge): Remove
21 call_stmt_size/call_stmt_time/loop_nest.
22 (cgraph_create_edge, cgraph_create_indirect_edge,
23 cgraph_create_edge_including_clones, cgraph_clone_node): Update
24 prototype.
25 * tree-emutls.c (gen_emutls_addr): Update.
26 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
27 loop_nest; handle indirect calls, too.
28 (clone_inlined_nodes): Do not care about updating inline summaries.
29 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
30 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
31 stream call_stmt_size/call_stmt_time/loop_nest.
32 * ipa-inline.c (edge_badness): Update.
33 (ipa_inline): dump summaries after inlining.
34 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
35 new.
36 (inline_edge_summary): New function.
37 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
38 (inline_edge_removal_hook): Handle edge summaries.
39 (inline_edge_duplication_hook): New hook.
40 (inline_summary_alloc): Alloc hooks.
41 (initialize_growth_caches): Do not register removal hooks.
42 (free_growth_caches); Do not free removal hook.
43 (dump_inline_edge_summary): New function.
44 (dump_inline_summary): Use it.
45 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
46 (inline_update_callee_summaries): New function.
47 (inline_merge_summary): Use it.
48 (do_estimate_edge_time, do_estimate_edge_growth): Update.
49 (read_inline_edge_summary): New function.
50 (inline_read_section): Use it.
51 (write_inline_edge_summary): New function.
52 (inline_write_summary): Use it.
53 (inline_free_summary): Free edge new holders.
54 * tree-inline.c (copy_bb): Update.
55
56 2011-04-26 Jason Merrill <jason@redhat.com>
57
58 * tree-eh.c (lower_try_finally_switch): Create the label along with
59 the CASE_LABEL_EXPR.
60
61 2011-04-26 David S. Miller <davem@davemloft.net>
62 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
63
64 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
65 * configure: Regenerate.
66
67 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
68
69 PR target/48258
70 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
71 reduction.
72 (VEC_reduc): New code iterator and splitters for vector reduction.
73 (VEC_reduc_name): Ditto.
74 (VEC_reduc_rtx): Ditto.
75 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
76 (reduc_<VEC_reduc_name>_v4sf): Ditto.
77
78 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
79 support for extracting SF on VSX.
80
81 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
82 generating xscvspdp.
83 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
84 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
85 double add, minimum, maximum vector reduction.
86 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
87 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
88 optimize double vector reduction.
89 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
90
91 2011-04-26 Joseph Myers <joseph@codesourcery.com>
92
93 * config/fr30/fr30.h (inhibit_libc): Don't define.
94 * config/m32r/m32r-protos.h: Correct comment.
95 * config/v850/v850.h (GHS_default_section_names,
96 GHS_current_section_names): Use tree, not union tree_node *.
97
98 2011-04-26 Xinliang David Li <davidxl@google.com>
99
100 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass
101 warning code.
102 * c-family/c-opts.c (c_common_handle_option): Set
103 warn_maybe_uninitialized.
104 * opts.c (common_handle_option): Ditto.
105 * common.opt: New option.
106 * tree-ssa.c (warn_uninit): Add one more parameter.
107 (warn_uninitialized_var): Pass warning code.
108 * tree-flow.h: Interface change.
109
110
111 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
112
113 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test
114 TARGET_NEWABI.
115 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
116 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
117
118 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
119
120 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
121 * config/mips/mips.opt (mmips-tfile): Remove.
122
123 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
124 mips-tdump reference to ...
125 (Specific, alpha*-dec-osf5.1): ... here.
126 Adapt for Tru64 UNIX.
127 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
128 reference by Tru64 UNIX.
129
130 2011-04-26 Jakub Jelinek <jakub@redhat.com>
131
132 PR debug/48768
133 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
134 is error_mark_node, set value to NULL.
135
136 PR tree-optimization/48734
137 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
138 if return value from maybe_fold_*_comparsions isn't something
139 the code is prepared to handle.
140
141 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
142
143 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
144 mode check.
145 (ext_QIreg_nomode_operands): Remove.
146 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
147 (*andsi_1): Ditto.
148 (*andhi_1): Ditto.
149
150 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
151
152 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
153
154 2011-04-26 Richard Guenther <rguenther@suse.de>
155
156 * c-typeck.c (build_unary_op): Do not expand array-refs via
157 pointer arithmetic. Only adjust qualifiers for function types.
158
159 2011-04-26 Richard Guenther <rguenther@suse.de>
160
161 PR middle-end/48694
162 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
163 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
164 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
165 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
166
167 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
168
169 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
170 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
171 * doc/extend.texi: Document __underlying_type.
172
173 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
174
175 * config/rs6000/titan.md (automata_option "progress"): Remove.
176
177 2011-04-25 Jeff Law <law@redhat.com>
178
179 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
180
181 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
182
183 * system.h (ENUM_BITFIELD): Remove.
184
185 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
186 Eric Botcazou <ebotcazou@adacore.com>
187
188 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
189 for STORE_FLAG_VALUE==-1 case.
190
191 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
192
193 PR target/43804
194 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
195 LEGITIMATE_PIC_OPERAND_P.
196
197 2011-04-24 Jan Hubicka <jh@suse.cz>
198
199 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
200 WPA hack.
201 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
202 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
203 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
204 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
205 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
206 Sanity check predicate length.
207 (remap_predicate): Likewise; sanity check jump functions.
208 (inline_read_section, inline_write_summary): Sanity check
209 predicate length.
210
211 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
212
213 PR other/48748
214 * doc/extend.texi (Type Traits): Document __is_standard_layout,
215 __is_literal_type, and __is_trivial; update throughout about
216 possibly cv-qualified void types.
217
218 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
219
220 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
221 testsuite and make it version agnostic.
222
223 2011-04-22 Jan Hubicka <jh@suse.cz>
224
225 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
226
227 2011-04-23 Jakub Jelinek <jakub@redhat.com>
228
229 PR c/48685
230 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
231 to VOID_TYPE even around MODIFY_EXPR.
232
233 2011-04-22 Mike Stump <mikestump@comcast.net>
234
235 * gensupport.c (read_md_rtx): Fix typo in comment.
236 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
237 comment.
238
239 2011-04-22 Jan Hubicka <jh@suse.cz>
240
241 * gengtype.c (open_base_files): Add ipa-inline.h include.
242 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
243 ipa-prop.c; update all uses.
244 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
245 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
246 merge summary of inlined function into former caller.
247 * ipa-inline.c (max_benefit): Remove.
248 (edge_badness): Compensate for removal of benefits.
249 (update_caller_keys): Use
250 reset_node_growth_cache/reset_edge_growth_cache.
251 (update_callee_keys): Likewise.
252 (update_all_callee_keys): Likewise.
253 (inline_small_functions): Do not collect max_benefit; do not reset
254 estimated_growth; call free_growth_caches and initialize_growth_caches.
255 * ipa-inline.h (struct condition, type clause_t, struct predicate,
256 struct size_time_entry): New structures.
257 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
258 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
259 and estimated_growth.
260 (edge_growth_cache_entry): New structure.
261 (node_growth_cache, edge_growth_cache): New global vars.
262 (estimate_growth): Turn into inline.
263 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
264 initialize_growth_caches, free_growth_caches): Declare.
265 (estimate_edge_growth): Rewrite.
266 (estimate_edge_time): Implement as inline cache lookup.
267 (reset_node_growth_cache, reset_edge_growth_cache): New inline
268 functions.
269 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
270 (NUM_CONDITIONS): New constant.
271 (predicate_conditions): New enum.
272 (IS_NOT_CONSTANT): New constant.
273 (edge_removal_hook_holder): New var.
274 (node_growth_cache, edge_growth_cache): New global vars.
275 (true_predicate, single_cond_predicate, false_predicate,
276 not_inlined_predicate, add_condition, add_clause, and_predicates,
277 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
278 dump_clause, dump_predicate, account_size_time,
279 evaulate_conditions_for_edge): New functions.
280 (inline_summary_alloc): Move to heap.
281 (inline_node_removal_hook): Clear condition and entry vectors.
282 (inline_edge_removal_hook): New function.
283 (initialize_growth_caches, free_growth_caches): New function.
284 (dump_inline_summary): Update.
285 (edge_execution_predicate): New function.
286 (will_be_nonconstant_predicate): New function.
287 (estimate_function_body_sizes): Compute BB and constantness predicates.
288 (compute_inline_parameters): Do not clear estimated_growth.
289 (estimate_edge_size_and_time): New function.
290 (estimate_calls_size_and_time): New function.
291 (estimate_callee_size_and_time): New function.
292 (remap_predicate): New function.
293 (inline_merge_summary): New function.
294 (do_estimate_edge_time): New function based on...
295 (estimate_edge_time): ... this one.
296 (do_estimate_edge_growth): New function.
297 (do_estimate_growth): New function based on....
298 (estimate_growth): ... this one.
299 (inline_analyze_function): Analyze after deciding on jump functions.
300 (inline_read_section): New function.
301 (inline_read_summary): Use it.
302 (inline_write_summary): Write all the new data.
303 * ipa-prop.c (ipa_get_param_decl_index): Export.
304 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
305 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
306 Declare.
307 (ipa_get_lattice): Move here from ipa-cp.c
308 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
309 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
310 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
311 cgraph_edge_inlinable_p): Remove.
312 * cgraphunit.c: Include ipainline.h
313 (cgraph_process_new_functions): Update call of
314 compute_inline_parameters.
315
316 2011-04-22 Richard Guenther <rguenther@suse.de>
317
318 * tree.c (build_int_cst): Properly create canonicalized integer
319 constants.
320 (build_int_cst_type): Remove scary comments.
321
322 2011-04-22 Xinliang David Li <davidxl@google.com>
323
324 * toplev.c (process_options): Enable -Werror=coverage-mismatch
325 by default when -Wno-error is not specified.
326 * opts-global.c (decode_options): Remove call to
327 control_warning_options.
328
329 2011-04-22 Jakub Jelinek <jakub@redhat.com>
330
331 PR tree-optimization/48717
332 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
333 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
334
335 2011-04-22 Joseph Myers <joseph@codesourcery.com>
336
337 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
338 definition where used.
339
340 2011-04-22 Jakub Jelinek <jakub@redhat.com>
341
342 PR c/48716
343 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
344 TREE_STATIC variables declared inside of some OpenMP construct.
345
346 2011-04-22 Martin Jambor <mjambor@suse.cz>
347
348 PR middle-end/48585
349 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
350
351 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
352
353 PR c/36750
354 * c-typeck.c (pop_init_level): Do not warn about initializing
355 with ` = {0}'.
356
357 2011-04-22 Alan Modra <amodra@gmail.com>
358
359 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
360 when returning call_cookie.
361 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
362 pointers, to functions with no more vector args than the current
363 function, and some non-local calls for ABI_V4.
364 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
365 sibcall_nonlocal_aix64): Combine to ..
366 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
367 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
368 (sibcall_value_nonlocal_aix<mode>): ..likewise.
369 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
370 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
371 operand.
372 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
373 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
374 sibcall_value_symbolic_64): Delete.
375
376 2011-04-21 Xinliang David Li <davidxl@google.com>
377
378 * cgraph.h: Remove pid.
379 * cgraph.c: Remove pid.
380 * value-prof.c (init_node_map): New function.
381 (del_node_map): New function.
382 (find_func_by_funcdef_no): New function.
383 (gimple_ic_transform): Call new function.
384 * cgraphunit.c (cgraph_finalize_function): Remove pid.
385 * function.c (get_last_funcdef_no): New function.
386 * function.h (get_last_funcdef_no): New function.
387 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
388 to libgcov function.
389 (tree-profiling): Call node map init and delete function.
390
391 2011-04-21 Ian Lance Taylor <iant@google.com>
392
393 * godump.c (go_format_type): Use exported Go name for anonymous
394 field name.
395
396 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
397
398 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
399 Call builtin_function_type_list instead of builtin_function_type.
400 (UNARY, BINARY, TRINARY, QUAD): Likewise.
401
402 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
403
404 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
405 build_function_type_list instead of build_function_type.
406 Delete variable `endlink'.
407
408 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
409
410 * config/s390/s390.c (s390_init_builtins): Call
411 build_function_type_list instead of build_function_type.
412
413 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
414
415 * config/ia64/ia64.c (ia64_init_builtins): Call
416 build_function_type_list instead of builtin_function_type.
417
418 2011-04-21 Easwaran Raman <eraman@google.com>
419
420 * cfgexpand.c (stack_var): Remove OFFSET...
421 (add_stack_var): ...and its reference here...
422 (expand_stack_vars): ...and here.
423 (stack_var_cmp): Sort by descending order of size.
424 (partition_stack_vars): Change heuristic.
425 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
426 (dump_stack_var_partition): Add newline after each partition.
427
428 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
429 Jeff Law <law@redhat.com>
430
431 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
432 * gengtype.c (matching_file_name_substitute): Likewise.
433
434 2011-04-21 Richard Guenther <rguenther@suse.de>
435
436 PR lto/48703
437 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
438
439 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
440
441 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
442
443 2011-04-21 Richard Guenther <rguenther@suse.de>
444
445 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
446 file name.
447
448 2011-04-21 Richard Guenther <rguenther@suse.de>
449
450 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
451 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
452 Use DECL_P, not SSA_VAR_P.
453 (ptr_derefs_may_alias_p): Likewise.
454 (ptr_deref_may_alias_ref_p_1): Likewise.
455 (decl_refs_may_alias_p): Likewise.
456 (refs_may_alias_p_1): Likewise.
457 (ref_maybe_used_by_call_p_1): Likewise.
458 (call_may_clobber_ref_p_1): Likewise.
459 (indirect_ref_may_alias_decl_p): Assume indirect refrences
460 are either MEM_REF or TARGET_MEM_REF.
461 (indirect_refs_may_alias_p): Likewise.
462 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
463 for MEM_EXPR of indirect calls.
464
465 2011-04-21 Tristan Gingold <gingold@adacore.com>
466
467 * vmsdbgout.c (write_srccorr): Compute file length from the string.
468 (dst_file_info_struct): Remove flen field.
469 (lookup_filename): Remove code that set flen field.
470
471 2011-04-21 Tristan Gingold <gingold@adacore.com>
472
473 * config/ia64/ia64.c (ia64_start_function): Add a guard.
474
475 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
476
477 PR target/48708
478 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
479 vec_extract and vec_concat for non-SSE4_1 targets.
480
481 2011-04-21 Richard Guenther <rguenther@suse.de>
482
483 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
484 return statements.
485
486 2011-04-21 Joseph Myers <joseph@codesourcery.com>
487
488 * config/i386/cygming.h (union tree_node, TREE): Don't define or
489 undefine.
490 (FILE): Don't undefine.
491
492 2011-04-21 Joseph Myers <joseph@codesourcery.com>
493
494 * config/alpha/alpha.c (struct machine_function): Use rtx, not
495 struct rtx_def *.
496 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
497 struct rtx_def *.
498 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
499 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
500 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
501 rtx_def *.
502 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
503 definitions where used.
504 * config/microblaze/microblaze.h (struct microblaze_args): Use
505 rtx, not struct rtx_def *.
506 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
507 rtx_def *.
508 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
509 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
510 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
511 not struct rtx_def *.
512 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
513 struct rtx_def *.
514 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
515 rtx_def *.
516 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
517
518 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
519
520 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
521 operand_equal_p to compare DR_BASE_ADDRESSes.
522 (vect_check_interleaving): Likewise.
523
524 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
525
526 PR target/46329
527 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
528 for all Neon struct constants.
529
530 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
531
532 * target.def (legitimate_constant_p): New hook.
533 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
534 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
535 * doc/tm.texi: Regenerate.
536 * hooks.h (hook_bool_mode_rtx_true): Declare.
537 * hooks.c (hook_bool_mode_rtx_true): Define.
538 * system.h (LEGITIMATE_CONSTANT_P): Poison.
539 * calls.c (precompute_register_parameters): Replace uses of
540 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
541 (emit_library_call_value_1): Likewise.
542 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
543 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
544 * ira-costs.c (scan_one_insn): Likewise.
545 * recog.c (general_operand, immediate_operand): Likewise.
546 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
547 * reload1.c (init_eliminable_invariants): Likewise.
548
549 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
550 mode argument.
551 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
552 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
553 argument.
554 (TARGET_LEGITIMATE_CONSTANT_P): Define.
555 * config/alpha/predicates.md (input_operand): Update call to
556 alpha_legitimate_constant_p.
557
558 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
559 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
560 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
561 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
562 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
563 (arm_legitimate_constant_p): New functions.
564 (arm_cannot_force_const_mem): Make static.
565
566 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
567
568 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
569 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
570 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
571 instead of bfin_legitimate_constant_p.
572 (bfin_legitimate_constant_p): Make static. Add a mode argument.
573 (TARGET_LEGITIMATE_CONSTANT_P): Define.
574
575 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
576
577 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
578
579 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
580 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
581 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
582 (frv_legitimate_constant_p): Make static. Add a mode argument.
583
584 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
585 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
586 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
587
588 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
589 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
590 * config/i386/i386.c (legitimate_constant_p): Rename to...
591 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
592 argument.
593 (ix86_cannot_force_const_mem): Update accordingly.
594 (ix86_legitimate_address_p): Likewise.
595 (TARGET_LEGITIMATE_CONSTANT_P): Define.
596 * config/i386/i386.md: Update commentary.
597
598 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
599 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
600 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
601 (ia64_legitimate_constant_p): Make static. Add a mode argument.
602
603 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
604
605 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
606 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
607 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
608 (lm32_legitimate_constant_p): Make static. Add a mode argument.
609
610 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
611 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
612 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
613
614 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
615 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
616 (m32r_legitimate_constant_p): New function.
617
618 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
619 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
620 LEGITIMATE_CONSTANT_P.
621 (LEGITIMATE_CONSTANT_P): Delete.
622 * config/m68k/m68k.c (m68k_expand_prologue): Call
623 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
624 (m68k_legitimate_constant_p): New function.
625 * config/m68k/m68k.md: Update comments.
626
627 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
628 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
629 (mcore_legitimate_constant_p): New function.
630
631 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
632 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
633 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
634 Add a mode argument.
635 (mep_legitimate_address): Update accordingly.
636 (TARGET_LEGITIMATE_CONSTANT_P): Define.
637
638 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
639 Delete.
640 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
641 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
642 static. Check OP's mode for VOIDmode.
643 (microblaze_legitimate_constant_p): New function.
644 (TARGET_LEGITIMATE_CONSTANT_P): Define.
645
646 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
647 * config/mips/mips.c (mips_legitimate_constant_p): New function.
648 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
649 (TARGET_LEGITIMATE_CONSTANT_P): Define.
650 * config/mips/predicates.md: Update comments.
651
652 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
653 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
654 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
655 (mmix_legitimate_constant_p): Make static, return a bool, and take
656 a mode argument.
657 (mmix_print_operand_address): Update accordingly.
658
659 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
660 Delete.
661 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
662 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
663 static. Add a mode argument.
664 (TARGET_LEGITIMATE_CONSTANT_P): Define.
665
666 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
667
668 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
669 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
670 (pa_legitimate_constant_p): New function.
671
672 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
673
674 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
675 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
676 (pdp11_legitimate_constant_p): New function.
677
678 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
679 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
680 (rs6000_legitimate_constant_p): New function.
681
682 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
683 (rx_legitimate_constant_p): ...this.
684 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
685 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
686 (rx_legitimate_constant_p): ...this.
687 (TARGET_LEGITIMATE_CONSTANT_P): Define.
688 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
689
690 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
691 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
692 * config/s390/s390.c (legitimate_constant_p): Rename to...
693 (s390_legitimate_constant_p): ...this. Make static, return a bool,
694 and add a mode argument.
695 (TARGET_LEGITIMATE_CONSTANT_P): Define.
696
697 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
698
699 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
700 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
701 (sh_legitimate_constant_p): New function.
702
703 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
704 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
705 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
706 (legitimate_constant_p): Rename to...
707 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
708 argument.
709 (constant_address_p): Update accordingly.
710
711 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
712 argument and return a bool.
713 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
714 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
715 (spu_legitimate_constant_p): Add a mode argument and return a bool.
716 (spu_rtx_costs): Update accordingly.
717 * config/spu/predicates.md (vec_imm_operand): Likewise.
718
719 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
720
721 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
722 * config/v850/v850.c (v850_legitimate_constant_p): New function.
723 (TARGET_LEGITIMATE_CONSTANT_P): Define.
724
725 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
726 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
727 * config/vax/vax.c (legitimate_constant_p): Likewise.
728
729 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
730 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
731 (xtensa_legitimate_constant_p): New function.
732
733 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
734
735 * target.def (cannot_force_const_mem): Add a mode argument.
736 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
737 * doc/tm.texi: Regenerate.
738 * hooks.h (hook_bool_mode_rtx_false): Declare.
739 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
740 (hook_bool_mode_const_rtx_true): Likewise.
741 (hook_bool_mode_rtx_false): New function.
742 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
743 to be non-VOID. Update call to cannot_force_const_mem.
744 (find_reloads): Update accordingly.
745 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
746 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
747 argument.
748 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
749 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
750 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
751 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
752 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
753 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
754 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
755 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
756 (m68k_cannot_force_const_mem): ...this new function.
757 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
758 argument.
759 (mips_const_insns, mips_legitimize_const_move): Update calls.
760 (mips_secondary_reload_class): Likewise.
761 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
762 (pa_cannot_force_const_mem): ...this new function.
763 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
764 (rs6000_cannot_force_const_mem): ...this new function.
765 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
766 argument.
767 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
768 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
769 to...
770 (xtensa_cannot_force_const_mem): ...this new function.
771
772 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
773
774 * config/mips/mips.c (mips16_build_function_stub): Call
775 build_function_type_list instead of build_function_type.
776 (mips16_build_call_stub): Likewise.
777
778 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
779
780 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
781 instead of build_function_type.
782
783 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
784
785 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
786 instead of build_function_type.
787
788 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
789
790 PR target/48678
791 * config/i386/i386.md (insv): Change operand 0 constraint to
792 "register_operand". Change operand 1 and 2 constraint to
793 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
794 * config/i386/sse.md (sse4_1_pinsrb): Export.
795 (sse2_pinsrw): Ditto.
796 (sse4_1_pinsrd): Ditto.
797 (sse4_1_pinsrq): Ditto.
798 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
799 * config/i386/i386.c (ix86_expand_pinsr): New.
800
801 2011-04-20 Easwaran Raman <eraman@google.com>
802
803 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
804 containing union type only with -fstrict-aliasing.
805
806 2011-04-20 Jim Meyering <meyering@redhat.com>
807
808 Remove useless if-before-free tests.
809 * calls.c (expand_call, save_area): Likewise.
810 * cfgcleanup.c (try_forward_edges): Likewise.
811 * collect2.c (collect_execute): Likewise.
812 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
813 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
814 * coverage.c (coverage_checksum_string): Likewise.
815 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
816 * cselib.c (cselib_init): Likewise.
817 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
818 (df_set_clean_cfg): Likewise.
819 * function.c (free_after_compilation): Likewise.
820 * gcc.c (do_spec_1, main): Likewise.
821 * gcov.c (create_file_names): Likewise.
822 * gensupport.c (identify_predicable_attribute): Likewise.
823 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
824 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
825 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
826 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
827 * ipa-pure-const.c (local_pure_const): Likewise.
828 * ipa-reference.c (propagate): Likewise.
829 * ira-costs.c (free_ira_costs): Likewise.
830 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
831 * matrix-reorg.c (mat_free): Likewise.
832 * prefix.c (get_key_value): Likewise.
833 * profile.c (compute_value_histograms): Likewise.
834 * reload1.c (free_reg_equiv): Likewise.
835 * sched-deps.c (free_deps): Likewise.
836 * sel-sched-ir.c (fence_clear): Likewise.
837 * sese.c (set_rename, if_region_set_false_region): Likewise.
838 * tree-data-ref.c (free_rdg): Likewise.
839 * tree-eh.c (lower_try_finally): Likewise.
840 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
841 * tree-ssa-live.c (delete_var_map): Likewise.
842 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
843 * tree-ssa-pre.c (phi_trans_add): Likewise.
844
845 2011-04-20 Jakub Jelinek <jakub@redhat.com>
846
847 PR tree-optimization/48611
848 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
849 beyond ERT_MUST_NOT_THROW region.
850
851 2011-04-20 Catherine Moore <clm@codesourcery.com>
852
853 * config/mips/mips.opt (mfix-24k): New.
854 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
855 * config/mips/mips.md (length): Increase by 4 for stores if
856 fixing 24K errata.
857 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
858 all noreorder if fixing 24K errata.
859 * doc/invoke.texi: Document mfix-24k.
860
861 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
862
863 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
864 quad-word modes, reduce to 9-bit index range when above 1016 limit.
865
866 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
867
868 * config/arm/arm.c (arm_gen_constant): Move movw support ....
869 (const_ok_for_op): ... to here.
870
871 2011-04-20 Kai Tietz <ktietz@redhat.com>
872
873 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
874 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
875
876 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
877
878 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
879
880 2011-04-20 Richard Guenther <rguenther@suse.de>
881
882 PR tree-optimization/47892
883 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
884 are if-convertible.
885
886 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
887
888 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
889
890 2011-04-20 Tristan Gingold <gingold@adacore.com>
891
892 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
893
894 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
895
896 PR target/18145
897
898 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
899 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
900 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
901 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
902 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
903
904 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
905 New prototype.
906
907 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
908 (avr_asm_named_section, avr_asm_output_aligned_common,
909 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
910 New functions to update...
911 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
912 (avr_asm_init_sections): Overwrite section callbacks for
913 data_section, bss_section.
914 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
915 from here to...
916 (avr_file_end): ...here.
917
918 2011-04-20 Richard Guenther <rguenther@suse.de>
919
920 PR middle-end/48695
921 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
922 objects and types here. Adjust for their offset before comparing.
923
924 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
925
926 * tree-vect-stmts.c (vectorizable_store): Only chain one related
927 statement per copy.
928
929 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
930
931 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
932 (GIMPLE_H): Include $(INTERNAL_FN_H).
933 (OBJS-common): Add internal-fn.o.
934 (internal-fn.o): New rule.
935 * internal-fn.def: New file.
936 * internal-fn.h: Likewise.
937 * internal-fn.c: Likewise.
938 * gimple.h: Include internal-fn.h.
939 (GF_CALL_INTERNAL): New gf_mask.
940 (gimple_statement_call): Put fntype into a union with a new
941 internal_fn field.
942 (gimple_build_call_internal): Declare.
943 (gimple_build_call_internal_vec): Likewise.
944 (gimple_call_same_target_p): Likewise.
945 (gimple_call_internal_p): New function.
946 (gimple_call_internal_fn): Likewise.
947 (gimple_call_fntype): Return null for internal calls.
948 (gimple_call_set_fntype): Assert that the function is not internal.
949 (gimple_call_set_fn): Likewise.
950 (gimple_call_set_fndecl): Likewise.
951 (gimple_call_set_internal_fn): New function.
952 (gimple_call_addr_fndecl): Handle null functions.
953 (gimple_call_return_type): Likewise null types.
954 * gimple.c (gimple_build_call_internal_1): New function.
955 (gimple_build_call_internal): Likewise.
956 (gimple_build_call_internal_vec): Likewise.
957 (gimple_call_same_target_p): Likewise.
958 (gimple_call_flags): Handle calls to internal functions.
959 (gimple_call_fnspec): New function.
960 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
961 (gimple_has_side_effects): Handle null functions.
962 (gimple_rhs_has_side_effects): Likewise.
963 (gimple_call_copy_skip_args): Handle calls to internal functions.
964 * cfgexpand.c (expand_call_stmt): Likewise.
965 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
966 * gimple-fold.c (gimple_fold_call): Handle null functions.
967 (gimple_fold_stmt_to_constant_1): Don't fold
968 calls to internal functions.
969 * gimple-low.c (gimple_check_call_args): Handle calls to internal
970 functions.
971 * gimple-pretty-print.c (dump_gimple_call): Likewise.
972 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
973 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
974 (do_warn_unused_result): Likewise.
975 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
976 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
977 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
978 the target of a call.
979 (initialize_hash_element): Update accordingly.
980 (hashable_expr_equal_p): Use gimple_call_same_target_p.
981 (iterative_hash_hashable_expr): Handle calls to internal functions.
982 (print_expr_hash_elt): Likewise.
983 * tree-ssa-pre.c (can_value_number_call): Likewise.
984 (eliminate): Handle null functions.
985 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
986 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
987 (find_func_aliases): Likewise.
988 * value-prof.c (gimple_ic_transform): Likewise.
989 (gimple_indirect_call_to_profile): Likewise.
990 * lto-streamer-in.c (input_gimple_stmt): Likewise.
991 * lto-streamer-out.c (output_gimple_stmt): Likewise.
992
993 2011-04-19 Jan Hubicka <jh@suse.cz>
994
995 * ipa-inline-transform.c (save_inline_function_body): Add comments.
996 * ipa-inline.c (inline_small_functions): Compute summaries first,
997 populate heap later.
998
999 2011-04-19 Jan Hubicka <jh@suse.cz>
1000
1001 * cgraph.h (save_inline_function_body): Remove.
1002 * ipa-inline-transform.c: New file, broke out of...
1003 * ipa-inline.c: ... this one; Update toplevel comment.
1004 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
1005 make global.
1006 (update_noncloned_frequencies): Move to ipa-inline-transform.c
1007 (cgraph_mark_inline_edge): Rename to inline_call; move to
1008 ipa-inline-transform.c.
1009 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
1010 move to ipa-inline-transform.c
1011 (recursive_inlining, inline_small_functions, flatten_function,
1012 ipa_inline, inline_always_inline_functions,
1013 early_inline_small_functions): Update.
1014 (inline_transform): Move to ipa-inline-transform.c.
1015 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
1016 Declare.
1017 * Makefile.in (ipa-inline-transform.o): New file.
1018 * cgraphunit.c (save_inline_function_body): Move to
1019 ipa-inline-transform.c
1020
1021 2011-04-19 DJ Delorie <dj@redhat.com>
1022
1023 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
1024 registers if we already know there aren't any.
1025 (m32c_emit_epilogue): Don't emit a barrier here.
1026 (m32c_emit_eh_epilogue): Likewise.
1027 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
1028 operands at expand time.
1029 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
1030 int" wchar type.
1031 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
1032 duplicates. Provide aliases instead.
1033 * config/m32c/prologue.md (eh_return): Emit a barrier here.
1034 (eh_epilogue): Add a "(return)" here as a hint to other parts of
1035 the compiler.
1036
1037 2011-04-19 Anatoly Sokolov <aesok@post.ru>
1038
1039 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
1040 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
1041 (general_or_i64_p, sparc_register_move_cost): New function.
1042
1043 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1044
1045 * doc/install.texi (Configuration, --enable-threads): Remove mach.
1046 Add lynx, mipssde. Sort table.
1047
1048 2011-04-19 Xinliang David Li <davidxl@google.com>
1049
1050 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
1051 not negative.
1052
1053 2011-04-19 Jakub Jelinek <jakub@redhat.com>
1054
1055 PR target/48678
1056 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
1057 is a SUBREG with non-MODE_INT mode inside of it.
1058
1059 2011-04-19 Martin Jambor <mjambor@suse.cz>
1060
1061 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
1062 also according to actual contants.
1063 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
1064 (gimple_fold_call): Use it.
1065 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
1066
1067 2011-04-19 Martin Jambor <mjambor@suse.cz>
1068
1069 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
1070 non-pointer assignments.
1071
1072 2011-04-19 Martin Jambor <mjambor@suse.cz>
1073
1074 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
1075 account anc_offset and otr_type from the indirect edge info.
1076 * ipa-prop.c (get_ancestor_addr_info): New function.
1077 (compute_complex_ancestor_jump_func): Assignment analysis moved to
1078 get_ancestor_addr_info, call it.
1079 (ipa_note_param_call): Do not initialize information about polymorphic
1080 calls, return the indirect call graph edge. Remove the last
1081 parameter, adjust all callers.
1082 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
1083 parameters. Initialize polymorphic information in the indirect edge.
1084
1085 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
1086
1087 PR lto/48148
1088 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
1089 the types if they have different enumeration identifiers.
1090
1091 2011-04-19 Jan Hubicka <jh@suse.cz>
1092
1093 * cgraph.h (cgraph_optimize_for_size_p): Declare.
1094 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
1095 * predict.c (cgraph_optimize_for_size_p): Break out from ...
1096 (optimize_function_for_size_p) ... here.
1097
1098 2011-04-19 Richard Guenther <rguenther@suse.de>
1099
1100 PR lto/48207
1101 * tree.c (free_lang_data): Do not reset the decl-assembler-name
1102 langhook.
1103
1104 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
1105
1106 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
1107 if DECL_NO_INLINE_WARNING_P is set on the function.
1108
1109 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
1110
1111 PR fortran/47976
1112 * reload1.c (inc_for_reload): Return void. All callers changed.
1113 (emit_input_reload_insns): Don't try to delete previous output
1114 reloads to a register, or record spill_reg_store for autoincs.
1115
1116 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
1117
1118 * gengtype.h: Updated copyright year.
1119 (struct input_file_st): Add inpisplugin field.
1120 (type_fileloc): New function.
1121 * gengtype.c
1122 (write_typed_struct_alloc_def): Add gcc_assert.
1123 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
1124 (write_typed_alloc_defns): Don't output for plugin files.
1125 (input_file_by_name): Clear inpisplugin field.
1126 (main): Set inpisplugin field for plugin files.
1127
1128 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
1129
1130 * gengtype-state.c (string_eq): New.
1131 (read_state): Use string_eq instead of strcmp when creating the
1132 state_ident_tab.
1133
1134 2011-04-19 Wei Guozhi <carrot@google.com>
1135
1136 PR target/47855
1137 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
1138 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
1139 linkage.
1140 * config/arm/constraints.md (Uu): New constraint.
1141 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
1142
1143 2011-04-19 Tristan Gingold <gingold@adacore.com>
1144
1145 * config.gcc (-*-*-*vms): Added.
1146 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
1147 definitions moved.
1148 * config/vms/vms-ld.c: New file.
1149 * config/vms/vms-ar.c: New file.
1150 * config/vms/t-vmsnative: New file.
1151
1152 2011-04-18 Xinliang David Li <davidxl@google.com>
1153
1154 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
1155
1156 2011-04-18 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR middle-end/48661
1159 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
1160 if TREE_TYPE (v) is non-NULL.
1161
1162 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
1163 gimple_get_virt_mehtod_for_binfo.
1164 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
1165 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
1166 callers.
1167 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1168
1169 2011-04-18 Michael Matz <matz@suse.de>
1170 Steve Ellcey <sje@cup.hp.com>
1171
1172 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
1173 use its mode as source mode if it isn't VOIDmode.
1174
1175 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
1176
1177 * doc/passes.texi: Fill crossref nodes.
1178
1179 2011-04-18 Jim Meyering <meyering@redhat.com>
1180
1181 Fix doubled-word typos in comments and strings
1182 * config/alpha/vms-unwind.h: s/for for/for/
1183 * config/arm/unwind-arm.h: Likewise.
1184 * config/microblaze/microblaze.c: Likewise.
1185 * config/sh/constraints.md: s/in in/in/
1186 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1187
1188 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
1189
1190 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1191 (AVX_FLOAT_MODE_P): Ditto.
1192 (AVX128_VEC_FLOAT_MODE_P): Ditto.
1193 (AVX256_VEC_FLOAT_MODE_P): Ditto.
1194 (AVX_VEC_FLOAT_MODE_P): Ditto.
1195 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1196 (UNSPEC_MASKSTORE): Ditto.
1197 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1198 Merge from <sse>_movmsk<ssemodesuffix> and
1199 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
1200 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
1201 iterator.
1202 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1203 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1204 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1205
1206 2011-04-18 Jan Hubicka <jh@suse.cz>
1207
1208 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1209
1210 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1211 (want_inline_function_called_once_p): Break out the logic from
1212 ipa_inline.
1213 (edge_badness): Ensure that profile is not misupdated.
1214 (lookup_recursive_calls): Prioritize by call frequencies.
1215 (inline_small_functions): Move program size estimates here;
1216 actually process whole queue even when unit growth has been
1217 met. (to properly compute inline_failed reasons and for the
1218 case unit size decrease.) Revisit comments on recursive inlining.
1219 (ipa_inline): Remove unit summary code; first inline hot calls
1220 of functions called once, cold calls next.
1221 (order, nnodes): Remove unused variables.
1222 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1223 (GTFILES): Remove ipa-inline.c
1224 * sel-sched.c (fill_insns): Silence uninitialized var warning.
1225
1226 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1227
1228 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1229
1230 2011-04-18 Jie Zhang <jie@codesourcery.com>
1231 Richard Earnshaw <rearnsha@arm.com>
1232
1233 * arm.c (neon_builtin_type_bits): Remove.
1234 (typedef enum neon_builtin_mode): New.
1235 (T_MAX): Don't define.
1236 (typedef enum neon_builtin_datum): Remove bits, codes[],
1237 num_vars and base_fcode. Add mode, code and fcode.
1238 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1239 VAR10): Change accordingly.
1240 (neon_builtin_data[]): Change accordingly
1241 (arm_init_neon_builtins): Change accordingly.
1242 (neon_builtin_compare): Remove.
1243 (locate_neon_builtin_icode): Remove.
1244 (arm_expand_neon_builtin): Change accordingly.
1245
1246 * arm.h (enum arm_builtins): Move to ...
1247 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1248
1249 * arm.c (arm_builtin_decl): Declare.
1250 (TARGET_BUILTIN_DECL): Define.
1251 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1252 (arm_builtin_decls[]): New.
1253 (arm_init_neon_builtins): Store builtin declarations in
1254 arm_builtin_decls[].
1255 (arm_init_tls_builtins): Likewise.
1256 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
1257 (arm_builtin_decl): New.
1258
1259 2011-04-18 Richard Guenther <rguenther@suse.de>
1260
1261 * tree.c (upper_bound_in_type): Build properly canonicalized
1262 INTEGER_CSTs.
1263 (lower_bound_in_type): Likewise.
1264
1265 2011-04-18 Richard Guenther <rguenther@suse.de>
1266
1267 * gimple.h (gimple_call_addr_fndecl): New function.
1268 (gimple_call_fndecl): Use it.
1269 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1270 for direct calls.
1271 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1272 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1273
1274 2011-04-18 Richard Guenther <rguenther@suse.de>
1275
1276 PR middle-end/48650
1277 * tree.c (build_string): STRING_CST is now derived from tree_typed.
1278
1279 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1280
1281 PR lto/48492
1282 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1283 DECL_IN_CONSTANT_POOL without RTL.
1284
1285 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
1286 Ira Rosen <ira.rosen@linaro.org>
1287
1288 PR target/48252
1289 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
1290 to match neon_vzip/vuzp/vtrn_internal.
1291 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
1292 outputs explicitly dependent on both inputs.
1293 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
1294
1295 2011-04-18 Jakub Jelinek <jakub@redhat.com>
1296
1297 PR tree-optimization/48616
1298 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
1299 whether the shift is by scalar or vector based on whether all SLP
1300 scalar stmts have the same rhs.
1301
1302 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
1303
1304 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1305 memory operands.
1306
1307 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
1308
1309 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1310 registers.
1311
1312 2011-04-17 Jan Hubicka <jh@suse.cz>
1313
1314 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1315 * cgrpahunit.c (cgraph_finalize_function): Do not set
1316 finalized_by_frontend.
1317 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1318 finalized_by_frontend.
1319
1320 2011-04-17 Jan Hubicka <jh@suse.cz>
1321
1322 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
1323 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
1324 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1325 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
1326 method.
1327 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1328 gimple-fold.c
1329 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1330
1331 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
1332
1333 PR lto/48538
1334 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
1335 is non-null before accessing it.
1336 (input_cgraph): Remove trailing spaces.
1337
1338 2011-04-17 Revital Eres <revital.eres@linaro.org>
1339
1340 * params.def (sms-min-sc): New param flag.
1341 * modulo-sched.c (sms_schedule): Use it.
1342 * doc/invoke.texi (sms-min-sc): Document it.
1343
1344 2011-04-17 Jan Hubicka <jh@suse.cz>
1345
1346 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
1347 present, also set gimple_call_set_cannot_inline.
1348 * ipa-inline.c: Update toplevel comment.
1349 (MAX_TIME): Remove.
1350 (cgraph_clone_inlined_nodes): Fix linebreaks.
1351 (cgraph_check_inline_limits): Restructure to ...
1352 (caller_growth_limits): ... this one; be more tolerant
1353 on growth in nested inline chains; add explanatory comment;
1354 fix stack accounting thinko introduced by previous patch.
1355 (cgraph_default_inline_p): Remove.
1356 (report_inline_failed_reason): New function.
1357 (can_inline_edge_p): New function.
1358 (can_early_inline_edge_p): New function.
1359 (leaf_node_p): Move upwards in file.
1360 (want_early_inline_function_p): New function.
1361 (want_inline_small_function_p): New function.
1362 (want_inline_self_recursive_call_p): New function.
1363 (cgraph_edge_badness): Rename to ...
1364 (edge_badness) ... this one; fix linebreaks.
1365 (update_edge_key): Update call of edge_baddness; add
1366 detailed dump about queue updates.
1367 (update_caller_keys): Use can_inline_edge_p and
1368 want_inline_small_function_p.
1369 (cgraph_decide_recursive_inlining): Rename to...
1370 (recursive_inlining): Use can_inline_edge_p and
1371 want_inline_self_recursive_call_p; simplify and remove no longer
1372 valid FIXME.
1373 (cgraph_set_inline_failed): Remove.
1374 (add_new_edges_to_heap): Use can_inline_edge_p and
1375 want_inline_small_function_p.
1376 (cgraph_decide_inlining_of_small_functions): Rename to ...
1377 (inline_small_functions): ... this one; cleanup; use
1378 can/want predicates; cleanup debug ouput; work edges till fibheap
1379 is exhausted and do not stop once unit growth is reached; remove
1380 later loop processing remaining edges.
1381 (cgraph_flatten): Rename to ...
1382 (flatten_function): ... this one; use can_inline_edge_p
1383 and can_early_inline_edge_p predicates.
1384 (cgraph_decide_inlining): Rename to ...
1385 (ipa_inline): ... this one; remove unreachable nodes before
1386 inlining functions called once; simplify the pass.
1387 (cgraph_perform_always_inlining): Rename to ...
1388 (inline_always_inline_functions): ... this one; use
1389 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
1390 (cgraph_decide_inlining_incrementally): Rename to ...
1391 (early_inline_small_functions): ... this one; simplify
1392 using new predicates; cleanup; make dumps prettier.
1393 (cgraph_early_inlining): Rename to ...
1394 (early_inliner): newer inline regular functions into always-inlines;
1395 fix updating of call stmt summaries.
1396 (pass_early_inline): Update for new names.
1397 (inline_transform): Fix formating.
1398 (gate_cgraph_decide_inlining): Rename to ...
1399 (pass_ipa_inline): ... this one.
1400 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
1401 * ipa-inline-analysis.c (dump_inline_summary): Update.
1402 (compute_inline_parameters): Do not compute disregard_inline_limits;
1403 look for mismatching arguments.
1404 (estimate_growth): Fix handlig of non-trivial self recursion.
1405 (inline_read_summary): Do not read info->disregard_inline_limits.
1406 (inline_write_summary): Do not write info->disregard_inline_limits.
1407 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
1408 and move all checks into can_inline_edge_p predicate; re-enable code
1409 comparing optimization levels.
1410 (expand_call_inline): Do not test inline_forbidden_into_p.
1411 * Makefile.in (ipa-inline.o): Update arguments.
1412
1413 2011-04-17 Revital Eres <revital.eres@linaro.org>
1414
1415 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1416
1417 2011-04-17 Revital Eres <revital.eres@linaro.org>
1418
1419 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1420
1421 2011-04-17 Michael Matz <matz@suse.de>
1422
1423 PR tree-optimization/48622
1424 PR lto/48645
1425 * ipa-inline-analysis.c (inline_read_summary): Read size/time
1426 in same order as they're written.
1427
1428 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1429
1430 * config/pa/predicates.md: Reorganize and simplify predicates.
1431 Eliminate duplicate code checks.
1432 (arith_operand): Rename to arith14_operand
1433 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
1434 * config/pa/pa.md: Use renamed operands.
1435 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
1436 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
1437 arith11_operand, adddi3_operand, indexed_memory_operand,
1438 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
1439 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
1440 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
1441 move_dest_operand, move_src_operand, prefetch_cc_operand,
1442 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
1443 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
1444 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
1445 div_operand, int5_operand, movb_comparison_operator,
1446 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
1447 arith_double_operand, ireg_operand, lhs_lshift_operand,
1448 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
1449 integer_store_memory_operand): Likewise.
1450 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
1451 (integer_store_memory_operand, read_only_operand,
1452 function_label_operand, borx_reg_operand,
1453 non_hard_reg_operand): Likewise.
1454 (eq_neq_comparison_operator): Delete unused operator.
1455 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
1456 function_label_operand.
1457 (emit_move_sequence): Likewise.
1458
1459 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
1460
1461 * config/i386/sse.md (sseunpackmode): New mode attribute.
1462 (ssepackmode): Ditto.
1463 (vec_pack_trunc_<mode>): Macroize expander from
1464 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
1465 (vec_unpacks_lo_<mode>): Macroize expander from
1466 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1467 (vec_unpacks_hi_<mode>): Macroize expander from
1468 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1469 (vec_unpacku_lo_<mode>): Macroize expander from
1470 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1471 (vec_unpacku_hi_<mode>): Macroize expander from
1472 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1473 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
1474 ix86_expand_sse4_unpack.
1475 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
1476
1477 2011-04-16 Jan Hubicka <jh@suse.cz>
1478
1479 * cgraphbuild.c: Include ipa-inline.h.
1480 (reset_inline_failed): Use initialize_inline_failed.
1481 * cgraph.c: Include ipa-inline.h.
1482 (cgraph_create_node_1): Do not initialize estimated_growth.
1483 (initialize_inline_failed): More to ipa-inline-analysis.c
1484 (dump_cgraph_node): Do not dump inline flags.
1485 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
1486 and disregard_inline_limits flags.
1487 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
1488 time, size, estimated_growth.
1489 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
1490 Update.
1491 * cgraphunit.c (cgraph_decide_is_function_needed): Use
1492 DECL_DISREGARD_INLINE_LIMITS.
1493 (cgraph_analyze_function): Do not initialize
1494 node->local.disregard_inline_limits.
1495 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1496 inlinable, versionable and disregard_inline_limits.
1497 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1498 cgraph_check_inline_limits, cgraph_default_inline_p,
1499 cgraph_edge_badness, update_caller_keys, update_callee_keys,
1500 add_new_edges_to_heap): Update.
1501 (cgraph_decide_inlining_of_small_function): Update; set
1502 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
1503 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
1504 cgraph_decide_inlining_incrementally): Update.
1505 * ipa-inline.h (inline_summary): Add inlinable, versionable,
1506 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
1507 time, size and estimated_growth parameters.
1508 (estimate_edge_growth): Update.
1509 (initialize_inline_failed): Declare.
1510 * ipa-split.c: Include ipa-inline.h
1511 (execute_split_functions): Update.
1512 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
1513 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
1514 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
1515 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
1516 estimated_growth to INT_MIN.
1517 (inline_node_duplication_hook): Likewise.
1518 (dump_inline_summary): Dump new fields.
1519 (compute_inline_parameters): Update.
1520 (estimate_edge_time, estimate_time_after_inlining,
1521 estimate_size_after_inlining, estimate_growth, inline_read_summary,
1522 inline_write_summary):
1523 (initialize_inline_failed): Move here from cgraph.c.
1524 * tree-sra.c: Include ipa-inline.h.
1525 (ipa_sra_preliminary_function_checks): Update.
1526 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
1527 ipa-inline.h.
1528
1529 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
1530
1531 * config/i386/sse.md (V16): New mode iterator.
1532 (VI1, VI8): Ditto.
1533 (AVXMODEQI, AVXMODEDI): Remove.
1534 (sse2, sse3): New mode attribute.
1535 (mov<mode>): Use V16 mode iterator.
1536 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
1537 (push<mode>1): Use V16 mode iterator.
1538 (movmisalign<mode>): Ditto.
1539 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1540 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
1541 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1542 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
1543 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
1544 avx_movdqu<avxmodesuffix>.
1545 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
1546 *avx_movdqu<avxmodesuffix>.
1547 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
1548 avx_lddqu<avxmodesuffix>.
1549 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
1550 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
1551 avx_movnt<AVXMODEDI:mode>.
1552 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
1553 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
1554
1555 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
1556
1557 PR target/48629
1558 * haifa-sched.c (prune_ready_list, schedule_block): Use
1559 sched_pressure_p rather than flag_sched_pressure.
1560
1561 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
1562
1563 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1564 cgraph_get_node instead of cgraph_get_create_node.
1565
1566 2011-04-15 Jakub Jelinek <jakub@redhat.com>
1567
1568 * cfgexpand.c (expand_debug_expr): Use
1569 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1570
1571 2011-04-15 Michael Matz <matz@suse.de>
1572
1573 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
1574 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
1575 * function.c (gimplify_parameters): Ditto.
1576 * gimplify.c (gimplify_vla_decl): Ditto.
1577
1578 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
1579 (gimple_call_set_alloca_for_var): New inline function.
1580 (gimple_call_alloca_for_var_p): Ditto.
1581 * gimple.c (gimple_build_call_from_tree): Remember
1582 CALL_ALLOCA_FOR_VAR_P state.
1583 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
1584
1585 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1586 calls if they were for VLA objects.
1587
1588 2011-04-15 Martin Jambor <mjambor@suse.cz>
1589
1590 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1591 of ADR_EXPRs.
1592
1593 2011-04-15 Martin Jambor <mjambor@suse.cz>
1594
1595 PR middle-end/48601
1596 * tree-emutls.c (lower_emutls_function_body): Call
1597 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
1598 result is non-NULL.
1599
1600 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
1601
1602 * c-decl.c (detect_field_duplicates): Call
1603 objc_detect_field_duplicates instead of objc_get_interface_ivars.
1604
1605 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
1606
1607 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
1608 * gimple.c (gimple_asm_clobbers_memory_p): Define.
1609 * ipa-pure-const.c (check_stmt): Call it.
1610 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
1611
1612 2011-04-15 Richard Guenther <rguenther@suse.de>
1613
1614 PR tree-optimization/48290
1615 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
1616 Properly decide inhibiting propagation based on the valueized
1617 operand. Do loop-closed SSA form preserving here ...
1618 (init_copy_prop): ... not here.
1619
1620 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
1621
1622 PR target/48612
1623 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1624 (*ieee_smax<mode>3): Likewise.
1625
1626 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1627
1628 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1629 Replace match_operand with match_dup for the third operand in
1630 these expanders.
1631
1632 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1633
1634 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
1635 to track processing of conditionals. Update all callers.
1636 (try_combine, simplify_if_then_else): Update.
1637
1638 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1639
1640 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1641 -fsched-pressure.
1642
1643 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
1644
1645 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1646 instead of match_operand for operand 3.
1647
1648 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
1649
1650 * recog.h (insn_operand_data): Add an "allows_mem" field.
1651 * genoutput.c (output_operand_data): Initialize it.
1652 * optabs.c (maybe_legitimize_operand_same_code): New function.
1653 (maybe_legitimize_operand): Use it when matching the original
1654 op->value.
1655
1656 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
1657
1658 * gimplify.c: Fix issues in comments throughout.
1659 (voidify_wrapper_expr): Fix long line.
1660 (build_stack_save_restore): Likewise.
1661 (gimplify_loop_expr): Likewise.
1662 (gimplify_compound_lval): Likewise.
1663 (gimplify_init_ctor_eval): Likewise.
1664 (gimplify_modify_expr_rhs): Likewise.
1665 (omp_notice_threadprivate_variable): Likewise.
1666
1667 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
1668
1669 * cfgexpand.c (expand_call_stmt): Convert the function type to the
1670 original one if this is not a builtin function.
1671
1672 2011-04-14 Jakub Jelinek <jakub@redhat.com>
1673
1674 PR target/48605
1675 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
1676 offset it as needed based on top 2 bits in operands[3], change
1677 MEM mode to SFmode and mask those 2 bits away from operands[3].
1678
1679 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1680
1681 * c-parser.c (c_parser_objc_protocol_definition): Updated for
1682 change from objc_declare_protocols() to objc_declare_protocol().
1683
1684 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
1685
1686 * config/i386/sse.md (sse4_1): New mode attribute.
1687 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
1688 avx_blend<ssemodesuffix><avxmodesuffix> and
1689 sse4_1_blend<ssemodesuffix> using VF mode iterator.
1690 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
1691 avx_blendv<ssemodesuffix><avxmodesuffix> and
1692 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
1693 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
1694 avx_dp<ssemodesuffix><avxmodesuffix> and
1695 sse4_1_dp<ssemodesuffix> using VF mode iterator.
1696 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
1697 (sse4_1_packusdw): Merge with *avx_packusdw.
1698 (sse4_1_pblendvb): Merge with *avx_pblendvb.
1699 (sse4_1_pblendw): Merge with *avx_pblendw.
1700 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
1701 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
1702 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
1703 VF mode iterator.
1704 (sse4_1_round<ssescalarmodesuffix>): Merge with
1705 *avx_round<ssescalarmodesuffix>.
1706 (aesenc): Merge with *avx_aesenc.
1707 (aesenclast): Merge with *avx_aesenclast.
1708 (aesdec): Merge with *avx_aesdec.
1709 (aesdeclast): Merge with *avx_aesdeclast.
1710 (pclmulqdq): Merge with *pclmulqdq.
1711 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
1712 New predicate.
1713 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1714
1715 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
1716
1717 PR middle-end/48608
1718 * cfgexpand.c (get_decl_align_unit): Renamed to ...
1719 (align_local_variable): This. Update DECL_ALIGN.
1720 (add_stack_var): Updated.
1721 (expand_one_stack_var): Likewise.
1722
1723 2011-04-14 Richard Guenther <rguenther@suse.de>
1724
1725 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1726 Remove.
1727 (dse_initialize_block_local_data, dse_leave_block,
1728 record_voperand_set, get_stmt_uid): Likewise.
1729 (dse_possible_dead_store_p): Allow any kind of killing stmt.
1730 (dse_optimize_stmt): Remove voperand set handling code.
1731 Simplify and improve to handle any kind of killing stmt.
1732 (dse_record_phi): Remove.
1733 (dse_enter_block): Simplify.
1734 (tree_ssa_dse): Likewise.
1735 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
1736
1737 2011-04-14 Jan Hubicka <jh@suse.cz>
1738
1739 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
1740 * cgraph.h (struct inline_summary): Move to ipa-inline.h
1741 (cgraph_local_info): Remove inline_summary.
1742 * ipa-cp.c: Include ipa-inline.h.
1743 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
1744 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
1745 accesor.
1746 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
1747 (input_overwrite_node): Do not set inline summary.
1748 (input_node): Do not stream inline summary.
1749 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
1750 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
1751 growth; we do not have inline parameters computed for that anyway.
1752 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
1753 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
1754 (inline_summary_t): New type and VECtor.
1755 (debug_inline_summary, dump_inline_summaries): Declare.
1756 (inline_summary): Use VOCtor.
1757 (estimate_edge_growth): Kill hack computing call stmt size directly.
1758 * lto-section-in.c (lto_section_name): Add inline section.
1759 * ipa-inline-analysis.c: Include lto-streamer.h
1760 (node_removal_hook_holder, node_duplication_hook_holder): New holders
1761 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
1762 (inline_summary_vec): Define.
1763 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
1764 dump_inline_summaries): New functions.
1765 (estimate_function_body_sizes): Properly compute size/time of outgoing
1766 calls.
1767 (compute_inline_parameters): Alloc inline_summary; do not compute
1768 size/time of incomming calls.
1769 (estimate_edge_time): Avoid missing time summary hack.
1770 (inline_read_summary): Read inline summary info.
1771 (inline_write_summary): Write inline summary info.
1772 (inline_free_summary): Free all hooks and inline summary vector.
1773 * lto-streamer.h: Add LTO_section_inline_summary section.
1774 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
1775 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
1776
1777 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1778
1779 * tree-vectorizer.h (vect_strided_store_supported): Add a
1780 HOST_WIDE_INT argument.
1781 (vect_strided_load_supported): Likewise.
1782 (vect_permute_store_chain): Return void.
1783 (vect_transform_strided_load): Likewise.
1784 (vect_permute_load_chain): Delete.
1785 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
1786 count argument. Check that the count is a power of two.
1787 (vect_strided_load_supported): Likewise.
1788 (vect_permute_store_chain): Return void. Update after above changes.
1789 Assert that the access is supported.
1790 (vect_permute_load_chain): Likewise.
1791 (vect_transform_strided_load): Return void.
1792 * tree-vect-stmts.c (vectorizable_store): Update calls after
1793 above interface changes.
1794 (vectorizable_load): Likewise.
1795 (vect_analyze_stmt): Don't check for strided powers of two here.
1796
1797 2011-04-14 Richard Guenther <rguenther@suse.de>
1798
1799 PR tree-optimization/48590
1800 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1801 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1802 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
1803 BUILT_IN_STACK_SAVE.
1804 * tree-ssa-dce.c (propagate_necessity): Handle
1805 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1806
1807 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1808
1809 * c-parser.c (c_parser_objc_class_declaration): Updated call to
1810 objc_declare_class.
1811
1812 2011-04-14 Richard Guenther <rguenther@suse.de>
1813
1814 * tree.h (get_object_alignment_1): Declare.
1815 * builtins.c (get_object_alignment_1): Split out worker from ...
1816 (get_object_alignment): ... here.
1817 * fold-const.c (get_pointer_modulus_and_residue): Use
1818 get_object_alignment_1.
1819
1820 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1821
1822 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
1823 type parameter.
1824 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
1825 parameter. Generalise code to handle arrays as well as vectors.
1826 (vect_setup_realignment): Update accordingly.
1827 * tree-vect-stmts.c (vectorizable_store): Likewise.
1828 (vectorizable_load): Likewise.
1829
1830 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1831
1832 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
1833 within the per-copy loop.
1834
1835 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1836
1837 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
1838 in the dump file.
1839
1840 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1841
1842 * doc/options.texi (Negative): Explicitly mention that the
1843 Negative chain must be circular.
1844
1845 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
1846
1847 * function.h (block_chainon): Declare.
1848 * function.c (block_chainon): Define.
1849
1850 2011-04-14 Anatoly Sokolov <aesok@post.ru>
1851 Eric Weddington <eric.weddington@atmel.com>
1852 Georg-Johann Lay <avr@gjlay.de>
1853
1854 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
1855 New Includes
1856 (avr_init_builtins, avr_expand_builtin,
1857 avr_expand_delay_cycles, avr_expand_unop_builtin,
1858 avr_expand_binop_builtin ): New functions.
1859 (avr_builtin_id): New enum
1860 (struct avr_builtin_description): New struct
1861 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
1862 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1863
1864 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
1865 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
1866 UNSPECV_DELAY_CYCLES): new enumeration values
1867 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
1868 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
1869 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
1870 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
1871 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
1872 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
1873 "fmulsu"): New insns
1874
1875 * config/avr/avr-c.c: fix line endings
1876 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
1877 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
1878 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
1879 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
1880 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
1881
1882 * doc/extend.texi (AVR Built-in Functions): New node
1883 (Target Builtins): Add documentation of AVR
1884 built-in functions.
1885
1886 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
1887
1888 PR target/44643
1889 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1890 alone. Error if non-const data has attribute progmem.
1891
1892 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1893
1894 * tree.h (struct tree_constructor): Include tree_typed instead of
1895 tree_common.
1896 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
1897 TS_TYPED instead of TS_COMMON.
1898
1899 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
1900
1901 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
1902 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
1903 (sse2_psadbw): Merge with *avx_psadbw.
1904 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
1905 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
1906 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
1907 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
1908 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
1909 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
1910 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
1911 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
1912 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
1913 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
1914 (ssse3_palignrti): Merge with *avx_palignrti.
1915
1916 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1917
1918 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
1919 * tree-ssanames.c (fini_ssanames): VEC_free it.
1920 (make_ssa_name_fn): Update for VECness of free_ssanames.
1921 (release_ssa_name, release_dead_ssa_names): Likewise.
1922 * tree.h (struct tree_ssa_name): Include tree_typed instead of
1923 tree_common.
1924 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
1925 TS_TYPED instead of TS_COMMON.
1926
1927 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1928
1929 * postreload-gcse.c (gcse_after_reload_main): Add calls to
1930 statistics_counter_event.
1931 * tree-ssa-copyrename.c (stats): Define.
1932 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
1933 statistics_counter_event.
1934 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
1935 (bswap_stats, widen_mul_stats): Define.
1936 (insert_reciprocals): Increment rdivs_inserted.
1937 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
1938 rfuncs_inserted. Add calls to statistics_counter_event.
1939 (execute_cse_sincos_1): Increment inserted.
1940 (execute_cse_sincos): Zeroize sincos_stats. Add call to
1941 statistics_counter_event.
1942 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
1943 of bswap_stats. Add calls to statistics_counter_event.
1944 (convert_mult_to_widen): Increment widen_mults_inserted.
1945 (convert_plusminus_to_widen): Increment maccs_inserted.
1946 (convert_mult_to_fma): Increment fmas_inserted.
1947 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
1948 calls to statistics_counter_event.
1949
1950 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
1951
1952 PR rtl-optimization/48455
1953 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
1954 `temp_costs->mem_cost'.
1955
1956 2011-04-13 Jan Hubicka <jh@suse.cz>
1957
1958 * ipa-inline.h: New file.
1959 * ipa-inline-analysis.c: New file. Broken out of ...
1960 * ipa-inline.c: ... this file; update toplevel comment;
1961 include ipa-inline.h
1962 (inline_summary): Move to ipa-inline.h
1963 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
1964 ipa-inline-analysis.c.
1965 (cgraph_estimate_time_after_inlining): Rename to
1966 estiamte_time_after_inlining; move to ipa-inline-analysis.c
1967 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
1968 to estimate_edge_growth.
1969 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
1970 rename to estimate_size_after_inlining.
1971 (cgraph_mark_inline_edge): Update for new naming convention.
1972 (cgraph_check_inline_limits): Likewise.
1973 (cgraph_edge_badness): Likewise.
1974 (cgraph_decide_recursive_inlining): Likewise.
1975 (cgraph_decide_inlining_of_small_functions): Likewise.
1976 (cgraph_decide_inlining_incrementally): Likewise.
1977 (cgraph_estimate_growth): Rename to estimate_growth; move to
1978 ipa-inline-analysis.c.
1979 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
1980 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
1981 (compute_inline_parameters): Likewise.
1982 (compute_inline_parameters_for_current): Likewise.
1983 (pass_inline_parameters): Likewise.
1984 (inline_indirect_intraprocedural_analysis): Likewise.
1985 (analyze_function): Rename to inline_analyze_function; likewise.
1986 (add_new_function): Move to ipa-inline-analysis.c.
1987 (inline_generate_summary): Likewise.
1988 (inline_read_summary): Likewise.
1989 (inline_write_summary): Likewise.
1990 * Makefile.in (ipa-inline-analysis.c): New file.
1991
1992 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1993
1994 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
1995 * configure: Regenerate.
1996
1997 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1998
1999 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
2000 instead of tree_common.
2001 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
2002 Likewise.
2003 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
2004 TS_TYPED rather than TS_COMMON.
2005 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
2006
2007 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
2008
2009 PR target/45263
2010 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
2011 r20 around calls of __tablejump_elpm__
2012
2013 2011-04-13 Jakub Jelinek <jakub@redhat.com>
2014
2015 PR middle-end/48591
2016 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
2017 NULL.
2018 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
2019
2020 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
2021
2022 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
2023 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
2024 (cfi_vec): New typedef.
2025 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
2026 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
2027 (cie_cfi_vec): New static variable.
2028 (cie_cfi_head): Delete.
2029 (add_cfi): Accept a cfi_vec * as first argument. All callers and
2030 declaration changed. Use vector rather than list operations.
2031 (new_cfi): Don't initialize the dw_cfi_next field.
2032 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
2033 rather than list operations.
2034 (lookup_cfa): Use vector rather than list operations.
2035 (output_cfis): New argument upto. Accept a cfi_vec rather than
2036 a dw_cfi_ref list head as argument. All callers changed.
2037 Iterate over the vector using upto as a maximum index.
2038 (output_all_cfis): New static function.
2039 (output_fde): Use vector rather than list operations. Use the
2040 new upto argument for output_cfis rather than manipulating a
2041 list.
2042 (dwarf2out_begin_prologue): Change initializations to match
2043 new struct members.
2044 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
2045 from the vector length rather than searching for the end of a list.
2046 Use output_all_cfis.
2047 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
2048
2049 2011-04-13 Nick Clifton <nickc@redhat.com>
2050
2051 * config/rx/rx.md (movmemsi): Do not use this pattern when
2052 volatile pointers are involved.
2053
2054 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
2055
2056 * config/i386/sse.md (pinsrbits): Remove.
2057 (sse2_packsswb): Merge with *avx_packsswb.
2058 (sse2_packssdw): Merge with *avx_packssdw.
2059 (sse2_packuswb): Merge with *avx_packuswb.
2060 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
2061 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
2062 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
2063 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
2064 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
2065 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
2066 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
2067 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
2068 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
2069 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
2070 (sse2_loadld): Merge with *avx_loadld.
2071 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
2072 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
2073 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
2074 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
2075 (vec_concatv2di): Merge with *vec_concatv2di_avx.
2076
2077 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2078
2079 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
2080 calling TREE_CHAIN.
2081 * print-tree.c (print_node): Likewise.
2082 * tree-inline.c (copy_tree_r): Likewise.
2083 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
2084 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
2085 instead of TS_COMMON.
2086 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
2087 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
2088 (copy_node_stat): Zero TREE_CHAIN only if necessary.
2089 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
2090 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
2091 ...and these...
2092 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
2093 * tree.h: ...here.
2094 (TREE_CHAIN): Check for a TS_COMMON structure.
2095 (TREE_TYPE): Check for a TS_TYPED structure.
2096
2097 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
2098
2099 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2100 cgraph_get_create_node instead of cgraph_node.
2101
2102 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
2103
2104 * c-parser.c (c_parser_initelt): Updated call to
2105 objc_build_message_expr.
2106 (c_parser_postfix_expression): Likewise.
2107
2108 2011-04-12 Kai Tietz <ktietz@redhat.com>
2109
2110 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
2111 MASK_MS_BITFIELD_LAYOUT bit.
2112
2113 2011-04-12 Jakub Jelinek <jakub@redhat.com>
2114
2115 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
2116 assert it is always true.
2117 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
2118 moves.
2119
2120 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
2121
2122 * c-parser.c (c_lex_one_token): Rewritten conditional used when
2123 compiling Objective-C to be more efficient.
2124
2125 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
2126
2127 * opts-common.c (decode_cmdline_options_to_array): Remove variable
2128 argv_copied.
2129
2130 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2131
2132 * recog.h, genoutput.c, optabs.c: Revert last patch.
2133
2134 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2135
2136 PR target/48090
2137 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
2138
2139 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2140
2141 * recog.h (insn_operand_data): Add an "allows_mem" field.
2142 * genoutput.c (output_operand_data): Initialize it.
2143 * optabs.c (maybe_legitimize_operand_same_code): New function.
2144 (maybe_legitimize_operand): Use it when matching the original
2145 op->value.
2146
2147 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2148
2149 * genpreds.c (process_define_predicate): Move most processing
2150 to gensupport.c. Continue to validate the expression.
2151 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
2152 (process_define_predicate): Move processing to gensupport.c.
2153 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
2154 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
2155 (compute_predicate_codes): Moved from genrecog.c. Add lineno
2156 argument.
2157 (valid_predicate_name_p): New function, split out from old
2158 genpreds.c:process_define_predicate.
2159 (process_define_predicate): New function, combining code from
2160 old genpreds.c and genrecog.c functions.
2161 (process_rtx): Call it for DEFINE_PREDICATE and
2162 DEFINE_SPECIAL_PREDICATE.
2163
2164 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2165
2166 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
2167 size of a '%A' memory reference.
2168 (T_DREG, T_QREG): New neon_builtin_type_bits.
2169 (arm_init_neon_builtins): Assert that the load and store operands
2170 are neon_struct_operands.
2171 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
2172 (NEON_ARG_MEMORY): New builtin_arg.
2173 (neon_dereference_pointer): New function.
2174 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
2175 Handle NEON_ARG_MEMORY.
2176 (arm_expand_neon_builtin): Update after above interface changes.
2177 Use NEON_ARG_MEMORY for loads and stores.
2178 * config/arm/predicates.md (neon_struct_operand): New predicate.
2179 * config/arm/iterators.md (V_two_elem): Tweak formatting.
2180 (V_three_elem): Use BLKmode for accesses that have no associated mode.
2181 (V_four_elem): Tweak formatting.
2182 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
2183 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2184 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2185 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2186 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2187 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2188 (neon_vst4<mode>): Replace pointer operand with a memory operand.
2189 Use %A in the output template.
2190 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2191 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2192 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2193 the width of the memory access. Remove post-increment.
2194 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2195
2196 2011-04-12 Nick Clifton <nickc@redhat.com>
2197
2198 * config/v850/v850.c (expand_prologue): Do not use the CALLT
2199 instruction for interrupt handlers if the target is the basic V850
2200 architecture.
2201 (expand_epilogue): Likewise.
2202
2203 2011-04-12 Jakub Jelinek <jakub@redhat.com>
2204
2205 PR rtl-optimization/48549
2206 * combine.c (propagate_for_debug): Also stop after BB_END of
2207 this_basic_block. Process LAST and just stop processing after it.
2208 (combine_instructions): If last_combined_insn has been deleted,
2209 set last_combined_insn to its PREV_INSN.
2210
2211 2011-04-12 Richard Guenther <rguenther@suse.de>
2212
2213 PR tree-optimization/46076
2214 * gimple.h (struct gimple_statement_call): Add fntype field.
2215 (gimple_call_fntype): Adjust.
2216 (gimple_call_set_fntype): New function.
2217 * gimple.c (gimple_build_call_1): Set the call function type.
2218 * gimplify.c (gimplify_call_expr): Preserve the function
2219 type the frontend used for the call.
2220 (gimplify_modify_expr): Likewise.
2221 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2222 function type.
2223 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2224 function type.
2225 * tree-ssa.c (useless_type_conversion_p): Function pointer
2226 conversions are useless.
2227
2228 2011-04-12 Martin Jambor <mjambor@suse.cz>
2229
2230 * cgraph.h (cgraph_node): Remove function declaration.
2231 (cgraph_create_node): Declare.
2232 (cgraph_get_create_node): Likewise.
2233 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2234 Updated all callers.
2235 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2236 the decl does not already exist. Call cgraph_get_create_node instead
2237 of cgraph_node.
2238 (cgraph_get_create_node): New function.
2239 (cgraph_same_body_alias): Update comment.
2240 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2241 assert it does not return NULL.
2242 (cgraph_update_edges_for_call_stmt): Likewise.
2243 (cgraph_clone_edge): Likewise.
2244 (cgraph_create_virtual_clone): Likewise.
2245 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2246 instead of cgraph_node.
2247 (cgraph_add_new_function): Call cgraph_create_node or
2248 cgraph_get_create_node instead of cgraph_node.
2249 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2250 instead of cgraph_node.
2251 (record_eh_tables): Likewise.
2252 (mark_address): Likewise.
2253 (mark_load): Likewise.
2254 (build_cgraph_edges): Call cgraph_get_create_node instead
2255 of cgraph_node.
2256 (rebuild_cgraph_edges): Likewise.
2257 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2258 instead of cgraph_node.
2259 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2260 cgraph_node.
2261 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2262 cgraph_create_node instead of cgraph_node.
2263 * c-decl.c (finish_function): Call cgraph_get_create_node instead
2264 of cgraph_node.
2265 * lto-cgraph.c (input_node): Likewise.
2266 * lto-streamer-in.c (input_function): Likewise.
2267 * varasm.c (mark_decl_referenced): Likewise.
2268 (assemble_alias): Likewise.
2269
2270 2011-04-12 Martin Jambor <mjambor@suse.cz>
2271
2272 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2273 instead of cgraph_node and assert it does not return NULL.
2274 * lto-streamer-in.c (lto_read_body): Likewise.
2275 * omp-low.c (new_omp_context): Likewise.
2276 (create_task_copyfn): Likewise.
2277 * tree-emutls.c (lower_emutls_function_body): Likewise.
2278 * matrix-reorg.c (transform_allocation_sites): Likewise.
2279
2280 2011-04-12 Jakub Jelinek <jakub@redhat.com>
2281
2282 PR c/48552
2283 * c-typeck.c (build_asm_expr): Error out on attempts to use
2284 void type outputs or inputs for constraints that allow reg or
2285 don't allow memory.
2286
2287 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
2288 Richard Earnshaw <rearnsha@arm.com>
2289
2290 PR target/48250
2291 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
2292 to use sign-magnitude offsets. Reject unsupported unaligned
2293 cases. Add detailed description in comments.
2294 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
2295 condition from TARGET_32BIT to TARGET_ARM.
2296
2297 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
2298
2299 * tree.h (struct typed_tree): New.
2300 (struct tree_common): Include it instead of tree_base.
2301 (TREE_TYPE): Update for new location of type field.
2302 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
2303 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
2304 (union tree_node): Add typed field.
2305 * treestruct.def (TS_TYPED): New.
2306 * lto-streamer.c (check_handled_ts_structures): Handle it.
2307 * tree.c (MARK_TS_TYPED): New macro.
2308 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
2309
2310 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
2311
2312 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2313 (force_nonfallthru): Do not alter the loop nest if no basic block
2314 was created.
2315
2316 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
2317
2318 * config/i386/sse.md (VI): New mode iterator.
2319 (SSEMODEI): Remove.
2320 (AVX256MODEI): Ditto.
2321 (AVXMODEF4P): Ditto.
2322 (avxvecpsmode): Ditto.
2323 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
2324 (sse2_andnot<mode>3): New expander.
2325 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
2326 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
2327 (<any_logic:code><mode>3): Use VI mode iterator.
2328 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
2329 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
2330 (*andnottf3): Handle AVX three-operand constraints.
2331 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
2332
2333 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2334 Robert Millan <rmh@gnu.org>
2335
2336 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
2337 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
2338 GNU_USER_DYNAMIC_LINKER64): Define.
2339 (REG_NAME): Don't undefine.
2340 (MD_UNWIND_SUPPORT): Undefine.
2341 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
2342 (REG_NAME): Don't undefine.
2343 (MD_UNWIND_SUPPORT): Undefine.
2344 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
2345
2346 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2347
2348 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2349 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2350
2351 2011-04-11 Xinliang David Li <davidxl@google.com>
2352
2353 * value-profile.c (check_ic_target): New function.
2354 (gimple_ic_transform): Sanity check indirect call target.
2355 * gimple-low.c (gimple_check_call_args): Interface change.
2356 (gimple_check_call_matching_types): New function.
2357 * tree-inline.c (tree_can_inline_p): Call new function.
2358
2359 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
2360
2361 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2362 tree-pretty-print.h & realmpfr.h.
2363
2364 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
2365
2366 PR middle-end/48464
2367 * ira.c (setup_pressure_classes): Fix typo in loop condition.
2368 (setup_allocno_and_important_classes): Ditto.
2369
2370 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2371
2372 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
2373 GNU_USER_DYNAMIC_LINKER.
2374 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
2375 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2376 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
2377 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2378 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2379 GNU_USER_TARGET_OS_CPP_BUILTINS.
2380 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
2381 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2382 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2383 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2384 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
2385 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2386 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2387 GNU_USER_TARGET_OS_CPP_BUILTINS.
2388 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2389 GNU_USER_DYNAMIC_LINKER.
2390 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2391 GNU_USER_TARGET_OS_CPP_BUILTINS.
2392 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
2393 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2394 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
2395 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2396 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
2397 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
2398 GNU_USER_DYNAMIC_LINKER64): Remove.
2399 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
2400 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2401 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2402 GNU_USER_DYNAMIC_LINKER.
2403 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2404 GNU_USER_TARGET_OS_CPP_BUILTINS.
2405 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2406 GNU_USER_TARGET_OS_CPP_BUILTINS.
2407 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
2408 to GNU_USER_TARGET_OS_CPP_BUILTINS.
2409 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2410 GNU_USER_TARGET_OS_CPP_BUILTINS.
2411 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
2412 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
2413 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2414 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
2415 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2416 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2417 GNU_USER_DYNAMIC_LINKER.
2418 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2419 GNU_USER_TARGET_OS_CPP_BUILTINS.
2420 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
2421 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2422 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2423 GNU_USER_DYNAMIC_LINKER.
2424 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2425 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2426 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
2427 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2428 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2429 GNU_USER_DYNAMIC_LINKER.
2430 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
2431 GNU_USER_DYNAMIC_LINKERN32.
2432 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
2433 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
2434 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
2435 GNU_USER_DYNAMIC_LINKER32.
2436 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
2437 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2438 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2439 GNU_USER_DYNAMIC_LINKER.
2440 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2441 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2442 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
2443 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2444 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2445 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
2446 GNU_USER_DYNAMIC_LINKER32.
2447 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2448 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
2449 GNU_USER_DYNAMIC_LINKER.
2450 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
2451 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2452 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2453 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
2454 GNU_USER_DYNAMIC_LINKER64.
2455 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
2456 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2457 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2458 GNU_USER_DYNAMIC_LINKER.
2459 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
2460 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2461 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2462 GNU_USER_DYNAMIC_LINKER.
2463 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
2464 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2465 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2466 GNU_USER_DYNAMIC_LINKER32.
2467 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2468 GNU_USER_DYNAMIC_LINKER64.
2469 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2470 GNU_USER_DYNAMIC_LINKER64.
2471 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
2472 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2473 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
2474 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2475 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2476
2477 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2478
2479 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
2480 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
2481 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
2482 GNU_USER_DYNAMIC_LINKER.
2483 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2484 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
2485 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
2486 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
2487 GNU_USER_DYNAMIC_LINKER64.
2488 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2489 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
2490 GNU_USER_LINK_EMULATION.
2491 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
2492 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
2493 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
2494 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
2495 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
2496 CPP_SPEC, CC1_SPEC): Remove.
2497 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
2498 (GNU_USER_DYNAMIC_LINKER): Define.
2499 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
2500 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
2501 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
2502 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
2503 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
2504 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
2505 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2506 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
2507 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
2508 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
2509 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
2510 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
2511 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
2512 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
2513 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
2514 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2515 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2516 GNU_USER_DYNAMIC_LINKER.
2517 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2518 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2519 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2520 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2521 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2522 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2523 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
2524 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
2525 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
2526 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
2527
2528 2011-04-11 Kai Tietz <ktietz@redhat.com>
2529
2530 PR target/9601
2531 PR target/11772
2532 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2533 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2534 comment.
2535 (ix86_is_msabi_thiscall): Removed.
2536 (ix86_is_type_thiscall): Likewise.
2537 (ix86_get_callcvt): New function.
2538 (ix86_comp_type_attributes): Simplify check.
2539 (ix86_function_regparm): Use ix86_get_callcvt for calling
2540 convention attribute checks.
2541 (ix86_return_pops_args): Likewise.
2542 (ix86_static_chain): Likewise.
2543 (x86_this_parameter): Likewise.
2544 (x86_output_mi_thunk): Likewise.
2545 (ix86_function_type_abi): Optimize check for types without attributes.
2546 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
2547 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
2548 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
2549 by flag-values.
2550 (IX86_BASE_CALLCVT): Helper macro.
2551 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2552 Use ix86_get_callcvt for calling convention attribute checks and avoid
2553 symbol-decoration for stdcall in TARGET_RTD case.
2554 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2555 Likewise.
2556 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2557 for declaration.
2558
2559 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
2560
2561 * config/i386/sse.md (VI_128): New mode iterator.
2562 (VI12_128): Rename from SSEMODE12.
2563 (VI14_128): Rename from SSEMODE14.
2564 (VI124_128): New mode iterator.
2565 (VI24_128): Rename from SSEMODE248.
2566 (VI248_128): Rename from SSEMODE248.
2567 (SSEMODE124C8): Remove.
2568 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2569 (*sse2_<plusminus_insn><mode>3): Merge with
2570 *avx_<plusminus_insn><mode>3.
2571 (*mulv8hi3): Merge with *avx_mulv8hi3.
2572 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
2573 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
2574 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
2575 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
2576 (ashr<mode>3): Merge with *avx_ashr<mode>3.
2577 (lshr<mode>3): Merge with *avx_lshr<mode>3.
2578 (ashl<mode>3): Merge with *avx_ashl<mode>3.
2579 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
2580 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
2581 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2582 (*<smaxmin:code>v8hi3): Ditto.
2583 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
2584 (*<smaxmin:code>v16qi3): Ditto.
2585 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
2586 (*sse2_eq<mode>3): Ditto.
2587 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
2588 (*sse2_gt<mode>3): Ditto.
2589 (vcondv2di): Split out of vcond<mode>.
2590 (vconduv2di): Split out of vcondu<mode>.
2591
2592 2011-04-11 Richard Guenther <rguenther@suse.de>
2593
2594 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2595 before calling tree_low_cst.
2596
2597 2011-04-11 Richard Guenther <rguenther@suse.de>
2598
2599 * stor-layout.c (layout_type): Compute all array index size operations
2600 in the original type.
2601 (initialize_sizetypes): Add comment.
2602 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
2603
2604 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2605
2606 * common.opt (Tbss=, Tdata=, Ttext=): New options.
2607
2608 2011-04-11 Martin Jambor <mjambor@suse.cz>
2609
2610 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
2611 of cgraph_node, handle NULL return value.
2612 (cgraph_global_info): Likewise.
2613 (cgraph_rtl_info): Likewise.
2614 * tree-inline.c (estimate_num_insns): Likewise.
2615 * gimplify.c (unshare_body): Likewise.
2616 (unvisit_body): Likewise.
2617 (gimplify_body): Likewise.
2618 * predict.c (optimize_function_for_size_p): Likewise.
2619 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2620 (call_may_clobber_ref_p_1): Likewise.
2621 * varasm.c (function_section_1): Likewise.
2622 (assemble_start_function): Likewise.
2623
2624 2011-04-11 Martin Jambor <mjambor@suse.cz>
2625
2626 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2627 of cgraph_node.
2628 * final.c (rest_of_clean_state): Likewise.
2629 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
2630 * passes.c (pass_init_dump_file): Likewise.
2631 (execute_all_ipa_transforms): Likewise.
2632 (function_called_by_processed_nodes_p): Likewise.
2633 * predict.c (maybe_hot_frequency_p): Likewise.
2634 (probably_never_executed_bb_p): Likewise.
2635 (compute_function_frequency): Likewise.
2636 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
2637 (unnest_nesting_tree_1): Likewise.
2638 (lower_nested_functions): Likewise.
2639 * tree-optimize.c (execute_fixup_cfg): Likewise.
2640 (tree_rest_of_compilation): Likewise.
2641 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
2642 * tree-sra.c (ipa_early_sra): Likewise.
2643 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2644 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
2645 * ipa.c (record_cdtor_fn): Likewise.
2646 * ipa-inline.c (cgraph_early_inlining): Likewise.
2647 (compute_inline_parameters_for_current): Likewise.
2648 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2649 * ipa-pure-const.c (local_pure_const): Likewise.
2650 * ipa-split.c (split_function): Likewise.
2651 (execute_split_functions): Likewise.
2652 * cgraphbuild.c (build_cgraph_edges): Likewise.
2653 (rebuild_cgraph_edges): Likewise.
2654 (cgraph_rebuild_references): Likewise.
2655 (remove_cgraph_callee_edges): Likewise.
2656 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
2657 (verify_cgraph_node): Likewise.
2658 (cgraph_analyze_functions): Likewise.
2659 (cgraph_preserve_function_body_p): Likewise.
2660 (save_inline_function_body): Likewise.
2661 (save_inline_function_body): Likewise.
2662 * tree-inline.c (copy_bb): Likewise.
2663 (optimize_inline_calls): Likewise.
2664
2665 2011-04-11 Martin Jambor <mjambor@suse.cz>
2666
2667 PR tree-optimization/48195
2668 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
2669 ipa_check_create_edge_args.
2670 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
2671 ipa_check_create_edge_args.
2672 * ipa-inline.c (inline_generate_summary): Do not call
2673 ipa_check_create_node_params and ipa_check_create_edge_args.
2674 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
2675 ipa_check_create_edge_args.
2676
2677 2011-04-09 Anatoly Sokolov <aesok@post.ru>
2678
2679 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2680 instead of loop.
2681 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2682 * function.c (record_hard_reg_sets): Likewise.
2683 * ira.c (compute_regs_asm_clobbered): Likewise.
2684 * sched-deps.c (sched_analyze_1): Likewise.
2685 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
2686
2687 2011-04-09 Xinliang David Li <davidxl@google.com>
2688
2689 PR tree-optimization/PR48484
2690 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2691 has_valid_pred lazily
2692
2693 2011-04-09 Duncan Sands <baldrick@free.fr>
2694
2695 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2696
2697 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
2698
2699 * combine.c (combine_validate_cost): Adjust comments. Set registered
2700 cost of I0 to zero at the end, if any.
2701
2702 2011-04-08 Xinliang David Li <davidxl@google.com>
2703
2704 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2705 to insane profile data.
2706
2707 2011-04-08 Xinliang David Li <davidxl@google.com>
2708
2709 * ipa-cp.c (ipcp_update_profiling): Correct
2710 negative scale factor due to insane profile data.
2711
2712 2011-04-08 Xinliang David Li <davidxl@google.com>
2713
2714 * final.c (dump_basic_block_info): New function.
2715 (final): Dump basic block.
2716 (final_scan_insn): Remove old dump.
2717
2718 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
2719
2720 PR target/47829
2721 * config.gcc (i386-*-freebsd): Disable unwind table generation for
2722 crtbegin/crtend.
2723
2724 2011-04-08 Michael Matz <matz@suse.de>
2725
2726 PR middle-end/48389
2727 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
2728 functions.
2729 (rebuild_jump_labels): Call rebuild_jump_labels_1.
2730 * rtl.h (rebuild_jump_labels_chain): Declare.
2731 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
2732 insns inserted on edges.
2733
2734 2011-04-08 Joseph Myers <joseph@codesourcery.com>
2735
2736 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
2737 * config/arm/arm-arches.def: New.
2738 * config/arm/arm-opts.h: New.
2739 * config/arm/genopt.sh: New.
2740 * config/arm/arm-tables.opt: New (generated).
2741 * config/arm/arm.c (arm_handle_option, arm_target_help,
2742 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
2743 (all_architectures): Get most table contents from arm-arches.def.
2744 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
2745 arm_selected_tune here.
2746 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
2747 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
2748 (march=, mcpu=, mtune=): Use Enum and Var.
2749 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
2750 (arm.o): Update dependencies.
2751
2752 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
2753
2754 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
2755 of header_file.
2756 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
2757 (write_typed_alloc_defns): Likewise.
2758 (main): Calls write_typed_alloc_defns with output_header.
2759
2760 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
2761
2762 PR inline-asm/48435
2763 * ira-color.c (setup_profitable_hard_regs): Add comments.
2764 Don't take prohibited hard regs into account.
2765 (setup_conflict_profitable_regs): Rename to
2766 get_conflict_profitable_regs.
2767 (check_hard_reg_p): Check prohibited hard regs.
2768
2769 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
2770
2771 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
2772 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
2773 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
2774
2775 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2776
2777 PR target/48366
2778 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
2779 move from floating point to shift amount register.
2780 (emit_move_sequence): Remove secondary reload support for floating
2781 point to shift amount amount register copies.
2782 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
2783 amount register copies.
2784 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
2785 register, return false if mode isn't a scalar integer mode.
2786 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
2787
2788 2011-04-08 Richard Guenther <rguenther@suse.de>
2789
2790 * gimple.c (gimple_call_flags): Remove kludge.
2791
2792 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2793
2794 * sel-sched.c (sel_region_init): Move call to
2795 sel_setup_region_sched_flags after setup_current_loop_nest.
2796
2797 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
2798
2799 PR rtl-optimization/48272
2800 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
2801 init_insn_reg_pressure_info. Adjust a caller.
2802 * sched-int.h (init_insn_reg_pressure_info): Declare.
2803 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
2804 when sched-pressure is enabled.
2805
2806 2011-04-08 Richard Guenther <rguenther@suse.de>
2807
2808 * gimple.c (gimple_set_modified): Do not queue calls to
2809 MODIFIED_NORETURN_CALLS here ...
2810 * tree-ssa-operands.c (update_stmt_operands): ... but here.
2811
2812 2011-04-08 Richard Guenther <rguenther@suse.de>
2813
2814 PR lto/48467
2815 * toplev.c (lang_dependent_init): Do not open asm_out_file
2816 in WPA mode, nor perform debug machinery initialization.
2817 (finalize): Do not unlink asm_out_file in WPA mode.
2818
2819 2011-04-08 Richard Guenther <rguenther@suse.de>
2820
2821 * gimple.h (gimple_call_fntype): New function.
2822 (gimple_call_return_type): Use it.
2823 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
2824 * gimple-low.c (gimple_check_call_args): Likewise.
2825 * gimple.c (gimple_call_flags): Likewise.
2826 (gimple_call_arg_flags): Likewise.
2827 (gimple_call_return_flags): Likewise.
2828 * tree-cfg.c (verify_gimple_call): Likewise.
2829 (do_warn_unused_result): Likewise.
2830 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2831 * value-prof.c (gimple_ic_transform): Fix fndecl check.
2832
2833 2011-04-08 Dmitry Melnik <dm@ispras.ru>
2834
2835 PR rtl-optimization/48235
2836 * sel-sched.c (code_motion_process_successors): Recompute the last
2837 insn in basic block if control flow changed.
2838 (code_motion_path_driver): Ditto. Recompute the first insn as well.
2839 Update condition for ilist_remove.
2840
2841 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2842
2843 PR rtl-optimization/48302
2844 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
2845 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
2846 it to record added preheader blocks.
2847 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
2848 on to sel_add_loop_preheaders.
2849 (sel_region_init): Move call to setup_current_loop_nest after
2850 sel_init_bbs.
2851
2852 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2853
2854 PR target/48273
2855 * cfgloop.h (loop_has_exit_edges): New helper.
2856 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
2857 non-clonable.
2858 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
2859 that have no exit edges.
2860
2861 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2862
2863 PR rtl-optimization/48442
2864 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
2865 all callers. Adjust assert.
2866
2867 2011-04-08 Jakub Jelinek <jakub@redhat.com>
2868
2869 PR tree-optimization/48377
2870 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
2871 is_packed to true even for types with smaller TYPE_ALIGN than
2872 TYPE_SIZE.
2873
2874 2011-04-08 Richard Guenther <rguenther@suse.de>
2875
2876 PR bootstrap/48513
2877 * doc/tm.texi: Re-generate.
2878
2879 2011-04-08 Wei Guozhi <carrot@google.com>
2880
2881 PR target/47855
2882 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
2883 * config/arm/arm.c (arm_attr_length_push_multi): New function.
2884 * config/arm/arm.md (*push_multi): Change the length computation to
2885 call a C function.
2886
2887 2011-04-08 Anatoly Sokolov <aesok@post.ru>
2888
2889 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
2890 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
2891 * doc/tm.texi: Regenerate.
2892 * system.h (ASM_OUTPUT_BSS): Poison.
2893 * varasm.c (asm_output_bss): Remove function.
2894 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
2895
2896 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
2897 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
2898 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
2899 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2900 Likewise.
2901 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2902 Likewise.
2903 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2904 Likewise.
2905 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2906
2907 2011-04-07 Joseph Myers <joseph@codesourcery.com>
2908
2909 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
2910 EnumValue lines.
2911
2912 2011-04-07 Joseph Myers <joseph@codesourcery.com>
2913
2914 * config/m68k/m68k.c (m68k_handle_option): Don't handle
2915 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
2916 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
2917 OPT_mcpu32.
2918 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2919 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
2920 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
2921 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
2922 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
2923 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
2924 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2925 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
2926 options. Don't map other m68k options manually. Don't handle
2927 old-style options as canonical.
2928 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2929 * doc/install.texi (m68k-*-*): Document binutils version requirement.
2930
2931 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
2932
2933 * basic-block.h (force_nonfallthru): Move to...
2934 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
2935 (force_nonfallthru): ...here.
2936 * cfghooks.c (force_nonfallthru): New function.
2937 * cfgrtl.c (force_nonfallthru): Rename into...
2938 (rtl_force_nonfallthru): ...this.
2939 (commit_one_edge_insertion): Do not set AUX field.
2940 (commit_edge_insertions): Do not discover new basic blocks.
2941 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
2942 (cfg_layout_rtl_cfg_hooks): Likewise.
2943 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
2944 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
2945 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
2946
2947 2011-04-07 Anatoly Sokolov <aesok@post.ru>
2948
2949 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
2950 Remove macros.
2951
2952 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
2953
2954 * config/i386/sse.md: Update copyright year.
2955 (avxcvtvecmode): Remove.
2956 (sse_movhlps): Merge with *avx_movhlps.
2957 (sse_movlhps): Merge with *avx_movlhps.
2958 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
2959 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
2960 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
2961 (sse_loadhps): Merge with *avx_loadhps.
2962 (sse_storelps): Merge with *avx_storelps.
2963 (sse_loadlps): Merge with *avx_loadlps.
2964 (sse_movss): Merge with *avx_movss.
2965 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
2966 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
2967 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
2968 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
2969 (vec_set<mode>_0): Ditto.
2970 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
2971 (sse4_1_insertps): Merge with *avx_insertps.
2972 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
2973 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
2974 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
2975 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
2976 (sse2_storehpd): Merge with *avx_storehpd.
2977 (sse2_loadhpd): Merge with *avx_loadhpd.
2978 (sse2_loadlpd): Merge with *avx_loadlpd.
2979 (sse2_movsd): Merge with *avx_movsd.
2980 (*vec_concatv2df): Merge with *vec_concatv2df.
2981
2982 2011-04-07 Jakub Jelinek <jakub@redhat.com>
2983
2984 PR debug/48343
2985 * combine.c (combine_instructions): Add last_combined_insn,
2986 update it if insn is after it, pass it to all try_combine calls.
2987 (try_combine): Add last_combined_insn parameter, pass it instead of
2988 i3 to propagate_for_debug.
2989
2990 2011-04-07 Nick Clifton <nickc@redhat.com>
2991
2992 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
2993 to handle MDR <-> data register transfers.
2994 (movhi_internal): Likewise.
2995
2996 2011-04-07 Alan Modra <amodra@gmail.com>
2997
2998 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
2999 previous stack info.
3000
3001 2011-04-07 Tom de Vries <tom@codesourcery.com>
3002
3003 PR target/43920
3004 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
3005 flow_find_cross_jump. Swap variables to implement backward replacement.
3006 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
3007
3008 2011-04-07 Tom de Vries <tom@codesourcery.com>
3009
3010 PR target/43920
3011 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3012 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
3013 and bb2.
3014 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
3015 src1 or src2. Redirect edges to the last basic block. Update
3016 frequency and count on multiple basic blocks in case of fallthru.
3017
3018 2011-04-07 Tom de Vries <tom@codesourcery.com>
3019
3020 PR target/43920
3021 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
3022 function.
3023 (old_insns_match_p): Change return type. Replace return false/true
3024 with return dir_none/dir_both. Use can_replace_by.
3025 (flow_find_cross_jump): Add dir_p parameter. Init replacement
3026 direction from dir_p. Register replacement direction in dir, last_dir
3027 and afterlast_dir. Handle new return type of old_insns_match_p using
3028 merge_dir. Return replacement direction in dir_p.
3029 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
3030 return type of old_insns_match_p.
3031 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
3032 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
3033 flow_find_cross_jump.
3034 * basic-block.h (enum replace_direction): New type.
3035 (flow_find_cross_jump): Add parameter to declaration.
3036
3037 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
3038
3039 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
3040 (AVXMODEDCVTPS2DQ): Ditto.
3041 (VEC_FLOAT_MODE): Ditto.
3042 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
3043 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3044 (<any_logic:code><mode>3): Use VF mode iterator.
3045 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
3046 Use VF mode iterator.
3047 (copysign<mode>3): Use VF mode iterator.
3048 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
3049 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3050 (*<any_logic:code><MODEF:mode>3): Merge with
3051 *avx_<any_logic:code><MODEF:mode>3.
3052 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
3053 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
3054 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
3055 (avx_cvtdq2ps<avxmodesuffix>): Remove.
3056 (sse2_cvtdq2ps): Use %v modifier.
3057 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
3058 (avx_cvtps2dq<avxmodesuffix>): Remove.
3059 (sse2_cvtps2dq): Use %v modifier.
3060 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
3061 (avx_cvttps2dq<avxmodesuffix>): Remove.
3062 (sse2_cvttps2dq): Use %v modifier.
3063 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
3064 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
3065 (sse2_cvtsd2siq): Fix insn template.
3066 (sse2_cvtsd2siq_2): Ditto.
3067 (sse2_cvttsd2siq): Ditto.
3068 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
3069 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
3070
3071 2011-04-06 Joseph Myers <joseph@codesourcery.com>
3072
3073 * gcov-io.c: Use GCC Runtime Library Exception.
3074
3075 2011-04-06 Jakub Jelinek <jakub@redhat.com>
3076
3077 PR debug/48466
3078 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
3079 as base_reg whatever register reg has been eliminated to, instead
3080 of hardcoding STACK_POINTER_REGNUM.
3081
3082 2011-04-06 Joseph Myers <joseph@codesourcery.com>
3083
3084 * doc/tm.texi.in: Document C target hooks as separate from general
3085 target hooks.
3086 * doc/tm.texi: Regenerate.
3087 * genhooks.c (struct hook_desc): Add docname field.
3088 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
3089 docname field.
3090 (hook_array): Include c-target.def.
3091 (emit_documentation): Use docname field in output.
3092 (emit_init_macros): Take docname argument. Only emit definitions
3093 for hooks matching docname.
3094 (main): Expect additional arguments in all cases. Pass argument
3095 to emit_init_macros.
3096 * target.def: Move initial macro definitions and comments to
3097 target-hooks-macros.h.
3098 (gcc_targetcm): Move to c-family/c-target.def.
3099 * target.h (targetcm): Move declaration to c-family/c-target.h.
3100 * targhooks.c (default_handle_c_option): Move to
3101 c-family/c-opts.c.
3102 * targhooks.h (default_handle_c_option): Move declaration to
3103 c-family/c-common.h.
3104 * target-hooks-macros.h: New file.
3105 * config.gcc (target_has_targetcm): Define and use to add to
3106 c_target_objs and cxx_target_objs.
3107 * config/default-c.c: New file.
3108 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
3109 of target.h and target-def.h.
3110 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
3111 (darwin_objc_construct_string, darwin_cfstring_ref_p,
3112 darwin_check_cfstring_format_arg): Make static.
3113 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3114 TARGET_STRING_OBJECT_REF_TYPE_P,
3115 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
3116 * config/darwin-protos.h (darwin_objc_construct_string,
3117 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
3118 declare.
3119 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3120 TARGET_STRING_OBJECT_REF_TYPE_P,
3121 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
3122 * config/t-darwin (darwin-c.o): Update dependencies.
3123 * system.h (TARGET_HAS_TARGETCM): Poison.
3124 * Makefile.in (TARGET_H): Update.
3125 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
3126 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
3127 (default-c.o): New target.
3128 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
3129 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
3130 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
3131 c-target.def.
3132 (build/genhooks.o): Update dependencies.
3133
3134 2011-04-06 Richard Guenther <rguenther@suse.de>
3135
3136 * ipa-inline.c (enum inlining_mode): Remove.
3137 (cgraph_flatten): Use some other token.
3138 (cgraph_edge_early_inlinable_p): New function, split out from ...
3139 (cgraph_perform_always_inlining): New function, split out from ...
3140 (cgraph_decide_inlining_incrementally): ... here.
3141 (cgraph_mark_inline_edge): Adjust.
3142 (cgraph_early_inlining): Re-structure.
3143 (pass_early_inline): Require SSA form.
3144
3145 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
3146 Julian Brown <julian@codesourcery.com>
3147 Mark Shinwell <shinwell@codesourcery.com>
3148
3149 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
3150 LO_REGS only for Thumb-1.
3151 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
3152 be used in short instructions when optimising for size on Thumb-2.
3153
3154 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
3155
3156 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
3157 associated with user returns to be preserved.
3158
3159 2011-04-06 Tristan Gingold <gingold@adacore.com>
3160
3161 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
3162 symbol_queue_size, DBXOUT_DECR_NESTING,
3163 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
3164 if XCOFF_DEBUGGING_INFO.
3165
3166 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
3167
3168 * config/i386/i386.md (attribute isa): New.
3169 (attribute enabled): New.
3170 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
3171 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
3172 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
3173 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
3174 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
3175 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3176 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
3177 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
3178
3179 * config/i386/sse.md (VF): New mode iterator.
3180 (VF1): Ditto.
3181 (VF2): Ditto.
3182 (VF_128): Ditto.
3183 (SSEMODEF4): Remove.
3184 (attribute sse): Handle V8SF and V4DF modes.
3185 (<absneg:code><mode>2): Use VF mode iterator.
3186 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
3187 mode iterator.
3188 (<plusminus_insn><mode>3): Use VF mode iterator.
3189 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3190 Use VF mode iterator.
3191 (<sse>_vm<plusminus_insn><mode>3): Merge with
3192 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
3193 (mul<mode>3): Use VF mode iterator.
3194 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
3195 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
3196 mode iterator.
3197 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
3198 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
3199 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
3200 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
3201 mode iterator.
3202 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
3203 Use VF1 mode iterator.
3204 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
3205 (sqrt<VF2:mode>2): New expander.
3206 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
3207 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
3208 and sqrtv2df2. Use VF mode iterator.
3209 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
3210 mode iterator.
3211 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
3212 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
3213 Use VF1 mode iterator.
3214 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
3215 (<smaxmin:code><mode>3): Use VF mode iterator.
3216 (*<smaxmin:code><mode>3_finite): Merge with
3217 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
3218 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3219 (<sse>_vm<smaxmin:code><mode>2): Merge with
3220 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
3221 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
3222 mode iterator.
3223 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
3224 mode iterator.
3225 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
3226 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
3227 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
3228 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
3229 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
3230 VF mode iterator.
3231 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
3232 Use VF_128 mode iterator.
3233 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
3234 mode iterator.
3235 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
3236 VF_128 mode iterator.
3237 (vcond<mode>): Use VF mode iterator.
3238 * config/i386/predicates.md (sse_comparison_operator): Merge with
3239 avx_comparison_float_operator. Do not declare as special_predicate.
3240 * config/i386/i386.c (struct builtin_description): Update for renamed
3241 compare patterns.
3242 (ix86_expand_args_builtin): Ditto.
3243 (ix86_expand_sse_compare_mask): Ditto.
3244
3245 2011-04-06 Richard Guenther <rguenther@suse.de>
3246
3247 * tree-inline.c (estimate_num_insns): For calls simply account
3248 for all passed arguments and a used return value.
3249
3250 2011-04-06 Richard Guenther <rguenther@suse.de>
3251
3252 PR tree-optimization/47663
3253 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
3254 call_stmt_time fields.
3255 (cgraph_edge_inlinable_p): Declare.
3256 (cgraph_edge_recursive_p): New inline function.
3257 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
3258 (cgraph_clone_edge): Copy it.
3259 * ipa-inline.c (cgraph_estimate_edge_time): New function.
3260 Account for call stmt time.
3261 (cgraph_estimate_time_after_inlining): Take edge argument.
3262 (cgraph_estimate_edge_growth): Account call stmt size.
3263 (cgraph_estimate_size_after_inlining): Take edge argument.
3264 (cgraph_mark_inline_edge): Adjust.
3265 (cgraph_check_inline_limits): Likewise.
3266 (cgraph_recursive_inlining_p): Remove.
3267 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
3268 (cgraph_decide_recursive_inlining): Take edge argument and
3269 adjust.
3270 (cgraph_decide_inlining_of_small_functions): Do not avoid
3271 diags for recursive inlining here.
3272 (cgraph_flatten): Adjust.
3273 (cgraph_decide_inlining_incrementally): Likewise.
3274 (estimate_function_body_sizes): Remove call cost handling.
3275 (compute_inline_parameters): Initialize caller edge call costs.
3276 (cgraph_estimate_edge_growth): New function.
3277 (cgraph_estimate_growth): Use it.
3278 (cgraph_edge_badness): Likewise.
3279 (cgraph_check_inline_limits): Take an edge argument.
3280 (cgraph_decide_inlining_of_small_functions): Adjust.
3281 (cgraph_decide_inlining): Likewise.
3282 * tree-inline.c (estimate_num_insns): Only account for call
3283 return value if it is used.
3284 (expand_call_inline): Avoid diagnostics on recursive inline
3285 functions here.
3286 * lto-cgraph.c (lto_output_edge): Output edge call costs.
3287 (input_edge): Input edge call costs.
3288
3289 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3290
3291 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
3292
3293 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3294
3295 * doc/invoke.texi (Spec Files): Fix typo.
3296
3297 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
3298
3299 * profile.c (branch_prob): Move declaration of local variable. Remove
3300 obsolete ??? comment. Expand the location explicitly instead of using
3301 the LOCATION_FILE and LOCATION_LINE macros.
3302
3303 2011-04-06 Wei Guozhi <carrot@google.com>
3304
3305 PR target/47855
3306 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
3307 (arm_cond_branch): Likewise.
3308 (arm_cond_branch_reversed): Likewise.
3309 (arm_jump): Likewise.
3310 (push_multi): Likewise.
3311 * config/arm/constraints.md (Py): New constraint.
3312
3313 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3314
3315 PR bootstrap/48471
3316 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
3317 Move these...
3318 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
3319 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
3320 #ifdef DBX_DEBUGGING_INFO.
3321
3322 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3323
3324 PR bootstrap/48403
3325 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3326 if old and new states differ.
3327
3328 2011-04-05 Joseph Myers <joseph@codesourcery.com>
3329
3330 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
3331 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
3332 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3333 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
3334 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
3335 mcfv4e): Use Alias.
3336 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
3337 ColdFire options to -mcpu= options.
3338
3339 2011-04-05 Jeff Law <law@redhat.com>
3340
3341 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
3342 check if BB is a successor of LOOP->header and return
3343 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
3344
3345 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
3346
3347 * cprop.c (struct reg_use): Remove.
3348 (reg_use_table): Make an array of RTX.
3349 (find_used_regs, constprop_register, local_cprop_pass,
3350 bypass_block): Simplify users of reg_use_table.
3351 (cprop_insn): Likewise. Iterate if copy propagation succeeded
3352 on one of the uses found by find_used_regs.
3353
3354 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3355
3356 PR bootstrap/48469
3357 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
3358 declaration.
3359
3360 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3361
3362 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
3363 as an rtx.
3364 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
3365
3366 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
3367
3368 PR middle-end/48441
3369 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
3370
3371 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3372
3373 * combine.c: Include obstack.h.
3374 (struct insn_link): Define.
3375 (uid_log_links): Adjust type.
3376 (FOR_EACH_LOG_LINK): New macro.
3377 (insn_link_obstack): Declare.
3378 (alloc_insn_link): Define.
3379 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
3380 type of link variables.
3381 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
3382 (try_combine, record_promoted_values, distribute_notes): Likewise.
3383 (distribute_links): Likewise. Tweak prototype.
3384 (clear_log_links): Delete.
3385 (adjust_for_new_dest): Call alloc_insn_link.
3386 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
3387
3388 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3389
3390 * gcse.c (modify_mem_list): Convert to an array of VECs.
3391 (canon_modify_mem_list, compute_transp): Tweak formatting.
3392 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
3393 (load_killed_in_block_p): Likewise.
3394 (record_last_mem_set_info): Likewise.
3395 (clear_modify_mem_tables): Likewise.
3396
3397 2011-04-05 Tom de Vries <tom@codesourcery.com>
3398
3399 PR middle-end/48461
3400 * function.c (emit_use_return_register_into_block): Only define if
3401 HAVE_return.
3402
3403 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
3404
3405 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
3406
3407 2011-04-05 Joseph Myers <joseph@codesourcery.com>
3408
3409 * config/rx/rx-opts.h: New.
3410 * config/rx/rx.c (rx_cpu_type): Remove.
3411 (rx_handle_option): Don't assert that global structures are in
3412 use. Access variables via opts pointer. Defer most handling of
3413 OPT_mint_register_. Use error_at.
3414 (rx_option_override): Handle deferred OPT_mint_register_ here.
3415 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
3416 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
3417 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
3418 (rx_cpu_types): New Enum and EnumValue entries.
3419 (mint-register=): Use Defer and use Var accordingly.
3420
3421 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3422
3423 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
3424 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
3425 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
3426 Move these...
3427 (debug_free_queue, debug_nesting, symbol_queue_index):
3428 ...and these...
3429 * dbxout.c: ...to here. Make static.
3430
3431 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3432
3433 * gcse.c (modify_pair): Define. Define a VEC of it.
3434 (canon_modify_mem_list): Convert to an array of VECs.
3435 (free_insn_expr_list_list): Delete.
3436 (clear_modify_mem_tables): Call VEC_free instead.
3437 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
3438 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
3439 (canon_list_insert, compute_transp): Likewise.
3440
3441 2011-04-05 Tom de Vries <tom@codesourcery.com>
3442
3443 PR target/43920
3444 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
3445 for size.
3446
3447 2011-04-05 Tom de Vries <tom@codesourcery.com>
3448
3449 PR target/43920
3450 * function.c (emit_use_return_register_into_block): New function.
3451 (thread_prologue_and_epilogue_insns): Use
3452 emit_use_return_register_into_block.
3453
3454 2011-04-05 Tom de Vries <tom@codesourcery.com>
3455
3456 PR target/43920
3457 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
3458 insn.
3459
3460 2011-04-05 Tom de Vries <tom@codesourcery.com>
3461
3462 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
3463
3464 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
3465
3466 * config/arm/arm.md (define_constants for unspec): Replace with
3467 define_c_enum.
3468 (define_constants for unspecv): Replace with define_c_enum.
3469 * config/arm/neon.md (define_constants for unspec): Replace with
3470 define_c_enum.
3471
3472 2011-04-04 Richard Henderson <rth@redhat.com>
3473
3474 PR bootstrap/48400
3475 * dwarf2out.c (output_line_info): Always emit line info from
3476 at least one section.
3477 (dwarf2out_init): Create text_section_line_info here ...
3478 (set_cur_line_info_table): ... not here.
3479
3480 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
3481
3482 PR target/48380
3483 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
3484 not called.
3485
3486 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
3487
3488 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
3489
3490 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
3491 (expr_equiv_p): Remove.
3492 (insert_set_in_table): Look at <dest, src> pair instead of expr.
3493 (hash_scan_set): Update call to insert_set_in_table.
3494 (dump_hash_table): Dump <dest, src> pair.
3495 (lookup_set): Simplify. Lookup <dest, src> pair.
3496 (compute_transp): Remove, fold heavily simplified code into...
3497 (compute_local_properties): ...here. Expect COMP and TRANSP
3498 unconditionally.
3499 (find_avail_set): Take set directly from struct expr.
3500 (find_bypass-set): Likewise.
3501 (bypass_block): Likewise.
3502 (cprop_insn): Likewise. Remove redundant INSN_P test.
3503
3504 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
3505 checks on form of COND from find_implicit_sets to here.
3506 (find_implicit_sets): Cleanup control flow. Split critical edges
3507 if it exposes implicit sets. Allocate/resize implicit_sets as
3508 necessary.
3509 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
3510 changed something. Run df_analyze after find_implicit_sets if any
3511 edges were split. Do not allocate implicit_sets here.
3512
3513 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
3514 (gcse_obstack): Renamed to cprop_obstack.
3515 (GNEW, GNEWVEC, GNEWVAR): Remove.
3516 (gmalloc): Remove.
3517 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
3518 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
3519 (gcse_alloc): Likewise, and rename to cprop_alloc.
3520 (alloc_gcse_men, free_gcse_mem): Remove.
3521 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
3522 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
3523 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
3524
3525 * cprop.c (oprs_not_set_p): Remove.
3526 (mark_set, mark_clobber): Remove.
3527 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
3528 (reg_not_set_p): New function.
3529 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
3530 (cprop_insn): Likewise.
3531 (cprop_jump): Use FOR_EACH_EDGE.
3532
3533 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
3534
3535 PR bootstrap/48403
3536 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
3537 (rank_for_schedule): Use scheduled_insns vector instead of
3538 last_scheduled_insn.
3539 (ok_for_early_queue_removal): Likewise.
3540 (queue_to_ready): Search forward in nonscheduled_insns_begin if
3541 we have a dbg_cnt.
3542 (choose_ready): Likewise.
3543 (commit_schedule): Use VEC_iterate.
3544 (schedule_block): Initialize nonscheduled_insns_begin. If we have
3545 a dbg_cnt, use it and ensure the first insn is in the ready list.
3546 (haifa_sched_init): Allocate scheduled_insns.
3547 (sched_extend_ready_list): Don't allocate it; reserve space.
3548 (haifa_sched_finish): Free it.
3549
3550 2011-04-04 Joseph Myers <joseph@codesourcery.com>
3551
3552 * optc-gen.awk: Always remove type from Variable entry before
3553 recording in var_seen.
3554
3555 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
3556
3557 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
3558 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
3559 call to tidy_fallthru_edges.
3560
3561 2011-04-04 Joseph Myers <joseph@codesourcery.com>
3562
3563 * doc/options.texi (ToLower): Document.
3564 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
3565 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
3566 * opts.h (cl_option): Add cl_tolower field.
3567 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
3568 arguments with lowercase strings.
3569 * config/rx/rx.opt (mcpu=): Add ToLower.
3570 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
3571 argument.
3572
3573 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
3574
3575 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
3576
3577 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
3578
3579 * config/vax/vax.c: Include reload.h.
3580
3581 2011-04-04 Anatoly Sokolov <aesok@post.ru>
3582
3583 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
3584 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
3585 (sparc_preferred_reload_class): New function.
3586
3587 2011-04-04 Jakub Jelinek <jakub@redhat.com>
3588
3589 PR debug/48401
3590 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3591 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
3592
3593 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
3594
3595 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
3596 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
3597
3598 2011-04-03 Anatoly Sokolov <aesok@post.ru>
3599
3600 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
3601 (ASM_OUTPUT_ALIGNED_BSS): Define.
3602
3603 2011-04-03 Michael Matz <matz@suse.de>
3604
3605 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
3606 and next_slot members.
3607 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
3608 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
3609 (lto_streamer_cache_append): Declare.
3610 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
3611 unsigned index, remove offset parameter, ensure that we append
3612 or update existing entries.
3613 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
3614 parameter, update next_slot for append.
3615 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
3616 parameter.
3617 (lto_streamer_cache_insert_at): Likewise.
3618 (lto_streamer_cache_append): New function.
3619 (lto_streamer_cache_lookup): Use unsigned index.
3620 (lto_streamer_cache_get): Likewise.
3621 (lto_record_common_node): Don't test tree_node_can_be_shared.
3622 (preload_common_node): Adjust call to lto_streamer_cache_insert.
3623 (lto_streamer_cache_delete): Don't free offsets member.
3624 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
3625 (lto_output_string_with_length): Use lto_output_data_stream.
3626 (lto_output_tree_header): Remove ix parameter, don't write it.
3627 (lto_output_builtin_tree): Likewise.
3628 (lto_write_tree): Adjust callers to above, don't track and write
3629 offset, write unsigned index.
3630 (output_unreferenced_globals): Don't emit all global vars.
3631 (write_global_references): Use unsigned indices.
3632 (lto_output_decl_state_refs): Likewise.
3633 (write_symbol): Likewise.
3634 * lto-streamer-in.c (lto_input_chain): Move earlier.
3635 (input_function): Use unsigned index.
3636 (input_alias_pairs): Don't read and then ignore all global vars.
3637 (lto_materialize_tree): Remove ix_p parameter, don't read index,
3638 don't pass it back, use lto_streamer_cache_append.
3639 (lto_register_var_decl_in_symtab): Use unsigned index.
3640 (lto_register_function_decl_in_symtab): Likewise.
3641 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
3642 index.
3643 (lto_get_builtin_tree): Don't read index, use
3644 lto_streamer_cache_append.
3645 (lto_read_tree): Adjust call to lto_materialize_tree.
3646
3647 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
3648 don't use function calls in arguments to MIN.
3649
3650 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
3651 twice.
3652
3653 * gimple.c (gimple_type_leader_entry): Mark deletable.
3654
3655 2011-04-03 Alan Modra <amodra@gmail.com>
3656
3657 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
3658
3659 2011-04-03 Michael Matz <matz@suse.de>
3660
3661 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
3662 an integer.
3663 * tree.h (tree_decl_non_common.vindex): Adjust comment.
3664
3665 2011-04-03 Michael Matz <matz@suse.de>
3666
3667 * cgraphbuild.c (record_reference): Canonicalize constructor values.
3668 * gimple-fold.c (canonicalize_constructor_val): Accept being called
3669 without function context.
3670 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
3671 current_function_decl and cfun.
3672
3673 2011-04-03 Michael Matz <matz@suse.de>
3674
3675 * tree.c (decl_init_priority_insert): Don't create entry for
3676 default priority.
3677 (decl_fini_priority_insert): Ditto.
3678 (fields_compatible_p, find_compatible_field): Remove.
3679 * tree.h (fields_compatible_p, find_compatible_field): Remove.
3680 * gimple.c (gimple_compare_field_offset): Adjust block comment.
3681
3682 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
3683
3684 * combine.c (try_combine): Remove useless local variable.
3685
3686 2011-04-03 Richard Guenther <rguenther@suse.de>
3687 Ira Rosen <ira.rosen@linaro.org>
3688
3689 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
3690 non-variable offsets and compare the remaining bases of the two
3691 accesses instead of looking for exact same data-ref.
3692
3693 2011-04-02 Kai Tietz <ktietz@redhat.com>
3694
3695 PR target/48416
3696 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
3697
3698 * i386.c (ix86_is_msabi_thiscall): New helper function.
3699 (ix86_is_type_thiscall): New helper function.
3700 (ix86_comp_type_attributes): Handle thiscall for method-functions
3701 special.
3702 (init_cumulative_args): Likewise.
3703 (find_drap_reg): Likewise.
3704 (ix86_static_chain): Likewise.
3705 (x86_this_parameter): Likewise.
3706 (x86_output_mi_thunk): Likewise.
3707
3708 2011-04-01 Olivier Hainque <hainque@adacore.com>
3709 Nicolas Setton <setton@adacore.com>
3710 Eric Botcazou <ebotcazou@adacore.com>
3711
3712 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
3713 (add_gnat_descriptive_type_attribute): New function.
3714 (gen_array_type_die): Call it.
3715 (gen_enumeration_type_die): Likewise.
3716 (gen_struct_or_union_type_die): Likewise.
3717 (modified_type_die): Likewise.
3718 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
3719 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
3720 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
3721
3722 2011-04-01 Jakub Jelinek <jakub@redhat.com>
3723
3724 PR bootstrap/48148
3725 * dwarf2out.c (resolve_addr): Don't call force_decl_die
3726 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
3727
3728 Revert:
3729 2011-03-17 Richard Guenther <rguenther@suse.de>
3730
3731 PR bootstrap/48148
3732 * lto-cgraph.c (input_overwrite_node): Clear the abstract
3733 origin for decls in other ltrans units.
3734 (input_varpool_node): Likewise.
3735
3736 2011-04-01 Jakub Jelinek <jakub@redhat.com>
3737
3738 PR middle-end/48335
3739 * expr.c (expand_assignment): Handle all possibilities
3740 if TO_RTX is CONCAT.
3741 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
3742 (store_split_bit_field): If SUBREG_REG (op0) or
3743 op0 itself has smaller mode than word, return it
3744 for offset 0 and const0_rtx for out-of-bounds stores.
3745 If word is const0_rtx, skip it.
3746
3747 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
3748
3749 * config/h8300/h8300.c (print_operand_address): Rename to...
3750 (h8300_print_operand_address): ...this. Make static. Adjust comments.
3751 Call h8300_print_operand and h8300_print_operand_address instead of
3752 print_operand and print_operand_address. Declare.
3753 (print_operand): Renake to...
3754 (h8300_print_operand): ...this. Make static. Adjust comments.
3755 Call h8300_print_operand instead of print_operand. Declare.
3756 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
3757 (h8300_register_move_cost): Likewise.
3758 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
3759 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
3760 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
3761 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
3762 * config/h8300/h8300-protos.h (print_operand): Delete.
3763 (print_operand_address): Delete.
3764
3765 2011-04-01 Richard Henderson <rth@redhat.com>
3766
3767 PR 48400
3768 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
3769 in strict mode before dwarf4. Re-order tests to early out
3770 before switching sections.
3771
3772 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
3773
3774 * config/h8300/constraints.md: New file.
3775 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
3776 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
3777 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
3778 * config/h8300/predicates.md (bit_operand): Likewise.
3779 (incdec_operand): Use satisfies_constraint_M and
3780 satisfies_constraint_O. Don't use C code block.
3781 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
3782 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
3783 (compute_mov_length): Use satisfies_constraint_G.
3784 (fix_bit_operand): Use satisfies_constraint_U.
3785 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
3786 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
3787 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
3788 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
3789 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
3790 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
3791 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3792 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
3793 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
3794 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
3795 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
3796 (EXTRA_MEMORY_CONSTRAINT): Delete.
3797
3798 2011-04-01 Andrew Pinski <pinskia@gmail.com>
3799 Michael Meissner <meissner@linux.vnet.ibm.com>
3800
3801 PR target/48262
3802 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
3803 operands, as per the specifications.
3804
3805 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
3806 (vec_extract_evenv4sf): Ditto.
3807 (vec_extract_evenv8hi): Ditto.
3808 (vec_extract_evenv16qi): Ditto.
3809 (vec_extract_oddv4si): Ditto.
3810
3811 2011-03-31 Mark Wielaard <mjw@redhat.com>
3812
3813 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
3814 high_pc attribute if the CU has no associated code. Only output
3815 DW_AT_entry_pc for CU if not generating strict dwarf and
3816 dwarf_version < 4.
3817
3818 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
3819
3820 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
3821 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
3822 out of ...
3823 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
3824 * final.c (final_start_function): Call the new function rather
3825 than using a NULL argument for dwarf2out_frame_debug.
3826
3827 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
3828 that contains the prologue.
3829
3830 * haifa-sched.c (queue_insn): New arg REASON. All callers
3831 changed. Print it in debugging output.
3832
3833 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
3834
3835 * sched-ebb.c (begin_schedule_ready): Remove second argument.
3836 Split most of the code into...
3837 (begin_move_insn): ... here. New function.
3838 (ebb_sched_info): Add a pointer to it.
3839 * haifa-sched.c (scheduled_insns): New static variable.
3840 (sched_extend_ready_list): Allocate it.
3841 (schedule_block): Use it to record the order of scheduled insns.
3842 Perform RTL changes to move insns only after all scheduling
3843 decisions have been made.
3844 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
3845 begin_move_insn field.
3846 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3847 * sched-int.h (struct haifa_sched_info): Remove second argument
3848 from begin_schedule_ready hook. Add new member begin_move_insn.
3849 * sched-rgn.c (begin_schedule_ready): Remove second argument.
3850 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
3851
3852 * haifa-sched.c (prune_ready_list): New function, broken out of
3853 schedule_block.
3854 (schedule_block): Use it.
3855
3856 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3857
3858 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
3859
3860 2011-04-01 Kai Tietz <ktietz@redhat.com>
3861
3862 * config.gcc (*-*-mingw*): Allow as option the
3863 posix threading model.
3864 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
3865 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
3866 definition.
3867 (CPP_SPEC): Add pthread/no-pthread handling.
3868 (LIB_SPEC): Likewise.
3869 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
3870 (LIB_SPEC): Likewise.
3871 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
3872 flag to pass -pthread option for shared libgcc build.
3873 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
3874 for shared libgcc build.
3875 * config/i386/t-mingw-pthread: New file.
3876 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
3877 New define to enable use of library pthread by default.
3878 * config/i386/mingw.opt (pthread): New driver option.
3879 (no-pthread): New driver option.
3880 * config/i386/cygming.opt: Make sure trailing empty line is retained.
3881 * config/i386/mingw-w64.opt: Likewise.
3882
3883 2011-04-01 Gary Funck <gary@intrepid.com>
3884
3885 * c-decl.c (grokdeclarator): Fix formatting.
3886
3887 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
3888
3889 * expr.c (emit_block_move_via_movmem): Use n_generator_args
3890 instead of n_operands.
3891 (set_storage_via_setmem): Likewise.
3892 * optabs.c (maybe_gen_insn): Likewise.
3893 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
3894 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
3895 (mips_expand_builtin_direct): Likewise.
3896 * config/spu/spu.c (expand_builtin_args): Likewise.
3897
3898 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
3899
3900 * recog.h (insn_data_d): Add n_generator_args.
3901 * genoutput.c (data): Likewise.
3902 (output_insn_data): Print it.
3903 (max_opno, num_dups): Delete.
3904 (scan_operands): Just fill in "d->operand[...]".
3905 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
3906
3907 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
3908
3909 * gensupport.h (pattern_stats): New structure.
3910 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
3911 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
3912 (max_operand_1, max_operand_vec): Delete.
3913 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
3914
3915 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
3916
3917 * emit-rtl.c (emit_pattern_after_setloc): New function.
3918 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
3919 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
3920 (emit_pattern_after): New function.
3921 (emit_insn_after, emit_jump_insn_after): Call it.
3922 (emit_call_insn_after, emit_debug_insn_after): Likewise.
3923 (emit_pattern_before_setloc): New function.
3924 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
3925 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
3926 Likewise.
3927 (emit_pattern_before): New function.
3928 (emit_insn_before, emit_jump_insn_before): Call it.
3929 (emit_call_insn_before, emit_debug_insn_before): Likewise.
3930
3931 2011-03-31 Richard Henderson <rth@redhat.com>
3932
3933 * dwarf2out.c (dw_separate_line_info_ref): Remove.
3934 (dw_separate_line_info_entry): Remove.
3935 (enum dw_line_info_opcode): New.
3936 (dw_line_info_entry): Use it.
3937 (dw_line_info_table, dw_line_info_table_p): New.
3938 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
3939 (line_info_table, line_info_label_num): Remove.
3940 (line_info_table_in_use): Remove.
3941 (separate_line_info_table): Remove.
3942 (separate_line_info_table_allocated): Remove.
3943 (separate_line_info_table_in_use): Remove.
3944 (LINE_INFO_TABLE_INCREMENT): Remove.
3945 (line_info_label_num): New.
3946 (cur_line_info_table): New.
3947 (text_section_line_info, cold_text_section_line_info): New.
3948 (separate_line_info): New.
3949 (SEPARATE_LINE_CODE_LABEL): Remove.
3950 (print_dwarf_line_table): Remove.
3951 (debug_dwarf): Don't dump it.
3952 (output_one_line_info_table): New.
3953 (output_line_info): Use it.
3954 (new_line_info_table): New.
3955 (set_cur_line_info_table): New.
3956 (dwarf2out_switch_text_section): Use it.
3957 (dwarf2out_begin_function): Likewise.
3958 (push_dw_line_info_entry): New.
3959 (dwarf2out_source_line): Rewrite for new line info tables.
3960 (dwarf2out_init): Remove dead initailizations.
3961
3962 2011-03-31 Joseph Myers <joseph@codesourcery.com>
3963
3964 * opts.h (cl_option): Add comments to fields. Add bit-fields for
3965 various flags.
3966 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
3967 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
3968 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
3969 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
3970 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
3971 * opt-functions.awk (flag_init, switch_bit_fields): New.
3972 (switch_flags): Don't handle flags moved to bit-fields. Don't
3973 generate CL_MISSING_OK or CL_SAVE.
3974 * optc-gen.awk: Update to generate bit-field output as well as
3975 flags field.
3976 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
3977 bit-field instead of CL_REJECT_DRIVER flag.
3978 * opts-common.c (generate_canonical_option,
3979 decode_cmdline_option): Use bit-fields instead of CL_* flags.
3980 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
3981 instead of CL_REJECT_NEGATIVE flag.
3982 * toplev.c (print_switch_values): Use cl_report bit-field instead
3983 of CL_REPORT flag.
3984
3985 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
3986
3987 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
3988 a zero minimum index only if it is redundant.
3989
3990 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
3991
3992 PR rtl-optimization/48381
3993 * ira-color.c (assign_hard_reg): Use hard reg set intersection
3994 instead of ira_class_hard_reg_index for calculating conflicting
3995 hard registers.
3996
3997 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
3998
3999 * cprop.c: Clean up hash table building.
4000 (reg_avail_info): Remove.
4001 (oprs_available_p): Remove.
4002 (record_last_reg_set_info): Remove.
4003 (record_last_set_info): Remove.
4004 (reg_available_p): New function.
4005 (gcse_constant_p): Do not treat unfolded conditions as constants.
4006 (make_set_regs_unavailable): New function.
4007 (hash_scan_set): Simplify with new reg_available_p.
4008 (compute_hash_table_work): Traverse insns stream only once.
4009 Do not compute reg_avail_info. Traverse insns in reverse order.
4010 Record implicit sets after recording explicit sets from the block.
4011
4012 2011-03-31 Michael Matz <matz@suse.de>
4013
4014 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
4015
4016 2011-03-31 Anatoly Sokolov <aesok@post.ru>
4017
4018 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
4019 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
4020 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4021 (h8300_mode_dependent_address_p): New function.
4022 (h8300_get_index): Make static.
4023
4024 2011-03-31 Jeff Law <law@redhat.com>
4025
4026 * reload1.c (elimination_effects): Fix typo in recent change.
4027
4028 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
4029 typo potentially leading to null pointer dereference.
4030
4031 * caller-save.c (new_saved_hard_reg): Eliminate return value.
4032 (setup_save_areas): Corresponding changes to avoid useless
4033 assignments.
4034
4035 * jump.c (reversed_comparison_code_parts): Avoid successive return
4036 statements when REVERSE_CONDITION is defined.
4037
4038 * expr.c (expand_assignment): Avoid useless assignments.
4039 (expand_expr_real_1): Likewise.
4040 (expand_expr_real_2): Avoid useless statements.
4041
4042 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
4043
4044 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4045
4046 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
4047 statements.
4048
4049 * stmt.c (expand_expr_stmt): Avoid useless assignment.
4050
4051 2011-03-31 Joseph Myers <joseph@codesourcery.com>
4052
4053 PR target/47109
4054 * doc/tm.texi.in (TARGET_VERSION): Remove.
4055 * doc/tm.texi: Regenerate.
4056 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
4057 * collect2.c (main): Don't use TARGET_VERSION.
4058 * mips-tdump.c (main): Don't use TARGET_VERSION.
4059 * mips-tfile.c (main): Don't use TARGET_VERSION.
4060 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
4061 * config/rs6000/vxworksae.h: Remove.
4062 * config/alpha/alpha.h (TARGET_VERSION): Remove.
4063 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
4064 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
4065 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
4066 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4067 * config/arm/arm.h (TARGET_VERSION): Remove.
4068 * config/arm/coff.h (TARGET_VERSION): Remove.
4069 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
4070 * config/arm/elf.h (TARGET_VERSION): Remove.
4071 * config/arm/freebsd.h (TARGET_VERSION): Remove.
4072 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
4073 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
4074 * config/arm/pe.h (TARGET_VERSION): Remove.
4075 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
4076 * config/arm/semi.h (TARGET_VERSION): Remove.
4077 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
4078 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
4079 * config/arm/vxworks.h (TARGET_VERSION): Remove.
4080 * config/avr/avr.h (TARGET_VERSION): Remove.
4081 * config/bfin/bfin.h (TARGET_VERSION): Remove.
4082 * config/fr30/fr30.h (TARGET_VERSION): Remove.
4083 * config/frv/frv.h (TARGET_VERSION): Remove.
4084 * config/h8300/h8300.h (TARGET_VERSION): Remove.
4085 * config/i386/cygwin.h (TARGET_VERSION): Remove.
4086 * config/i386/darwin.h (TARGET_VERSION): Remove.
4087 * config/i386/darwin64.h (TARGET_VERSION): Remove.
4088 * config/i386/djgpp.h (TARGET_VERSION): Remove.
4089 * config/i386/freebsd.h (TARGET_VERSION): Remove.
4090 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
4091 * config/i386/gnu.h (TARGET_VERSION): Remove.
4092 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
4093 * config/i386/i386elf.h (TARGET_VERSION): Remove.
4094 * config/i386/linux.h (TARGET_VERSION): Remove.
4095 * config/i386/linux64.h (TARGET_VERSION): Remove.
4096 * config/i386/lynx.h (TARGET_VERSION): Remove.
4097 * config/i386/mingw32.h (TARGET_VERSION): Remove.
4098 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
4099 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
4100 * config/i386/netware.h (TARGET_VERSION): Remove.
4101 * config/i386/nto.h (TARGET_VERSION): Remove.
4102 * config/i386/openbsd.h (TARGET_VERSION): Remove.
4103 * config/i386/vxworks.h (TARGET_VERSION): Remove.
4104 * config/ia64/elf.h (TARGET_VERSION): Remove.
4105 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
4106 * config/ia64/hpux.h (TARGET_VERSION): Remove.
4107 * config/ia64/linux.h (TARGET_VERSION): Remove.
4108 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4109 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
4110 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4111 * config/lm32/lm32.h (TARGET_VERSION): Remove.
4112 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
4113 * config/m32c/m32c.h (TARGET_VERSION): Remove.
4114 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
4115 * config/m32r/m32r.h (TARGET_VERSION): Remove.
4116 * config/m68k/linux.h (TARGET_VERSION): Remove.
4117 * config/m68k/m68k.h (TARGET_VERSION): Remove.
4118 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
4119 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
4120 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
4121 * config/mep/mep.h (TARGET_VERSION): Remove.
4122 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
4123 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4124 * config/mips/iris6.h (MACHINE_TYPE): Remove.
4125 * config/mips/linux.h (TARGET_VERSION): Remove.
4126 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
4127 * config/mips/vxworks.h (TARGET_VERSION): Remove.
4128 * config/mmix/mmix.h (TARGET_VERSION): Remove.
4129 * config/mn10300/linux.h (TARGET_VERSION): Remove.
4130 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
4131 * config/pa/pa.h (TARGET_VERSION): Remove.
4132 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
4133 * config/picochip/picochip.h (TARGET_VERSION): Remove.
4134 * config/rs6000/aix.h (TARGET_VERSION): Remove.
4135 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
4136 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
4137 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
4138 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
4139 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
4140 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
4141 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
4142 * config/rs6000/linux.h (TARGET_VERSION): Remove.
4143 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
4144 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
4145 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
4146 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
4147 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
4148 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
4149 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
4150 * config/s390/linux.h (TARGET_VERSION): Remove.
4151 * config/s390/s390.h (TARGET_VERSION): Remove.
4152 * config/s390/tpf.h (TARGET_VERSION): Remove.
4153 * config/score/score.h (TARGET_VERSION): Remove.
4154 * config/sh/linux.h (TARGET_VERSION): Remove.
4155 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
4156 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
4157 * config/sh/sh.h (TARGET_VERSION): Remove.
4158 * config/sh/sh64.h (TARGET_VERSION): Remove.
4159 * config/sh/superh.h (TARGET_VERSION): Remove.
4160 * config/sh/vxworks.h (TARGET_VERSION): Remove.
4161 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
4162 * config/sparc/linux.h (TARGET_VERSION): Remove.
4163 * config/sparc/linux64.h (TARGET_VERSION): Remove.
4164 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
4165 TARGET_NAME32, TARGET_NAME): Remove.
4166 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
4167 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
4168 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
4169 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
4170 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
4171 * config/spu/spu.h (TARGET_VERSION): Remove.
4172 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
4173 * config/v850/v850.h (TARGET_VERSION): Remove.
4174 * config/vax/linux.h (TARGET_VERSION): Remove.
4175 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
4176 * config/xtensa/elf.h (TARGET_VERSION): Remove.
4177 * config/xtensa/linux.h (TARGET_VERSION): Remove.
4178
4179 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
4180
4181 PR target/48142
4182 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
4183 frame-related from frame-unrelated adjustments to the stack pointer.
4184
4185 2011-03-31 Jakub Jelinek <jakub@redhat.com>
4186
4187 * common.opt (fdebug-types-section): Move earlier.
4188 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
4189
4190 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
4191
4192 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
4193 var.
4194
4195 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
4196
4197 * tree.h (CASE_CHAIN): Define.
4198 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
4199 (gimple_redirect_edge_and_branch): Likewise.
4200
4201 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
4202
4203 PR middle-end/48367
4204 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
4205 calculation.
4206
4207 2011-03-30 Jeff Law <law@redhat.com>
4208
4209 * PR bootstrap/48371
4210 * reload1.c (reload): Fix botch in last change.
4211
4212 * reload.h (struct reload): Fix typo introduced in last change.
4213
4214 2011-03-30 Joseph Myers <joseph@codesourcery.com>
4215
4216 * config/arm/arm.opt (mhard-float, msoft-float): Mark
4217 Undocumented. Remove help text.
4218 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
4219 -mhard-float.
4220
4221 2011-03-30 Joseph Myers <joseph@codesourcery.com>
4222
4223 * doc/options.texi (NegativeAlias): Document.
4224 (Alias): Mention NegativeAlias.
4225 * opt-functions.awk: Handle NegativeAlias.
4226 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
4227 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
4228 * opts.h (CL_NEGATIVE_ALIAS): Define.
4229 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
4230 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
4231 OPT_mspe_.
4232 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
4233 Alias entries.
4234 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4235 mno-spe and mno-isel instead of mspe=no and -misel=no.
4236
4237 2011-03-29 Mark Wielaard <mjw@redhat.com>
4238
4239 * common.opt (fdebug-types-section): New flag.
4240 * doc/invoke.texi: Document new -fno-debug-types-section flag.
4241 * dwarf2out.c (use_debug_types): New define.
4242 (struct die_struct): Mark die_id with GTY desc use_debug_types.
4243 (print_die): Guard output of type unit signatures using
4244 use_debug_types.
4245 (build_abbrev_table): Replace assert of dwarf_version >= 4
4246 with assert on use_debug_types.
4247 (size_of_die): Likewise.
4248 (unmark_dies): Likewise.
4249 (value_format): Decide AT_ref_external form on use_debug_types.
4250 (output_die): Replace dwarf_version version check guard with
4251 use_debug_types where appropriate.
4252 (modified_type_die): Likewise.
4253 (gen_reference_type_die): Likewise.
4254 (dwarf2out_start_source_file): Likewise.
4255 (dwarf2out_end_source_file): Likewise.
4256 (prune_unused_types_walk_attribs): Likewise.
4257 (dwarf2out_finish): Likewise.
4258
4259 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
4260
4261 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
4262
4263 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
4264
4265 PR rtl-optimization/48332
4266 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
4267 mode of input operand N and modeN to its actual mode.
4268
4269 2011-03-30 Jeff Law <law@redhat.com>
4270
4271 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
4272 define accessor macro.
4273 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
4274 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
4275 (reg_equiv_init): Likewise.
4276 (reg_equivs_size): New variable.
4277 (reg_equiv_init_size): Remove.
4278 (allocate_initial_values): Move prototype to here from....
4279 * integrate.h (allocate_initial_values): Remove prototype.
4280 * integrate.c: Include reload.h.
4281 (allocate_initial_values): Corresponding changes.
4282 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
4283 (fix_reg_equiv_init, no_equiv): Corresponding changes.
4284 (update_equiv_regs): Corresponding changes.
4285 (ira): Corresponding changes.
4286 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
4287 (push_secondary_reload): Corresponding changes.
4288 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
4289 (make_memloc, find_reloads_address): Corresponding changes.
4290 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
4291 (find_reloads_address_1): Corresponding changes.
4292 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
4293 (refers_to_regno_for_reload_p): Corresponding changes.
4294 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
4295 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
4296 * reload1.c: Include ggc.h.
4297 (grow_reg_equivs): New function.
4298 (replace_pseudos_in, reload): Corresponding changes.
4299 (calculate_needs_all_insns, alter_regs): Corresponding changes.
4300 (eliminate_regs_1, elimination_effects): Corresponding changes.
4301 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
4302 (delete_output_reload): Likewise.
4303 * caller-save.c (mark_referenced_regs): Corresponding changes.
4304 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
4305 * frv/predicates.md (frv_load_operand): Corresponding changes.
4306 * microblaze/microblaze.c (double_memory_operand): Corresponding
4307 changes.
4308 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
4309 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
4310 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
4311 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
4312 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
4313 changes.
4314 * pa/pa.c (emit_move_sequence): Corresponding changes.
4315 * vax/vax.c (nonindexed_address_p): Corresponding changes.
4316
4317 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
4318
4319 PR target/47551
4320 * config/arm/arm.c (coproc_secondary_reload_class): Handle
4321 structure modes. Don't check neon_vector_mem_operand for
4322 vector or structure modes.
4323
4324 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
4325 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4326
4327 PR target/43590
4328 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
4329 operand 1 and reshuffle the operands to match.
4330 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
4331
4332 2011-03-30 Christian Schüler <cschueler@gmx.de>
4333
4334 PR driver/48208
4335 * config/c.opt (F): Added 'Driver' to -F option.
4336
4337 PR driver/48260
4338 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
4339 handler function.
4340 * config/darwin.opt: Added '-arch' option.
4341
4342 2011-03-30 Nick Clifton <nickc@redhat.com>
4343
4344 * config/rx/rx.md: Add peepholes and patterns to combine
4345 extending loads and simple arithmetic instructions.
4346 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
4347 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
4348 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
4349 modes to use pre-decrement and post-increment addressing.
4350 (rx_is_restricted_memory_address): Add range checking of REG+INT
4351 addresses.
4352 (rx_print_operand): Add support for %Q. Fix handling of %Q.
4353 (rx_memory_move_cost): Adjust cost of stores.
4354 (rx_adjust_insn_length): New function.
4355
4356 2011-03-30 Jakub Jelinek <jakub@redhat.com>
4357
4358 PR c/48305
4359 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4360 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
4361 matching arg00/arg01 types.
4362
4363 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
4364
4365 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
4366 last_location to UNKNOWN_LOCATION.
4367
4368 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
4369
4370 PR target/48349
4371 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
4372 FLOAT_SSE_REGS.
4373
4374 2011-03-30 Joseph Myers <joseph@codesourcery.com>
4375 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4376
4377 PR bootstrap/48337
4378 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
4379 Init(PROCESSOR_V7).
4380 (sparc_cpu): Likewise.
4381 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
4382 PROCESSOR_V7.
4383
4384 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
4385
4386 PR target/48336
4387 PR middle-end/48342
4388 PR rtl-optimization/48345
4389 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
4390 hard regs for given mode from profitable regs when doing secondary
4391 allocation.
4392
4393 2011-03-29 Jeff Law <law@redhat.com>
4394
4395 PR bootstrap/48327
4396 * tree-ssa-threadupdate.c (struct redirection_data): Remove
4397 do_not_duplicate field.
4398 (lookup_redirection_data): Corresponding changes.
4399 (create_duplicates): Always create a template block.
4400 (redirect_edges): Remove code which reused the original block
4401 when it was going to become unreachable code.
4402 (thread_block): Don't set do_not_duplicate field.
4403
4404 2011-03-29 Joseph Myers <joseph@codesourcery.com>
4405
4406 * lto-opts.c (register_user_option_p, lto_register_user_option):
4407 Make type argument unsigned.
4408 * lto-streamer.h (lto_register_user_option): Make type argument
4409 unsigned.
4410 * opth-gen.awk: Make CL_* macros unsigned.
4411 * opts-common.c (find_opt): Make lang_mask argument unsigned.
4412 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
4413 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
4414 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
4415 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
4416 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
4417 (find_opt): Make lang_mask argument unsigned.
4418
4419 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
4420
4421 PR rtl-optimization/48331
4422 PR rtl-optimization/48334
4423 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
4424 for any used algorithm.
4425
4426 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
4427
4428 * ira-conflicts.c (build_object_conflicts): Add unused attribute
4429 to parent_max.
4430
4431 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
4432
4433 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
4434 (alpha_option_override): Don't set alpha_sr_alias_set.
4435 (emit_frame_store_1): Use gen_frame_mem rather than calling
4436 set_mem_alias_set.
4437 (alpha_expand_epilogue): Ditto.
4438
4439 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
4440
4441 PR tree-optimization/48290
4442 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
4443 vectorization, check that relevant phis in the basic block after
4444 the inner loop are really inner loop's exit phis.
4445
4446 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
4447
4448 PR debug/48190
4449 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
4450 (cached_dw_loc_list_def): New structure.
4451 (cached_dw_loc_list): New typedef.
4452 (cached_dw_loc_list_table): New variable.
4453 (cached_dw_loc_list_table_hash): New function.
4454 (cached_dw_loc_list_table_eq): Likewise.
4455 (add_location_or_const_value_attribute): Take a bool cache_p.
4456 Cache the list when the parameter is true.
4457 (gen_formal_parameter_die): Update caller.
4458 (gen_variable_die): Likewise.
4459 (dwarf2out_finish): Likewise.
4460 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
4461 while generating debug info for the decl.
4462 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
4463 (dwarf2out_init): Initialize cached_dw_loc_list_table.
4464 (resolve_addr): Cache the result of resolving a chain of
4465 location lists.
4466
4467 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
4468
4469 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
4470 conflict object hard regset nodes have intersecting hard reg sets.
4471
4472 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
4473 after regstat_init_n_sets_and_refs.
4474
4475 * ira.c: Add more comments at the top.
4476 (setup_stack_reg_pressure_class, setup_pressure_classes):
4477 Add comments how we compute the register pressure classes.
4478 (setup_allocno_and_important_classes): Add more comments.
4479 (setup_class_translate_array, reorder_important_classes)
4480 (setup_reg_class_relations): Add comments.
4481
4482 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
4483 start of the file.
4484
4485 * ira-color.c: Add 2011 to the Copyright line.
4486 (assign_hard_reg): Add more comments.
4487 (improve_allocation): Ditto.
4488
4489 * ira-costs.c: Add 2011 to the Copyright line.
4490 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
4491 comments.
4492 (setup_regno_cost_classes_by_mode): Ditto.
4493
4494 Initial patches from ira-improv branch:
4495
4496 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
4497
4498 * ira-build.c (ira_create_object): Remove initialization of
4499 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
4500 (ira_create_allocno): Remove initialization of
4501 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
4502 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
4503 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4504 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
4505 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
4506 Initialize ALLOCNO_ADD_DATA.
4507 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
4508 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
4509 ALLOCNO_REG.
4510 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
4511 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
4512
4513 * ira.c (ira_reallocate): Remove.
4514 (setup_pressure_classes): Call
4515 ira_init_register_move_cost_if_necessary. Use
4516 ira_register_move_cost instead of ira_get_register_move_cost.
4517 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
4518 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
4519
4520 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
4521 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4522 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
4523 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
4524 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
4525 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
4526 Fix formatting.
4527 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
4528 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4529 (struct allocno_color_data): New.
4530 (allocno_color_data_t): New typedef.
4531 (allocno_color_data): New definition.
4532 (ALLOCNO_COLOR_DATA): New macro.
4533 (struct object_color_data): New.
4534 (object_color_data_t): New typedef.
4535 (object_color_data): New definition.
4536 (OBJECT_COLOR_DATA): New macro.
4537 (update_copy_costs, calculate_allocno_spill_cost): Call
4538 ira_init_register_move_cost_if_necessary. Use
4539 ira_register_move_cost instead of ira_get_register_move_cost.
4540 (move_spill_restore, update_curr_costs): Ditto.
4541 (allocno_spill_priority): Make it inline.
4542 (color_pass): Allocate and free allocno_color_dat and object_color_data.
4543 (struct coalesce_data, coalesce_data_t): New.
4544 (allocno_coalesce_data): New definition.
4545 (ALLOCNO_COALESCE_DATA): New macro.
4546 (merge_allocnos, coalesced_allocno_conflict_p): Use
4547 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
4548 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
4549 (coalesce_allocnos): Ditto.
4550 (setup_coalesced_allocno_costs_and_nums): Ditto.
4551 (collect_spilled_coalesced_allocnos): Ditto.
4552 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
4553 (setup_slot_coalesced_allocno_live_ranges): Ditto.
4554 (coalesce_spill_slots): Ditto.
4555 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
4556 free allocno_coalesce_data.
4557
4558 * ira-conflicts.c: Fix formatting.
4559 (process_regs_for_copy): Call
4560 ira_init_register_move_cost_if_necessary. Use
4561 ira_register_move_cost instead of ira_get_register_move_cost.
4562 (build_object_conflicts): Optimize.
4563
4564 * ira-costs.c (record_reg_classes): Optimize. Call
4565 ira_init_register_move_cost_if_necessary. Use
4566 ira_register_move_cost, ira_may_move_in_cost, and
4567 ira_may_move_out_cost instead of ira_get_register_move_cost and
4568 ira_get_may_move_cost.
4569 (record_address_regs): Ditto.
4570 (scan_one_insn): Optimize.
4571 (find_costs_and_classes): Optimize.
4572 (process_bb_node_for_hard_reg_moves): Call
4573 ira_init_register_move_cost_if_necessary. Use
4574 ira_register_move_cost instead of ira_get_register_move_cost.
4575
4576 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
4577 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
4578 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
4579 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
4580 definitions.
4581 (ira_initiate_emit_data, ira_finish_emit_data)
4582 (create_new_allocno): New functions.
4583 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
4584 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
4585 Use ira_register_move_cost instead of ira_get_register_move_cost.
4586
4587 * ira-int.h: Fix some comments.
4588 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
4589 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4590 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
4591 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
4592 add_data.
4593 (struct ira_allocno): Make mode and aclass a bitfield. Move other
4594 bitfield after mode. Make hard_regno a short int. Make
4595 hard_regno short. Remove first_coalesced_allocno and
4596 next_coalesced_allocno. Move mem_optimized_dest_p,
4597 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
4598 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
4599 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
4600 temp, colorable_p. Add new member add_data.
4601 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
4602 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
4603 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
4604 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
4605 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
4606 (ALLOCNO_ADD_DATA): New macro.
4607 (ira_emit_data_t): New typedef.
4608 (struct ira_emit_data): New. Move mem_optimized_dest_p,
4609 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
4610 from struct ira_allocno.
4611 (ALLOCNO_EMIT_DATA): New macro.
4612 (ira_allocno_emit_data, allocno_emit_reg): New.
4613 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
4614 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
4615 (OBJECT_ADD_DATA): New macro.
4616 (ira_reallocate): Remove.
4617 (ira_initiate_emit_data, ira_finish_emit_data): New.
4618 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
4619 (ira_init_register_move_cost_if_necessary): New.
4620 (ira_object_conflict_iter_next): Merge into
4621 ira_object_conflict_iter_cond.
4622 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
4623
4624 * ira-live.c (process_single_reg_class_operands): Call
4625 ira_init_register_move_cost_if_necessary. Use
4626 ira_register_move_cost instead of ira_get_register_move_cost.
4627
4628 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
4629
4630 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
4631
4632 * ira-costs.c: Fix formatting.
4633 (cost_classes, cost_classes_num): Remove.
4634 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
4635 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
4636 (cost_classes_del, cost_classes_htab): New.
4637 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
4638 (initiate_regno_cost_classes, setup_cost_classes): New.
4639 (setup_regno_cost_classes_by_aclass): New.
4640 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
4641 (record_reg_classes): Use regno_cost_classes instead of
4642 cost_classes. Move checking opposite operand up.
4643 (record_address_regs): Use regno_cost_classes
4644 instead of cost_classes.
4645 (scan_one_insn): Ditto. Use always general register.
4646 (print_allocno_costs): Use regno_cost_classes instead of
4647 cost_classes.
4648 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
4649 (find_costs_and_classes): Set up cost classes for each registers.
4650 Use also their mode for this. Use regno_cost_classes instead of
4651 cost_classes.
4652 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
4653 cost_classes.
4654 (free_ira_costs, ira_init_costs): Don't use cost_classes.
4655 (ira_costs, ira_set_pseudo_classes): Call
4656 initiate_regno_cost_classes and finish_regno_cost_classes.
4657
4658 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
4659
4660 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
4661
4662 * target.def (ira_cover_classes): Remove.
4663
4664 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
4665
4666 * doc/tm.texi.in: Ditto.
4667
4668 * ira-conflicts.c: Remove mentioning cover classes from the file.
4669 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
4670 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
4671
4672 * targhooks.c (default_ira_cover_classes): Remove.
4673
4674 * targhooks.h (default_ira_cover_classes): Ditto.
4675
4676 * haifa-sched.c: Remove mentioning cover classes from the file.
4677 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
4678 ira_pressure_classes and ira_pressure_classes_num instead of
4679 ira_reg_class_cover_size and ira_reg_class_cover. Use
4680 sched_regno_pressure_class instead of sched_regno_cover_class.
4681 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
4682 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4683
4684 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
4685 classes from the file.
4686 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
4687 (struct object_hard_regs, struct object_hard_regs_node): New.
4688 (struct ira_object): New members profitable_hard_regs,
4689 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
4690 (struct ira_allocno): Rename cover_class to aclass. Rename
4691 cover_class_cost and updated_cover_class_cost to class_cost and
4692 updated_class_cost. Remove splay_removed_p and
4693 left_conflict_size. Add new members colorable_p.
4694 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
4695 (ALLOCNO_COLORABLE_P): New macro.
4696 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
4697 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
4698 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
4699 (OBJECT_...): Rename parameter C to O.
4700 (OBJECT_PROFITABLE_HARD_REGS): New macro.
4701 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
4702 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
4703 (struct target_ira_int): New members x_ira_max_memory_move_cost,
4704 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
4705 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
4706 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
4707 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
4708 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
4709 x_ira_reg_class_subunion.
4710 (ira_max_memory_move_cost, ira_max_register_move_cost)
4711 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
4712 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
4713 (ira_important_class_nums, ira_reg_class_superunion): New macros.
4714 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
4715 (ira_reg_class_union): Rename to ira_reg_class_subunion.
4716 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4717 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4718 (ira_tune_allocno_costs_and_cover_classes): Rename to
4719 ira_tune_allocno_costs.
4720 (ira_debug_hard_regs_forest): New.
4721 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
4722 (ira_object_conflict_iter_next): Fix comments.
4723 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
4724 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
4725 cover_class to aclass.
4726 (ira_allocate_and_accumulate_costs): Ditto.
4727 (ira_allocate_and_set_or_copy_costs): Ditto.
4728
4729 * opts.c (decode_options): Remove ira_cover_class check.
4730
4731 * ira-color.c: Remove mentioning cover classes from the file. Use
4732 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
4733 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
4734 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
4735 (splay-tree.h): Remove include.
4736 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
4737 before copy_freq_compare_func.
4738 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
4739 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
4740 New definitions.
4741 (hard_regs_roots, hard_regs_node_vec): Ditto.
4742 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
4743 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
4744 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
4745 (create_new_object_hard_regs_node): Ditto.
4746 (add_new_object_hard_regs_node_to_forest): Ditto.
4747 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
4748 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
4749 Ditto.
4750 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
4751 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
4752 (remove_unused_object_hard_regs_nodes): Ditto.
4753 (enumerate_object_hard_regs_nodes): Ditto.
4754 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
4755 (object_hard_regs_subnode_t): Ditto.
4756 (struct object_hard_regs_subnode): Ditto.
4757 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
4758 (setup_object_hard_regs_subnode_index): Ditto.
4759 (get_object_hard_regs_subnodes_num): Ditto.
4760 (form_object_hard_regs_nodes_forest): Ditto.
4761 (finish_object_hard_regs_nodes_tree): Ditto.
4762 (finish_object_hard_regs_nodes_forest): Ditto.
4763 (allocnos_have_intersected_live_ranges_p): Rename to
4764 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
4765 (pseudos_have_intersected_live_ranges_p): Rename to
4766 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
4767 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
4768 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
4769 (update_copy_costs): Remove assert. Skip cost update if the hard
4770 reg does not belong the class.
4771 (assign_hard_reg): Process only profitable hard regs.
4772 (uncolorable_allocnos_num): Make it scalar.
4773 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
4774 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
4775 and ira_reg_class_max_nregs.
4776 (bucket_allocno_compare_func): Check frequency first.
4777 (sort_bucket): Add compare function as a parameter.
4778 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
4779 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
4780 (push_allocno_to_stack): Rewrite for checking new allocno
4781 colorability.
4782 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
4783 (push_only_colorable): Pass new parameter to sort_bucket.
4784 (push_allocno_to_spill): Remove.
4785 (allocno_spill_priority_compare): Make it inline and rewrite.
4786 (splay_tree_allocate, splay_tree_free): Remove.
4787 (allocno_spill_sort_compare): New function.
4788 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
4789 build and use splay tree. Choose first allocno in uncolorable
4790 allocno bucket to spill. Remove setting spill cost.
4791 (all_conflicting_hard_regs): Remove.
4792 (setup_allocno_available_regs_num): Check only profitable hard
4793 regs. Print info about hard regs nodes.
4794 (setup_allocno_left_conflicts_size): Remove.
4795 (put_allocno_into_bucket): Don't call
4796 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
4797 (improve_allocation): New.
4798 (color_allocnos): Call setup_profitable_hard_regs,
4799 form_object_hard_regs_nodes_forest, improve_allocation,
4800 finish_object_hard_regs_nodes_forest. Setup spill cost.
4801 (print_loop_title): Use pressure classes.
4802 (color_allocnso): Ditto.
4803 (do_coloring): Remove allocation and freeing splay_tree_node_pool
4804 and allocnos_for_spilling.
4805 (ira_sort_regnos_for_alter_reg): Don't setup members
4806 {first,next}_coalesced_allocno.
4807 (color): Remove allocating and freeing removed_splay_allocno_vec.
4808 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
4809 prohibited_class_mode_regs.
4810
4811 * ira-lives.c: Remove mentioning cover classes from the file. Fix
4812 formatting.
4813 (update_allocno_pressure_excess_length): Use pressure classes.
4814 (inc_register_pressure, dec_register_pressure): Check for pressure
4815 class.
4816 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
4817 pressure class. Use ira_reg_class_nregs instead of
4818 ira_reg_class_max_nregs.
4819 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
4820 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
4821 (single_reg_class): Use ira_reg_class_nregs instead of
4822 ira_reg_class_max_nregs.
4823 (process_bb_node_lives): Use pressure classes.
4824
4825 * ira-emit.c: Remove mentioning cover classes from the file. Use
4826 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
4827 (change_loop): Use pressure classes.
4828 (modify_move_list): Call ira_set_allocno_class instead of
4829 ira_set_allocno_cover_class.
4830
4831 * ira-build.c: Remove mentioning cover classes from the file. Use
4832 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
4833 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
4834 ALLOCNO_UPDATED_CLASS_COST instead of
4835 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
4836 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
4837 (ira_create_allocno): Remove initialization of
4838 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
4839 ALLOCNO_COLORABLE_P.
4840 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4841 Update conflict regs for the objects.
4842 (create_cap_allocno): Remove assert. Don't propagate
4843 ALLOCNO_AVAILABLE_REGS_NUM.
4844 (ira_free_allocno_costs): New function.
4845 (finish_allocno): Change a part of code into call of
4846 ira_free_allocno_costs.
4847 (low_pressure_loop_node_p): Use pressure classes.
4848 (object_range_compare_func): Don't compare classes.
4849 (setup_min_max_conflict_allocno_ids): Ditto.
4850
4851 * loop-invariant.c: Remove mentioning cover classes from the file.
4852 Use ira_pressure_classes and ira_pressure_classes_num instead of
4853 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
4854 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
4855 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4856 Use reg_allocno_class instead of reg_cover_class.
4857 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
4858 STACK_REG_COVER_CLASS.
4859 (get_regno_cover_class): Rename to get_regno_pressure_class.
4860 (move_loop_invariants): Initialize and finalize regstat.
4861
4862 * ira.c: Remove mentioning cover classes from the file. Add
4863 comments about coloring without cover classes. Use ALLOCNO_CLASS
4864 instead of ALLOCNO_COVER_CLASS. Fix formatting.
4865 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
4866 setup_class_subset_and_memory_move_costs.
4867 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
4868 (setup_cover_and_important_classes): Rename to
4869 setup_allocno_and_important_classes.
4870 (setup_class_translate_array): New.
4871 (setup_class_translate): Call it for allocno and pressure classes.
4872 (cover_class_order): Rename to allocno_class_order.
4873 (comp_reg_classes_func): Use ira_allocno_class_translate instead
4874 of ira_class_translate.
4875 (reorder_important_classes): Set up ira_important_class_nums.
4876 (setup_reg_class_relations): Set up ira_reg_class_superunion.
4877 (print_class_cover): Rename to print_classes. Add parameter.
4878 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4879 Print pressure classes too.
4880 (find_reg_class_closure): Rename to find_reg_classes. Don't call
4881 setup_reg_subclasses.
4882 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4883 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4884 (setup_prohibited_class_mode_regs): Use
4885 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
4886 (clarify_prohibited_class_mode_regs): New function.
4887 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
4888 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
4889 (ira_init_once): Initialize them.
4890 (free_register_move_costs): Process them.
4891 (ira_init): Move calls of find_reg_classes and
4892 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
4893 Call clarify_prohibited_class_mode_regs.
4894 (ira_no_alloc_reg): Remove.
4895 (too_high_register_pressure_p): Use pressure classes.
4896
4897 * sched-deps.c: Remove mentioning cover classes from the file.
4898 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
4899 ira_pressure_classes and ira_pressure_classes_num instead of
4900 ira_reg_class_cover_size and ira_reg_class_cover.
4901 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
4902 sched_regno_pressure_class instead of sched_regno_cover_class.
4903 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
4904 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4905
4906 * ira.h: Add 2010 to Copyright.
4907 (ira_no_alloc_reg): Remove external.
4908 (struct target_ira): Rename x_ira_hard_regno_cover_class,
4909 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
4910 x_ira_class_translate to x_ira_hard_regno_allocno_class,
4911 x_ira_allocno_classes_num, x_ira_allocno_classes, and
4912 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
4913 x_ira_pressure_classes, x_ira_pressure_class_translate, and
4914 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
4915 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
4916 x_ira_no_alloc_regs.
4917 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4918 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
4919 ira_allocno_classes_num and ira_allocno_classes.
4920 (ira_class_translate): Rename to ira_allocno_class_translate.
4921 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
4922 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
4923 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4924 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
4925 (ira_no_alloc_regs): New.
4926
4927 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
4928 classes from the file. Use ALLOCNO_CLASS instead of
4929 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
4930 ALLOCNO_COVER_CLASS_COST.
4931 (regno_cover_class): Rename to regno_aclass.
4932 (record_reg_classes): Use ira_reg_class_subunion instead of
4933 ira_reg_class_union.
4934 (record_address_regs): Check overflow.
4935 (scan_one_insn): Ditto.
4936 (print_allocno_costs): Print total mem cost fore regional allocation.
4937 (print_pseudo_costs): Use REG_N_REFS.
4938 (find_costs_and_classes): Use classes intersected with them on the
4939 1st pass. Check overflow. Use ira_reg_class_subunion instead of
4940 ira_reg_class_union. Use ira_allocno_class_translate and
4941 regno_aclass instead of ira_class_translate and regno_cover_class.
4942 Modify code for finding regno_aclass. Setup preferred classes for
4943 the next pass.
4944 (setup_allocno_cover_class_and_costs): Rename to
4945 setup_allocno_class_and_costs. Use regno_aclass instead of
4946 regno_cover_class. Use ira_set_allocno_class instead of
4947 ira_set_allocno_cover_class.
4948 (init_costs, finish_costs): Use regno_aclass instead of
4949 regno_cover_class.
4950 (ira_costs): Use setup_allocno_class_and_costs instead of
4951 setup_allocno_cover_class_and_costs.
4952 (ira_tune_allocno_costs_and_cover_classes): Rename to
4953 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
4954 by processing objects. Use ira_reg_class_max_nregs instead of
4955 ira_reg_class_nregs.
4956
4957 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
4958
4959 * sched-int.h: Remove mentioning cover classes from the file.
4960 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
4961
4962 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
4963 classes from the file.
4964 (struct reg_pref): Rename coverclass into allocnoclass.
4965 (reg_cover_class): Rename to reg_allocno_class.
4966
4967 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
4968
4969 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
4970
4971 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
4972
4973 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
4974
4975 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
4976
4977 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
4978
4979 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
4980
4981 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
4982
4983 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
4984
4985 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
4986
4987 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
4988 (i386_ira_cover_classes): Ditto.
4989
4990 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
4991
4992 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
4993
4994 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
4995
4996 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
4997
4998 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
4999
5000 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
5001
5002 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
5003 (mips_ira_cover_classes): Ditto.
5004
5005 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
5006
5007 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
5008
5009 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
5010
5011 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
5012
5013 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
5014
5015 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
5016 (IRA_COVER_CLASSES_VSX): Ditto.
5017
5018 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
5019 (rs6000_ira_cover_classes): Ditto.
5020
5021 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
5022
5023 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
5024
5025 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
5026
5027 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
5028
5029 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
5030
5031 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
5032
5033 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
5034
5035 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
5036
5037 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
5038
5039 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
5040
5041 2011-03-29 Jakub Jelinek <jakub@redhat.com>
5042
5043 PR debug/48253
5044 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
5045 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
5046 dw_fde_unlikely_section_end_label, cold_in_std_section,
5047 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
5048 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
5049 fields.
5050 (output_fde): Use dw_fde_second_{begin,end} if second is
5051 true, otherwise dw_fde_{begin,end}.
5052 (output_call_frame_info): Test dw_fde_second_begin != NULL
5053 instead of dw_fde_switched_sections.
5054 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
5055 fields, initialize new fields. Initialize in_std_section
5056 unconditionally from the first partition.
5057 (dwarf2out_end_epilogue): Don't override dw_fde_end when
5058 dw_fde_second_begin is non-NULL.
5059 (dwarf2out_switch_text_section): Stop initializing removed
5060 dw_fde_struct fields, initialize new fields, initialize
5061 also dw_fde_end here. Set dw_fde_switch_cfi even when
5062 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
5063 (struct var_loc_list_def): Add last_before_switch field.
5064 (arange_table, arange_table_allocated, arange_table_in_use,
5065 ARANGE_TABLE_INCREMENT, add_arange): Removed.
5066 (size_of_aranges): Count !in_std_section and !second_in_std_section
5067 hunks in fdes, instead of looking at arange_table_in_use.
5068 (output_aranges): Add aranges_length argument, don't call
5069 size_of_aranges here. Instead of using aranges_table*
5070 emit ranges for fdes when !in_std_section resp.
5071 !second_in_std_section.
5072 (dw_loc_list): Break ranges crossing section switch.
5073 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
5074 use dw_fde_second_end instead of dw_fde_end as end of last range.
5075 (gen_subprogram_die): Don't call add_arange. Use
5076 dw_fde_{begin,end} for first partition and if switched
5077 section dw_fde_second_{begin,end} for the second.
5078 (var_location_switch_text_section_1,
5079 var_location_switch_text_section): New functions.
5080 (dwarf2out_begin_function): Initialize cold_text_section even
5081 when function_section () isn't text_section.
5082 (prune_unused_types): Don't walk arange_table.
5083 (dwarf2out_finish): Don't needlessly test
5084 flag_reorder_blocks_and_partition when testing cold_text_section_used.
5085 If info_section_emitted, call size_of_aranges and if it indicates
5086 non-empty .debug_aranges, call output_aranges with the computed
5087 size. Stop using removed dw_fde_struct fields, use
5088 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
5089 for second.
5090
5091 PR debug/48203
5092 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
5093 create ENTRY_VALUE if incoming or address of incoming's MEM
5094 is a hard REG.
5095 * dwarf2out.c (mem_loc_descriptor): Don't emit
5096 DW_OP_GNU_entry_value of DW_OP_fbreg.
5097 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
5098 on ENTRY_VALUE is able to find the canonical parameter VALUE.
5099 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
5100 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
5101 ENTRY_VALUE_EXPs.
5102 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
5103 is a REG_P or MEM_P with REG_P address, compute hash directly
5104 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
5105 (preserve_only_constants): Don't clear VALUES forwaring
5106 ENTRY_VALUE to some other VALUE.
5107
5108 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
5109
5110 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
5111 instead of GEN_INT.
5112
5113 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
5114
5115 * cfgexpand.c (expand_gimple_cond): Always set the source location and
5116 block before expanding the statement.
5117 (expand_gimple_stmt_1): Likewise. Set them here...
5118 (expand_gimple_stmt): ...and not here. Tidy.
5119 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
5120 unknown.
5121
5122 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
5123
5124 * Makefile.in: New rule for cprop.o.
5125 * gcse.c: Move constant/copy propagation to cprop.c.
5126 (compute_local_properties): Only handle expression tables.
5127 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
5128 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
5129 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
5130 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
5131 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
5132 compute_cprop_data, find_used_regs, try_replace_reg,
5133 find_avail_set, cprop_jump, constprop_register, cprop_insn,
5134 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
5135 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
5136 find_bypass_set, reg_killed_on_edge, bypass_block,
5137 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
5138 execute_rtl_cprop, pass_rtl_cprop): Move to...
5139 * cprop.c: ...here. New file, constant/copy propagation for RTL
5140 moved from gcse.c to here with minor cleanups in duplicated code.
5141
5142 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
5143
5144 * config/i386/i386.c (flag_opts): Fix a typo in
5145 -mavx256-split-unaligned-store.
5146
5147 2011-03-28 Anatoly Sokolov <aesok@post.ru>
5148
5149 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5150 LIBCALL_VALUE): Remove macros.
5151 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5152 TARGET_FUNCTION_VALUE_REGNO_P): Define.
5153 (h8300_function_value, h8300_libcall_value,
5154 h8300_function_value_regno_p): New functions.
5155
5156 2011-03-28 Anatoly Sokolov <aesok@post.ru>
5157
5158 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
5159
5160 2011-03-28 Jeff Law <law@redhat.com>
5161
5162 * tree-ssa-threadupdate.c (redirect_edges): Call
5163 create_edge_and_update_destination_phis as needed.
5164 (create_edge_and_update_destination_phis): Accept new BB argument.
5165 All callers updated.
5166 (thread_block): Do not update the profile when threading around
5167 intermediate blocks.
5168 (thread_single_edge): Likewise.
5169 (determine_bb_domination_status): If BB is not a successor of the
5170 loop header, return NONDOMINATING.
5171 (register_jump_thread): Note when we register a jump thread around
5172 an intermediate block.
5173 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
5174 (thread_across_edge): Use it.
5175
5176 2011-03-28 Tristan Gingold <gingold@adacore.com>
5177
5178 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
5179 when for_return is 2.
5180
5181 2011-03-28 Jeff Law <law@redhat.com>
5182
5183 * var-tracking.c (canonicalize_values_mark): Delete unused
5184 lhs assignment.
5185 (canonicalize_values_star, set_variable_part): Likewise.
5186 (clobber_variable_part, delete_variable_part): Likewise.
5187
5188 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
5189
5190 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
5191
5192 2011-03-28 Martin Jambor <mjambor@suse.cz>
5193
5194 * tree-inline.c (expand_call_inline): Do not check that destination
5195 node is analyzed.
5196 (optimize_inline_calls): Assert that destination node is analyzed.
5197 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
5198 not call tree_lowering_passes.
5199 * cgraph.h (cgraph_analyze_function): Declare.
5200 * cgraphunit.c (cgraph_analyze_function): Make public.
5201
5202 2011-03-28 Joseph Myers <joseph@codesourcery.com>
5203
5204 * config/sparc/sparc-opts.h: New.
5205 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
5206 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
5207 (sparc_option_override): Store processor_type enumeration rather
5208 than string in cpu_default. Remove name and enumeration from
5209 cpu_table. Directly default -mcpu then default -mtune from -mcpu
5210 without using sparc_select. Use target_flags_explicit instead of
5211 fpu_option_set.
5212 * config/sparc/sparc.h (enum processor_type): Move to
5213 sparc-opts.h.
5214 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
5215 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
5216 HeaderInclude entry.
5217 (mcpu=, mtune=): Use Var and Enum.
5218 (sparc_processor_type): New Enum and EnumValue entries.
5219
5220 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5221 Iain Sandoe <iains@gcc.gnu.org>
5222
5223 PR target/48245
5224 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
5225
5226 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
5227
5228 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
5229 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
5230 Insert new statements at it in lieu of STMT.
5231 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
5232 * tree-vect-stmts.c (vectorizable_store): Likewise.
5233 (vectorizable_load): Likewise.
5234
5235 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
5236
5237 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
5238 (divtf3): Ditto.
5239 (multf3): Ditto.
5240 (subtf3): Ditto.
5241
5242 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
5243
5244 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
5245 unaligned 256bit load/store.
5246 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
5247 (*avx_movdqu<avxmodesuffix>): Likewise.
5248
5249 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5250
5251 PR target/48288
5252 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
5253 * config/pa/pa.md (iordi3): Use new predicate in expander.
5254 (iorsi3): Likewise.
5255
5256 2011-03-27 Anatoly Sokolov <aesok@post.ru>
5257
5258 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
5259 FUNCTION_VALUE_REGNO_P): Remove macros.
5260 * config/mips/mips-protos.h (mips_function_value): Remove.
5261 * config/mips/mips.c (mips_function_value): Rename to...
5262 (mips_function_value_1): ... this. Make static. Handle receiving
5263 the function type in 'fn_decl_or_type' argument.
5264 (mips_function_value, mips_libcall_value,
5265 mips_function_value_regno_p): New function.
5266 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5267 TARGET_FUNCTION_VALUE_REGNO_P): Define.
5268
5269 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
5270
5271 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
5272 and -mavx256-split-unaligned-store.
5273 (ix86_option_override_internal): Split 32-byte AVX unaligned
5274 load/store by default.
5275 (ix86_avx256_split_vector_move_misalign): New.
5276 (ix86_expand_vector_move_misalign): Use it.
5277
5278 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
5279 -mavx256-split-unaligned-store.
5280
5281 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
5282 256bit load/store. Generate unaligned store on misaligned memory
5283 operand.
5284 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
5285 256bit load/store.
5286 (*avx_movdqu<avxmodesuffix>): Likewise.
5287
5288 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
5289 -mavx256-split-unaligned-store.
5290
5291 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
5292
5293 PR target/38598
5294 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
5295 Update commentary.
5296
5297 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
5298
5299 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
5300 opno arguments with an expand_operand. Use create_input_operand.
5301 (mips_prepare_builtin_target): Delete.
5302 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
5303 functions.
5304 (mips_expand_builtin_direct): Use create_output_operand and
5305 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
5306 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
5307 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
5308
5309 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
5310
5311 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
5312 function.
5313 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5314
5315 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
5316
5317 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
5318 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
5319 basic blocks and call commit_edge_insertions directly.
5320 (fixup_abnormal_edges): Move from here to...
5321 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
5322 on the edges and return whether some have actually been inserted.
5323 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
5324 compensation code.
5325
5326 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
5327
5328 PR rtl-optimization/48144
5329 * sel-sched-ir.c (merge_history_vect): Factor out from ...
5330 (merge_expr_data): ... here.
5331 (av_set_intersect): Rename to av_set_code_motion_filter.
5332 Update all callers. Call merge_history_vect when an expression
5333 is found in both sets.
5334 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
5335
5336 2011-03-26 Alan Modra <amodra@gmail.com>
5337
5338 * config/rs6000/predicates.md (word_offset_memref_op): Handle
5339 cmodel medium addresses.
5340 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
5341 64-bit gpr loads and stores.
5342 (rs6000_secondary_reload_ppc64): New function.
5343 * config/rs6000/rs6000-protos.h: Declare it.
5344 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
5345
5346 2011-03-26 Alan Modra <amodra@gmail.com>
5347
5348 PR target/47487
5349 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
5350 GNU Go in traceback table.
5351
5352 2011-03-25 Richard Henderson <rth@redhat.com>
5353
5354 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
5355 if there are exactly 6 operands.
5356 (set_storage_via_setmem): Similarly.
5357
5358 2011-03-25 Kai Tietz <ktietz@redhat.com>
5359
5360 * collect2.c (write_c_file_stat): Handle backslash
5361 as right-hand directory separator.
5362 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
5363 checking just for slash.
5364 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
5365 instead of checking for trailing slash.
5366 * gcc.c (record_temp_file): Use filename_cmp instead
5367 of strcmp.
5368 (do_spec_1): Likewise.
5369 (replace_outfile_spec_function): Likewise.
5370 (is_directory): Use filename_ncmp instead of strncmp.
5371 (print_multilib_info): Likewise.
5372 * gcov.c (find_source): Use filename_cmp instead
5373 instead of strcmp.
5374 (make_gcov_file_name): Fix order of slash/backslash
5375 checks.
5376 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
5377 (add_standard_paths): Likewise.
5378 * mips-tfile.c (saber_stop): Handle backslash.
5379 * prefix.c (update_path): Use filename_ncmp instead of
5380 strncmp.
5381 * profile.c (output_location): Use filename_cmp instead
5382 of strcmp.
5383 * read-md.c (handle_toplevel_file): Handle backslash.
5384 * tlink.c (frob_extension): Likewise.
5385 * tree-cfg.c (same_line_p): Use filename_cmp instead of
5386 strcmp.
5387 * tree-dump.c (dequeue_and_dump): Handle backslash.
5388 * tree.c (get_file_function_name): Likewise.
5389 * gengtype.c (read_input_list): Likewise.
5390 (get_file_realbasename): Likewise.
5391 (get_output_file_with_visibility): Use filename_cmp
5392 instead of strcmp.
5393
5394 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
5395
5396 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
5397 case to VFPv1.
5398
5399 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
5400
5401 * fold-const.c (expr_location_or): New function.
5402 (fold_truth_not_expr): Call it.
5403
5404 2011-03-25 Jeff Law <law@redhat.com>
5405
5406 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
5407 va_end.
5408 * c-family/c-common.c (def_fn_type): Likewise.
5409 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
5410 * emit-rtl.c (gen_rtvec): Likewise.
5411 * lto/lto-lang.c (def_fn_type): Likewise.
5412
5413 2011-03-25 Richard Guenther <rguenther@suse.de>
5414
5415 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
5416 also generate copies.
5417 (fini_copy_prop): Handle constant values properly.
5418
5419 2011-03-25 Jakub Jelinek <jakub@redhat.com>
5420
5421 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
5422 mode size instead of bitsize with DWARF2_ADDR_SIZE.
5423 (hash_loc_operands, compare_loc_operands): Handle
5424 DW_OP_GNU_entry_value.
5425
5426 2011-03-25 Kai Tietz <ktietz@redhat.com>
5427
5428 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
5429 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
5430 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
5431 comment and use macro TARGET_64BIT_MS_ABI instead.
5432 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
5433 and change default behavior for 32-bit MS_ABI.
5434 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
5435 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
5436 32-bit, too.
5437 (ix86_cfun_abi): Likewise.
5438 (ix86_maybe_switch_abi): Adjust comment.
5439 (init_cumulative_args): Check for bit-ness in MS_ABI case.
5440 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
5441 instead of checking for SYSV_ABI.
5442 (ix86_nsaved_sseregs): Likewise.
5443 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
5444 to 16 bytes.
5445 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
5446 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
5447 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
5448 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
5449 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
5450
5451 2011-03-25 Richard Guenther <rguenther@suse.de>
5452
5453 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
5454 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5455 (verify_gimple): Remove.
5456 * tree-cfg.c (verify_gimple_call): Merge verification
5457 from verify_stmts.
5458 (verify_gimple_phi): Merge verification from verify_stmts.
5459 (verify_gimple_label): New function.
5460 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
5461 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5462 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
5463 (verify_stmts): Rename to verify_gimple_in_cfg.
5464 (verify_gimple_in_cfg): New function.
5465 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
5466 * tree-ssa.c (verify_ssa): Likewise.
5467 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
5468
5469 2011-03-25 Richard Guenther <rguenther@suse.de>
5470
5471 * passes.c (init_optimization_passes): Add FRE pass after
5472 early SRA.
5473
5474 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
5475 Andrew Stubbs <ams@codesourcery.com>
5476
5477 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
5478 for Cortex-A8.
5479 (arm_movdi_vfp_cortexa8): New pattern.
5480 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
5481 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
5482 instructions when tuning for Cortex-A8. Set attribute "arch".
5483 * config/arm/arm.md: Move include arm-tune.md up a bit.
5484 (define_attr "arch"): Add "onlya8" and "nota8" values.
5485 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
5486
5487 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
5488
5489 PR bootstrap/48282
5490 Revert:
5491 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
5492
5493 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5494 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
5495 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5496 * passes.c (init_optimization_passes): Move
5497 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5498
5499 2011-03-25 Kai Tietz <ktietz@redhat.com>
5500
5501 * c-typeck.c (comptypes_internal): Replace target
5502 hook call of comp_type_attributes by version in tree.c file.
5503 * gimple.c (gimple_types_compatible_p_1): Likewise.
5504 * tree-ssa.c (useless_type_conversion_p): Likewise.
5505 * tree.c (build_type_attribute_qual_variant): Likewise.
5506 (attribute_value_equal): New static helper function.
5507 (comp_type_attributes): New function.
5508 (merge_attributes): Use attribute_value_equal for comparison.
5509 (attribute_list_contained): Likewise.
5510 * tree.h (comp_type_attributes): New prototype.
5511
5512 2011-03-25 Richard Guenther <rguenther@suse.de>
5513
5514 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
5515 of complex types at -O0.
5516 (verify_gimple_assign_binary): Likewise.
5517 (verify_gimple_assign_ternary): Likewise.
5518
5519 2011-03-24 Mark Wielaard <mjw@redhat.com>
5520
5521 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
5522 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
5523
5524 2011-03-24 Mark Wielaard <mjw@redhat.com>
5525
5526 PR debug/48041
5527 * dwarf2out.c (output_abbrev_section): Only write table when
5528 abbrev_die_table_in_use > 1.
5529
5530 2011-02-24 Richard Henderson <rth@redhat.com>
5531
5532 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
5533 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
5534 (alpha_expand_unaligned_load_words): Use extql.
5535 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
5536 (emit_insxl): Handle all modes for consistency.
5537
5538 2011-02-24 Richard Henderson <rth@redhat.com>
5539
5540 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
5541 (alpha_expand_unaligned_load): Likewise.
5542 (alpha_expand_unaligned_store): Likewise.
5543 (alpha_expand_unaligned_load_words): Likewise.
5544 (alpha_expand_unaligned_store_words): Likewise.
5545 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
5546 (alpha_split_lock_test_and_set_12): Likewise.
5547 (print_operand, alpha_fold_builtin_extxx): Likewise.
5548 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
5549 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
5550 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
5551 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
5552 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
5553 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
5554 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
5555 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
5556 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
5557 (extwl, extll, extql): Similarly.
5558 (inswh, inslh, insqh): Similarly.
5559 (mskbl, mskwl, mskll, mskql): Similarly.
5560 (mskwh, msklh, mskqh): Similarly.
5561
5562 2011-02-24 Richard Henderson <rth@redhat.com>
5563
5564 * config/alpha/alpha.md (attribute isa): Add er, ner.
5565 (attribute enabled): Handle them.
5566 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
5567
5568 2011-02-24 Richard Henderson <rth@redhat.com>
5569
5570 * config/alpha/alpha.md (attribute isa): Add vms.
5571 (attribute enabled): Handle it.
5572 (*movsf): Merge *movsf_{nofix,fix,nofp}.
5573 (*movdf): Merge *movdf_{nofix,fix,nofp}.
5574 (*movtf): Rename from *movtf_internal for consistency.
5575 (*movsi): Merge with *movsi_nt_vms.
5576 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
5577 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
5578 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
5579 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
5580
5581 2011-02-24 Richard Henderson <rth@redhat.com>
5582
5583 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
5584 (extendqisi2, extendhisi2): Likewise.
5585 (extendqidi2): Simplify BWX/non-BWX expansions.
5586 (extendhidi2): Similarly.
5587
5588 2011-02-24 Richard Henderson <rth@redhat.com>
5589
5590 * config/alpha/alpha.md (attribute isa): New.
5591 (attribute enabled): New.
5592 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
5593 (zero_extendqisi2, zero_extendqidi2): Similarly.
5594 (zero_extendhisi2, zero_extendhidi2): Similarly.
5595 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
5596
5597 2011-02-24 Richard Henderson <rth@redhat.com>
5598
5599 * config/alpha/predicates.md (input_operand): Revert last change;
5600 update comment to mention 32-bit VMS rather than Windows.
5601
5602 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
5603
5604 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5605 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
5606 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5607 * passes.c (init_optimization_passes): Move
5608 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5609
5610 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
5611
5612 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
5613
5614 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
5615
5616 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
5617 correctly.
5618
5619 2011-03-24 Jakub Jelinek <jakub@redhat.com>
5620
5621 PR debug/48204
5622 * simplify-rtx.c (simplify_const_unary_operation): Call
5623 real_convert when changing mode class with FLOAT_EXTEND.
5624
5625 2011-03-24 Nick Clifton <nickc@redhat.com>
5626
5627 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
5628 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
5629 * config/rx/rx.c (rx_option_override): Set align_jumps,
5630 align_loops and align_labels if not set by the user.
5631 (rx_align_for_label): New function.
5632 (rx_max_skip_for_label): New function.
5633 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
5634 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
5635 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
5636 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
5637 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
5638
5639 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
5640
5641 PR rtl-optimization/48263
5642 * optabs.c (expand_binop_directly): Reinstate convert_modes code
5643 and original commutative_p handling. Use maybe_gen_insn.
5644
5645 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5646
5647 * reload.c (find_reloads_subreg_address): Add address_reloaded
5648 parameter and return true there if the full address has been
5649 reloaded.
5650 (find_reloads_toplev): Pass address_reloaded flag.
5651 (find_reloads_address_1): Don't use address_reloaded parameter.
5652
5653 2011-03-24 Jeff Law <law@redhat.com>
5654
5655 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
5656 unused variable "ann".
5657 (remove_unused_locals): Likewise.
5658
5659 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
5660 statement.
5661
5662 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
5663 after it is freed.
5664
5665 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5666
5667 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
5668 for invalid symbolic addresses.
5669 (s390_secondary_reload): Don't use s390_check_symref_alignment for
5670 larl operands.
5671
5672 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
5673
5674 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
5675 the argument in calls to fold_truth_not_expr.
5676
5677 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
5678
5679 * tree.c (record_node_allocation_statistics): New function.
5680 (make_node_stat, copy_node_stat, build_string): Call it.
5681 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
5682 (build1_stat, build_omp_clause): Likewise.
5683
5684 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
5685
5686 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
5687 last commit.
5688
5689 2011-03-24 Richard Guenther <rguenther@suse.de>
5690
5691 PR tree-optimization/48271
5692 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
5693 blocks that still exist.
5694
5695 2011-03-24 Richard Guenther <rguenther@suse.de>
5696
5697 PR tree-optimization/48270
5698 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
5699 not free datarefs before ddrs.
5700
5701 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
5702
5703 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
5704 from the address built for a reference with variable offset.
5705
5706 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
5707
5708 PR target/48237
5709 * config/i386/i386.md (*movdf_internal_rex64): Do not split
5710 alternatives that can be handled with movq or movabsq insn.
5711 (*movdf_internal): Disable for !TARGET_64BIT.
5712 (*movdf_internal_nointeger): Ditto.
5713 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
5714
5715 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
5716
5717 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5718 (FUNCTION_ARG_ADVANCE): Likewise.
5719 * tm.texi.in: Change references to them to hook references.
5720 * tm.texi: Regenerate.
5721 * targhooks.c (default_function_arg): Eliminate check for target macro.
5722 (default_function_incoming_arg): Likewise.
5723 (default_function_arg_advance): Likewise.
5724 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5725 (function_arg_advance): Likewise.
5726 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5727
5728 2011-03-24 Richard Guenther <rguenther@suse.de>
5729
5730 PR middle-end/48269
5731 * tree-object-size.c (addr_object_size): Do not double-account
5732 for MEM_REF offsets.
5733
5734 2011-03-24 Diego Novillo <dnovillo@google.com>
5735
5736 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
5737 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
5738 (lto_input_data_block): Move from lto-opts.c. Make extern.
5739 Update all users.
5740 (lto_input_string): Rename from input_string. Make extern.
5741 Update all users.
5742 * lto-streamer-out.c (lto_output_string_with_length): Rename from
5743 output_string_with_length.
5744 Output 0 to indicate a non-NULL string. Update all callers to
5745 not emit 0.
5746 (lto_output_string): Rename from output_string. Make extern.
5747 Update all users.
5748 (lto_output_decl_state_streams): Make extern.
5749 (lto_output_decl_state_refs): Make extern.
5750 * lto-streamer.h (lto_input_string): Declare.
5751 (lto_input_data_block): Declare.
5752 (lto_output_string): Declare.
5753 (lto_output_string_with_length): Declare.
5754 (lto_output_decl_state_streams): Declare.
5755 (lto_output_decl_state_refs): Declare.
5756
5757 2011-03-24 Richard Guenther <rguenther@suse.de>
5758
5759 PR tree-optimization/46562
5760 * tree.c (build_invariant_address): New function.
5761 * tree.h (build_invariant_address): Declare.
5762 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
5763 a renamed function moved ...
5764 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
5765 Take valueization callback parameter.
5766 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
5767 * gimple-fold.h: New file.
5768 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
5769 (ccp_fold, fold_const_aggregate_ref,
5770 fold_ctor_reference, fold_nonarray_ctor_reference,
5771 fold_array_ctor_reference, fold_string_cst_ctor_reference,
5772 get_base_constructor): Move ...
5773 * gimple-fold.c: ... here.
5774 (gimple_fold_stmt_to_constant_1): New function
5775 split out from ccp_fold. Take a valueization callback parameter.
5776 Valueize all operands.
5777 (gimple_fold_stmt_to_constant): New wrapper function.
5778 (fold_const_aggregate_ref_1): New function split out from
5779 fold_const_aggregate_ref. Take a valueization callback parameter.
5780 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
5781 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
5782 invariant POINTER_PLUS_EXPRs to invariant form.
5783 (vn_valueize): New function.
5784 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
5785 * tree-vrp.c (vrp_valueize): New function.
5786 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
5787 to fold statements to constants.
5788 * tree-ssa-pre.c (eliminate): Properly guard propagation of
5789 function declarations.
5790 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
5791 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
5792
5793 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
5794
5795 * config/h8300/predicates.md (jump_address_operand): Fix register
5796 mode check.
5797
5798 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
5799
5800 * doc/invoke.texi (max-stores-to-sink): Document.
5801 * params.h (MAX_STORES_TO_SINK): Define.
5802 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
5803 if either vectorization or if-conversion is disabled.
5804 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
5805 tree-vect-data-refs.c vect_equal_offsets.
5806 (dr_equal_offsets_p): New function.
5807 (find_data_references_in_bb): Remove static.
5808 * tree-data-ref.h (find_data_references_in_bb): Declare.
5809 (dr_equal_offsets_p): Likewise.
5810 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
5811 (vect_drs_dependent_in_basic_block): Update calls to
5812 vect_equal_offsets.
5813 (vect_check_interleaving): Likewise.
5814 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
5815 (cond_if_else_store_replacement): Rename to...
5816 (cond_if_else_store_replacement_1): ... this. Change arguments and
5817 documentation.
5818 (cond_if_else_store_replacement): New function.
5819 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
5820 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
5821
5822 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
5823
5824 PR target/46934
5825 * config/arm/arm.md (casesi): Use the gen_int_mode() function
5826 to subtract lower bound instead of GEN_INT().
5827
5828 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
5829
5830 PR other/48179
5831 PR other/48221
5832 PR other/48234
5833 * doc/extend.texi (Alignment): Move section to match order in TOC.
5834 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
5835 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
5836
5837 2011-03-23 Jeff Law <law@redhat.com>
5838
5839 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
5840 before removing the edge.
5841
5842 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
5843 it may have been freed by redirect_branch_edge or
5844 redirect_edge_succ_nodup.
5845
5846 2011-03-23 Richard Guenther <rguenther@suse.de>
5847
5848 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
5849 (check_va_list_escapes): Likewise.
5850 (check_all_va_list_escapes): Likewise.
5851
5852 2011-03-23 Richard Guenther <rguenther@suse.de>
5853
5854 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
5855 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
5856 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
5857 (alias.o): Likewise.
5858 (ipa-type-escape.o): Remove.
5859 (ipa-struct-reorg.o): Likewise.
5860 (GTFILES): Remove ipa-struct-reorg.c.
5861 * alias.c: Do not include ipa-type-escape.h.
5862 * tree-ssa-alias.c: Likewise.
5863 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
5864 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
5865 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
5866 and ipa-type-escape passes.
5867 * tree-pass.h (pass_ipa_type_escape): Remove.
5868 (pass_ipa_struct_reorg): Likewise.
5869 * ipa-struct-reorg.h: Remove.
5870 * ipa-struct-reorg.c: Likewise.
5871 * ipa-type-escape.h: Likewise.
5872 * ipa-type-escape.c: Likewise.
5873 * doc/invoke.texi (-fipa-struct-reorg): Remove.
5874 (--param struct-reorg-cold-struct-ratio): Likewise.
5875 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5876 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5877 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
5878
5879 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5880
5881 * config/s390/2084.md: Enable all insn reservations also for z9_ec
5882 cpu attribute value.
5883 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
5884 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
5885 * config/s390/s390.c (processor_flags_table): New constant array.
5886 (s390_handle_arch_option): Remove.
5887 (s390_handle_option): Remove s390_handle_arch_option invocations
5888 and OPT_mwarn_framesize_ handling.
5889 (s390_option_override): Remove s390_handle_arch_option invocation.
5890 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
5891 warnings.
5892 * config/s390/s390.md (cpu attribute): Add z9_ec value.
5893 * config/s390/s390.opt (s390_tune, s390_arch)
5894 (march=): Replace s390_arch_option enum and values with
5895 processor_type. Set variable name to s390_arch. Set
5896 initialization value.
5897 (mtune=): Replace s390_arch_option with processor_type. Set
5898 variable name to s390_tune. Set initialization value.
5899
5900 2011-03-23 Julian Brown <julian@codesourcery.com>
5901
5902 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
5903 accesses which are not naturally aligned.
5904
5905 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
5906
5907 PR target/47553
5908 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
5909
5910 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
5911
5912 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
5913 parameter from "int" to "enum insn_code".
5914 (expand_operand_type): New enum.
5915 (expand_operand): New structure.
5916 (create_expand_operand): New function.
5917 (create_fixed_operand, create_output_operand): Likewise
5918 (create_input_operand, create_convert_operand_to): Likewise.
5919 (create_convert_operand_from, create_address_operand): Likewise.
5920 (create_integer_operand): Likewise.
5921 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
5922 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5923 (expand_insn, expand_jump_insn): Likewise.
5924 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
5925 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
5926 (expand_movstr, expand_builtin___clear_cache): Likewise.
5927 (expand_builtin_lock_release): Likewise.
5928 * explow.c (allocate_dynamic_stack_space): Likewise.
5929 (probe_stack_range): Likewise. Allow check_stack to FAIL,
5930 and use the default handling in that case.
5931 * expmed.c (check_predicate_volatile_ok): Delete.
5932 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
5933 (emit_cstore): Likewise.
5934 * expr.c (emit_block_move_via_movmem): Likewise.
5935 (set_storage_via_setmem, expand_assignment): Likewise.
5936 (emit_storent_insn, try_casesi): Likewise.
5937 (emit_single_push_insn): Likewise. Allow the expansion to fail.
5938 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
5939 (expand_vec_shift_expr, expand_binop_directly): Likewise.
5940 (expand_twoval_unop, expand_twoval_binop): Likewise.
5941 (expand_unop_direct, emit_indirect_jump): Likewise.
5942 (emit_conditional_move, vector_compare_rtx): Likewise.
5943 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
5944 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
5945 (expand_sync_lock_test_and_set): Likewise.
5946 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
5947 (emit_unop_insn): Likewise.
5948 (expand_copysign_absneg): Change icode to an insn_code.
5949 (create_convert_operand_from_type): New function.
5950 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
5951 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5952 (expand_insn, expand_jump_insn): Likewise.
5953 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
5954 than const_int_operand for operand 2.
5955
5956 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5957
5958 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
5959 if possible.
5960
5961 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
5962
5963 * emit-rtl.c (emit_pattern_before_noloc): New function.
5964 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
5965 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
5966 (emit_pattern_after_noloc): New function.
5967 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
5968 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
5969
5970 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
5971
5972 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
5973 (__ffsDI2): Likewise.
5974
5975 2011-03-22 Richard Henderson <rth@redhat.com>
5976
5977 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
5978 of !TARGET_ABI_OPEN_VMS.
5979 (alpha_trampoline_init, alpha_start_function): Likewise.
5980 (alpha_expand_epilogue, alpha_file_start): Likewise.
5981 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
5982 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
5983 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
5984 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
5985 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
5986
5987 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5988
5989 * config/s390/s390-opts.h: New.
5990 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
5991 s390_arch_flags, s390_warn_framesize, s390_stack_size,
5992 s390_stack_guard): Remove.
5993 (s390_handle_arch_option): Return void. Take enum
5994 s390_arch_option value instead of string and searching array.
5995 (s390_handle_option): Don't assert that global structures are in
5996 use. Access variables via opts pointer. Use error_at. Don't use
5997 sscanf for -mstack-guard= or -mstack-size=. Update call to
5998 s390_handle_arch_option.
5999 (s390_option_override): Update call to s390_handle_arch_option.
6000 (s390_emit_prologue): Use %d format for s390_stack_size in
6001 diagnostic. Use %wd for HOST_WIDE_INT.
6002 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
6003 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
6004 * config/s390/s390.opt (config/s390/s390-opts.h): New
6005 HeaderInclude entry.
6006 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
6007 s390_arch_flags, s390_warn_framesize): New Variable entries.
6008 (s390_arch_option): New Enum and EnumValue entries.
6009 (march=): Use Enum instead of Var.
6010 (mstack-guard=, mstack-size=): Use UInteger and Var.
6011 (mtune=): Use Enum.
6012
6013 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6014
6015 * config/score/score.c (score_handle_option): Don't assert that
6016 global structures are in use. Access target_flags via opts
6017 pointer. Use value of -march= option to determine target_flags
6018 settings.
6019 * config/score/score.opt (march=): Use Enum.
6020 (score_arch): New Enum and EnumValue entries.
6021
6022 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6023
6024 * config/mep/mep.c (option_mtiny_specified): Remove.
6025 (mep_option_override): Move register handling for -mivc2 from
6026 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
6027 instead of option_mtiny_specified.
6028 (mep_handle_option): Access target_flags via opts pointer. Don't
6029 assert that global structures are in use. Defer part of -mivc2
6030 handling and move it to mep_option_override.
6031 * config/mep/mep.opt (IVC2): New Mask entry.
6032 (mivc2): Use Var and Defer instead of Mask.
6033
6034 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6035
6036 * config/v850/v850-opts.h: New.
6037 * config/v850/v850.c (small_memory): Replace with
6038 small_memory_physical_max array. Make that array static const.
6039 (v850_handle_memory_option): Take integer value of argument. Take
6040 gcc_options pointer, option text and location. Return void.
6041 Update for changes to small memory structures.
6042 (v850_handle_option): Access target_flags via opts pointer. Don't
6043 assert that global structures are in use. Update calls to
6044 v850_handle_memory_option.
6045 (v850_encode_data_area): Update references to small memory settings.
6046 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
6047 (enum small_memory_type): Move to v850-opts.h.
6048 * config/v850/v850.opt (config/v850/v850-opts.h): New
6049 HeaderInclude entry.
6050 (small_memory_max): New Variable entry.
6051 (msda): Replace by pair of options msda= and msda-. Use UInteger.
6052 (mtda, mzda): Likewise.
6053
6054 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6055
6056 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
6057 pointer. Don't assert that global structures are in use.
6058
6059 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6060
6061 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
6062 via opts pointer. Don't assert that global structures are in use.
6063
6064 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6065
6066 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
6067 (munix=93): Use Var.
6068 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
6069 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
6070 * config/pa/pa-opts.h: New.
6071 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
6072 (pa_handle_option): Don't assert that global structures are in
6073 use. Access target_flags via opts pointer. Don't handle
6074 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
6075 OPT_munix_98 here.
6076 (pa_option_override): Handle deferred OPT_mfixed_range_.
6077
6078 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6079
6080 * config/mn10300/mn10300-opts.h: New.
6081 * config/mn10300/mn10300.c (mn10300_processor,
6082 mn10300_tune_string): Remove.
6083 (mn10300_handle_option): Don't assert that global structures are
6084 in use. Access mn10300_processor via opts pointer. Don't handle
6085 OPT_mtune_ here.
6086 * config/mn10300/mn10300.h (enum processor_type): Move to
6087 mn10300-opts.h.
6088 (mn10300_processor): Remove.
6089 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
6090 HeaderInclude entry.
6091 (mn10300_processor): New Variable entry.
6092 (mtune=): Use Var.
6093
6094 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6095
6096 * config/microblaze/microblaze.c: Don't include opts.h.
6097 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
6098 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
6099 (mno-clearbss): Use Var and Warn.
6100
6101 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6102
6103 * config/m32r/m32r-opts.h: New.
6104 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
6105 (m32r_handle_option): Don't assert that global structures are in
6106 use. Access target_flags and m32r_cache_flush_func via opts
6107 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
6108 OPT_mno_flush_trap here.
6109 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
6110 include of m32r-opts.h.
6111 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
6112 HeaderInclude entry.
6113 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
6114 (mmodel=): Use Enum and Var.
6115 (m32r_model): New Enum and EnumValue entries.
6116 (mno-flush-trap): Use Var.
6117 (msdata=): Use Enum and Var.
6118 (m32r_sdata): New Enum and EnumValue entries.
6119
6120 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6121
6122 * config/m32c/m32c.c: Don't include opts.h.
6123 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
6124 m32c_handle_option): Remove.
6125 (m32c_option_override): Check global_options_set.x_target_memregs
6126 instead of target_memregs_set.
6127 * config/m32c/m32c.h (target_memregs): Remove.
6128 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
6129 variable.
6130
6131 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6132
6133 * config/iq2000/iq2000-opts.h: New.
6134 * config/iq2000/iq2000.c: Don't include opts.h.
6135 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
6136 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
6137 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
6138 HeaderInclude entry.
6139 (iq2000_tune): New Variable entry.
6140 (march=): Add comment. Use Enum.
6141 (iq2000_arch): New Enum and EnumValue entries.
6142 (mcpu=): Use Enum and Var.
6143 (iq2000_tune): New Enum and EnumValue entries.
6144
6145 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6146
6147 * config/ia64/ia64-opts.h: New.
6148 * config/ia64/ia64.c (ia64_tune): Remove.
6149 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
6150 here. Use error_at.
6151 (ia64_option_override): Handle deferred OPT_mfixed_range_.
6152 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
6153 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
6154 HeaderInclude entry.
6155 (ia64_tune): New Variable entry.
6156 (mfixed-range=): Use Defer and Var.
6157 (mtune=): Use Enum and Var.
6158 (ia64_tune): New Enum and EnumValue entries.
6159
6160 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6161
6162 * config/frv/frv-opts.h: New.
6163 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
6164 frv-opts.h.
6165 (frv_cpu_type): Remove.
6166 * config/frv/frv.c: Don't include opts.h.
6167 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
6168 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
6169 (frv_cpu_type): New Variable entry.
6170 (frv_cpu): New Enum and EnumValue entries.
6171
6172 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6173
6174 * config/cris/cris.c (cris_handle_option): Access target_flags via
6175 opts pointer. Don't assert that global structures are in use.
6176 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
6177 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
6178
6179 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6180
6181 * config/bfin/bfin-opts.h: New.
6182 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
6183 bfin_si_revision, bfin_workarounds): Remove.
6184 (bfin_cpus): Make static const.
6185 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
6186 not bfin_lib_id_given.
6187 (bfin_handle_option): Don't set bfin_lib_id_given. Access
6188 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
6189 pointer. Use error_at. Don't assert that global structures are in use.
6190 * config/bfin/bfin.h: Include bfin-opts.h.
6191 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
6192 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
6193 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
6194 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
6195 entries.
6196
6197 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6198
6199 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
6200 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
6201 or -msoft-float here.
6202 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
6203 -msoft-float and -mhard-float.
6204 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
6205 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6206 msoft-float.
6207 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
6208 -msoft-float.
6209 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
6210 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
6211 not mhard-float.
6212 (LIBGCC_SPEC): Don't handle -msoft-float.
6213 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
6214 -mhard-float.
6215 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6216 msoft-float.
6217 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
6218 -mfloat-abi=*, not -msoft-float and -mhard-float.
6219 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
6220 -msoft-float.
6221 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
6222 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
6223 mhard-float and msoft-float.
6224 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
6225 mfloat-abi=soft in comments, not mhard-float and msoft-float.
6226 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6227 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
6228 mhard-float.
6229 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
6230 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
6231 msoft-float.
6232 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
6233 not mhard-float.
6234 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
6235 not msoft-float.
6236
6237 2011-03-22 Richard Henderson <rth@redhat.com>
6238
6239 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
6240 TARGET_ABI_WINDOWS_NT.
6241 (alpha_output_function_end_prologue): Likewise.
6242 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
6243 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6244 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
6245 (trap, *movsi_nt_vms): Likewise.
6246 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
6247 (*tablejump_osf_nt_internal): Remove.
6248 * config/alpha/predicates.md (input_operand): Only test Pmode.
6249
6250 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6251
6252 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
6253 via opts pointer. Use error_at. Don't assert that global
6254 structures are in use.
6255
6256 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6257
6258 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
6259 (ix86_handle_option): Access ix86_isa_flags and
6260 ix86_isa_flags_explicit via opts pointer. Don't assert that
6261 global structures are in use.
6262 (ix86_function_specific_save, ix86_function_specific_restore):
6263 Update ix86_isa_flags_explicit field name.
6264 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
6265 (ix86_isa_flags_explicit): Rename TargetSave entry to
6266 x_ix86_isa_flags_explicit.
6267
6268 2011-03-22 Richard Henderson <rth@redhat.com>
6269
6270 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
6271 (alpha_option_override, direct_return): Likewise.
6272 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
6273 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
6274 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
6275 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
6276 (alpha_expand_epilogue, alpha_end_function): Likewise.
6277 (alpha_init_libfuncs): Likewise.
6278 (struct machine_function): Remove unicosmk members.
6279 (print_operand) ['t']: Remove.
6280 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
6281 unicosmk_output_module_name, unicosmk_output_common,
6282 current_section_align, unicosmk_output_text_section_asm_op,
6283 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
6284 unicosmk_section_type_flags, unicosmk_unique_section,
6285 unicosmk_asm_named_section, unicosmk_insert_attributes,
6286 unicosmk_output_align, unicosmk_defer_case_vector,
6287 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
6288 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
6289 unicosmk_output_ssib, unicosmk_add_call_info_word,
6290 unicosmk_extern_head, unicosmk_output_default_externs,
6291 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
6292 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
6293 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
6294 * config/alpha/alpha-protos.h: Update.
6295 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
6296 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
6297 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
6298 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
6299 (*mulsi_se, mulvsi3): Likewise.
6300 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
6301 (*divmodsi_internal, call, call_value, realign): Likewise.
6302 (moddi3, umoddi3): Likewise; remove duplicate expander.
6303 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
6304 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
6305 (*movdi_nofix): Remove r/U alternative.
6306 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
6307 * config/alpha/constraints.md ("U"): Remove.
6308 * config/alpha/predicates.md (call_operand"): Don't test
6309 TARGET_ABI_UNICOSMK.
6310
6311 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6312
6313 * target.def (handle_option): Take gcc_options and
6314 cl_decoded_option pointers and location_t.
6315 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
6316 * doc/tm.texi: Regenerate.
6317 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
6318 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
6319 * lto-opts.c (lto_reissue_options): Generate option structure for
6320 targetm.handle_option call.
6321 * opts.c (target_handle_option): Update call to
6322 targetm.handle_option. Remove assertions about values now passed
6323 down to hook.
6324 * targhooks.c (default_target_handle_option): New.
6325 * targhooks.h (default_target_handle_option): Declare.
6326 * config/alpha/alpha.c: Include opts.h.
6327 (alpha_handle_option): Update to new hook interface.
6328 * config/arm/arm.c: Include opts.h.
6329 (arm_handle_option): Update to new hook interface.
6330 * config/arm/t-arm (arm.o): Update dependencies.
6331 * config/bfin/bfin.c: Include opts.h.
6332 (bfin_handle_option): Update to new hook interface.
6333 * config/cris/cris.c: Include opts.h.
6334 (cris_handle_option): Update to new hook interface.
6335 * config/frv/frv.c: Include opts.h.
6336 (frv_handle_option): Update to new hook interface.
6337 * config/i386/i386.c: Include opts.h.
6338 (ix86_handle_option): Update to new hook interface.
6339 (ix86_valid_target_attribute_inner_p): Generate option structure
6340 for call to ix86_handle_option.
6341 * config/i386/t-i386 (i386.o): Update dependencies.
6342 * config/ia64/ia64.c: Include opts.h.
6343 (ia64_handle_option): Update to new hook interface.
6344 * config/ia64/t-ia64 (ia64.o): Update dependencies.
6345 * config/iq2000/iq2000.c: Include opts.h.
6346 (iq2000_handle_option): Update to new hook interface.
6347 * config/m32c/m32c.c: Include opts.h.
6348 (m32c_handle_option): Update to new hook interface.
6349 * config/m32r/m32r.c: Include opts.h.
6350 (m32r_handle_option): Update to new hook interface.
6351 * config/m68k/m68k.c: Include opts.h.
6352 (m68k_handle_option): Update to new hook interface.
6353 * config/mep/mep.c: Include opts.h.
6354 (mep_handle_option): Update to new hook interface.
6355 * config/microblaze/microblaze.c: Include opts.h.
6356 (microblaze_handle_option): Update to new hook interface.
6357 * config/mips/mips.c: Include opts.h.
6358 (mips_handle_option): Update to new hook interface.
6359 * config/mn10300/mn10300.c: Include opts.h.
6360 (mn10300_handle_option): Update to new hook interface.
6361 * config/pa/pa.c: Include opts.h.
6362 (pa_handle_option): Update to new hook interface.
6363 * config/pdp11/pdp11.c: Include opts.h.
6364 (pdp11_handle_option): Update to new hook interface.
6365 * config/rs6000/rs6000.c: Include opts.h.
6366 (rs6000_handle_option): Update to new hook interface.
6367 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6368 * config/rx/rx.c: Include opts.h.
6369 (rx_handle_option): Update to new hook interface.
6370 * config/s390/s390.c: Include opts.h.
6371 (s390_handle_option): Update to new hook interface.
6372 * config/score/score.c: Include opts.h.
6373 (score_handle_option): Update to new hook interface.
6374 * config/sh/sh.c: Include opts.h.
6375 (sh_handle_option): Update to new hook interface.
6376 * config/sparc/sparc.c: Include opts.h.
6377 (sparc_handle_option): Update to new hook interface.
6378 * config/v850/v850.c: Include opts.h.
6379 (v850_handle_option): Update to new hook interface.
6380
6381 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6382
6383 * gcc.c (driver_unknown_option_callback): Only permit and save
6384 unknown -Wno- options.
6385 (driver_wrong_lang_callback): Save options directly instead of via
6386 driver_unknown_option_callback.
6387
6388 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
6389
6390 * combine.c (simplify_set): Try harder to find the best CC mode when
6391 simplifying a nested COMPARE on the RHS.
6392
6393 2011-03-22 Joseph Myers <joseph@codesourcery.com>
6394
6395 * config/alpha/gnu.h: Remove.
6396 * config/arc: Remove directory.
6397 * config/arm/netbsd.h: Remove.
6398 * config/arm/t-pe: Remove.
6399 * config/crx: Remove directory.
6400 * config/i386/netbsd.h: Remove.
6401 * config/m68hc11: Remove directory.
6402 * config/m68k/uclinux-oldabi.h: Remove.
6403 * config/mcore/mcore-pe.h: Remove.
6404 * config/mcore/t-mcore-pe: Remove.
6405 * config/netbsd-aout.h: Remove.
6406 * config/rs6000/gnu.h: Remove.
6407 * config/sh/sh-symbian.h: Remove.
6408 * config/sh/symbian-base.c: Remove.
6409 * config/sh/symbian-c.c: Remove.
6410 * config/sh/symbian-cxx.c: Remove.
6411 * config/sh/symbian-post.h: Remove.
6412 * config/sh/symbian-pre.h: Remove.
6413 * config/sh/t-symbian: Remove.
6414 * config/svr3.h: Remove.
6415 * config/vax/netbsd.h: Remove.
6416 * config.build: Don't handle i[34567]86-*-pe.
6417 * config.gcc: Remove handling of deprecations for most deprecated
6418 targets.
6419 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
6420 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
6421 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
6422 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
6423 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
6424 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
6425 Remove cases.
6426 * config.host: Don't handle i[34567]86-*-pe.
6427 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
6428 (ASM_SPEC32): Don't handle -mcall-gnu.
6429 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
6430 -mcall-gnu.
6431 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
6432 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
6433 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
6434 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
6435 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
6436 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
6437 conditional on SYMBIAN.
6438 * configure.ac: Don't handle powerpc*-*-gnu*.
6439 * configure: Regenerate.
6440 * doc/extend.texi (interrupt attribute): Don't mention CRX.
6441 * doc/install-old.texi (m6811, m6812): Don't mention.
6442 * doc/install.texi (arc-*-elf*): Don't document multilib option.
6443 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
6444 (m68k-uclinuxoldabi): Don't mention.
6445 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
6446 Remove.
6447 (-mcall-gnu): Remove.
6448 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
6449 families): Remove constraint documentation.
6450
6451 2011-03-22 Marius Strobl <marius@FreeBSD.org>
6452
6453 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
6454 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
6455 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
6456
6457 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
6458
6459 * config/avr/avr-protos.h (expand_epilogue): Change prototype
6460 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
6461 * config/avr/avr.c (init_cumulative_args)
6462 (avr_function_arg_advance): Use it.
6463 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
6464 sibcall epilogues.
6465 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
6466 (avr_function_ok_for_sibcall): ...this new function.
6467 (avr_lookup_function_attribute1): New static Function.
6468 (avr_naked_function_p, interrupt_function_p)
6469 (signal_function_p, avr_OS_task_function_p)
6470 (avr_OS_main_function_p): Use it.
6471 * config/avr/avr.md ("sibcall", "sibcall_value")
6472 ("sibcall_epilogue"): New expander.
6473 ("*call_insn", "*call_value_insn"): New insn.
6474 ("call_insn", "call_value_insn"): Remove
6475 ("call", "call_value", "epilogue"): Change expander to handle
6476 sibling calls.
6477
6478 2011-03-21 Nick Clifton <nickc@redhat.com>
6479
6480 * doc/invoke.texi (Overall Options): Move closing brace to end of
6481 options list.
6482 (Optimization Options): Add missing @gol.
6483 (Directory Options): Likewise.
6484 (i386 and x86-64 Options): Likewise.
6485 (RS6000 and PowerPC Options): Likewise.
6486 (i386 and x86-64 Windows Options): Likewise.
6487 (V850 Options): Add text missing from descriptions.
6488
6489 2011-03-22 Richard Henderson <rth@redhat.com>
6490
6491 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
6492 (avr_incoming_return_addr_rtx): New.
6493 (emit_push_byte): New.
6494 (expand_prologue): Use it. Remove incorrect dwarf annotation for
6495 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
6496 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
6497 (emit_pop_byte): New.
6498 (expand_epilogue): Use it. Pop frame pointer by bytes.
6499 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
6500 (INCOMING_RETURN_ADDR_RTX): New.
6501 (INCOMING_FRAME_SP_OFFSET): New.
6502 (ARG_POINTER_CFA_OFFSET): New.
6503 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
6504 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
6505 (pophi): Remove.
6506
6507 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
6508
6509 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
6510
6511 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6512 (FUNCTION_ARG_ADVANCE): Likewise.
6513 * tm.texi.in: Change references to them to hook references.
6514 * tm.texi: Regenerate.
6515 * targhooks.c (default_function_arg): Eliminate check for target
6516 macro.
6517 (default_function_incoming_arg): Likewise.
6518 (default_function_arg_advance): Likewise.
6519 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
6520 (function_arg_advance): Likewise.
6521 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6522
6523 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
6524
6525 * tree.c (build_call_1): New function.
6526 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
6527
6528 2011-03-22 Richard Guenther <rguenther@suse.de>
6529
6530 PR tree-optimization/48228
6531 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
6532 for single-arg PHIs.
6533
6534 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
6535
6536 PR rtl-optimization/48143
6537 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
6538 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
6539 sse2_cvtps2pd): Likewise.
6540
6541 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6542
6543 * recog.c (canonicalize_change_group): Use validate_unshare_change.
6544
6545 2011-03-22 Richard Guenther <rguenther@suse.de>
6546
6547 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
6548 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
6549 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
6550 and REALIGN_LOAD_EXPR.
6551 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
6552 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
6553 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
6554 DOT_PROD_EXPR case ...
6555 (expand_expr_real_2): ... here.
6556 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
6557 and REALIGN_LOAD_EXPR.
6558 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
6559 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
6560 (vect_create_epilog_for_reduction): Likewise.
6561 (vectorizable_reduction): Likewise.
6562 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
6563 * tree-vect-stmts.c (vectorizable_load): Likewise.
6564
6565 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
6566
6567 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
6568
6569 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6570
6571 * config/s390/s390.c (s390_delegitimize_address): Fix offset
6572 handling for PLTOFF/GOTOFF.
6573
6574 2011-03-22 Nick Clifton <nickc@redhat.com>
6575
6576 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
6577 trailing backslash from the end of the macro definition.
6578
6579 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6580
6581 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
6582 and PLT unspecs.
6583
6584 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
6585
6586 * expr.h (prepare_operand): Move to...
6587 * optabs.h (prepare_operand): ...here and change the insn code
6588 parameter from "int" to "enum insn_code".
6589 (insn_operand_matches): Declare.
6590 * expr.c (init_expr_target): Use insn_operand_matches.
6591 (compress_float_constant): Likewise.
6592 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
6593 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
6594 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
6595 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
6596 Likewise.
6597 (gen_cond_trap): Likewise.
6598 (prepare_operand): Likewise. Change icode to an insn_code.
6599 (insn_operand_matches): New function.
6600 * reload.c (find_reloads_address_1): Use insn_operand_matches.
6601 * reload1.c (gen_reload): Likewise.
6602 * targhooks.c (default_secondary_reload): Likewise.
6603
6604 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
6605
6606 * config/alpha/alpha.md (unspec): New define_c_enum.
6607 (unspecv): Ditto.
6608
6609 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
6610
6611 PR debug/48214
6612 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
6613 between a call and its CALL_ARG_LOCATION note.
6614
6615 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
6616
6617 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
6618
6619 2011-03-21 Jakub Jelinek <jakub@redhat.com>
6620
6621 PR c/42544
6622 PR c/48197
6623 * c-common.c (shorten_compare): If primopN is first sign-extended
6624 to opN and then zero-extended to result type, set primopN to opN.
6625
6626 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
6627
6628 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
6629 for barrier handlers.
6630
6631 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
6632
6633 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
6634 UNSPEC constants to be in the unspec enumeration, and redefine
6635 all UNSPECV constants to be in the unspecv enumeration, so that
6636 dumps print which unspec/unspec_volatile this is.
6637 * config/rs6000/vector.md (UNSPEC_*): Ditto.
6638 * config/rs6000/paired.md (UNSPEC_*): Ditto.
6639 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
6640 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
6641 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
6642
6643 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
6644 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
6645 UNSPECV_LWSYNC, since these are used as unspec_volatile.
6646 * config/rs6000/sync.md (isync, lwsync): Ditto.
6647
6648 2011-03-21 Richard Guenther <rguenther@suse.de>
6649
6650 * params.def (lto-min-partition): Fix typo.
6651
6652 2011-03-21 Richard Guenther <rguenther@suse.de>
6653
6654 PR c/47939
6655 * c-decl.c (grokdeclarator): Drop to the main variant only
6656 for array types. Drop flag_gen_aux_info check.
6657
6658 2011-03-21 Richard Guenther <rguenther@suse.de>
6659
6660 PR translation/47911
6661 * params.def (lto-partitions): Fix typo.
6662 (lto-min-partition): Fix wording.
6663
6664 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
6665
6666 * config/rs6000/t-freebsd: Remove duplication from file.
6667
6668 2011-03-21 Richard Guenther <rguenther@suse.de>
6669
6670 PR middle-end/47661
6671 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
6672
6673 2011-03-21 Richard Guenther <rguenther@suse.de>
6674
6675 PR lto/48210
6676 * params.def (lto-partitions): Require at least 1 partition.
6677
6678 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6679
6680 * gthr-solaris.h: Remove.
6681 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
6682 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
6683 (LIB_SPEC): Likewise.
6684 * config/sol2.opt (threads): Remove.
6685 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
6686 (sparc*-*-solaris2*): Likewise.
6687 * configure.ac (enable_threads): Enable solaris support.
6688 * configure: Regenerate.
6689 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
6690 * doc/install.texi (Configuration, --enable-threads=lib): Remove
6691 solaris.
6692
6693 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6694
6695 * config.gcc: Obsolete *-*-solaris2.8*.
6696 * doc/install.texi (Specific, *-*-solaris2*): Document it.
6697
6698 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6699
6700 PR bootstrap/48135
6701 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
6702 reference. Solaris 8 perl works.
6703
6704 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6705
6706 PR bootstrap/48135
6707 * doc/install.texi (Prerequisites): Move jar etc. up.
6708 Explain support library version requirements.
6709
6710 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6711
6712 PR bootstrap/48135
6713 * doc/install.texi (Prerequisites): Move Perl to build
6714 requirements. Always necessary on Solaris 2 with Sun ld.
6715
6716 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6717
6718 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
6719 binutils 2.21.
6720 (Specific, i?86-*-solaris2.[89]): Likewise.
6721 (Specific, i?86-*-solaris2.10): Likewise.
6722 (Specific, mips-sgi-irix6): Likewise.
6723 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
6724 Update for binutils 2.21.
6725
6726 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6727
6728 * configure.ac (gcc_cv_lto_plugin): Fix typo.
6729 Allow -fuse-linker-plugin for non-default plugin linker.
6730 * configure: Regenerate.
6731
6732 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
6733
6734 PR bootstrap/48167
6735 * gengtype.c (files_rules): Added rule for cp/parser.h.
6736
6737 2011-03-21 Jakub Jelinek <jakub@redhat.com>
6738
6739 PR target/48213
6740 * config/s390/s390.c (s390_delegitimize_address): Don't call
6741 lowpart_subreg if orig_x has BLKmode.
6742
6743 2011-03-21 Kai Tietz <ktietz@redhat.com>
6744
6745 PR target/12171
6746 * doc/plugins.texi: Adjust documentation for plugin register_callback.
6747 * tree.h (attribute_spec): Add new member affects_type_identity.
6748 * attribs.c (empty_attribute_table): Adjust attribute_spec
6749 initializers.
6750 * config/alpha/alpha.c: Likewise.
6751 * config/arc/arc.c: Likewise.
6752 * config/arm/arm.c: Likewise.
6753 * config/avr/avr.c: Likewise.
6754 * config/bfin/bfin.c: Likewise.
6755 * config/crx/crx.c: Likewise.
6756 * config/darwin.h: Likewise.
6757 * config/h8300/h8300.c: Likewise.
6758 * config/i386/cygming.h: Likewise.
6759 * config/i386/i386.c: Likewise.
6760 * config/ia64/ia64.c: Likewise.
6761 * config/m32c/m32c.c: Likewise.
6762 * config/m32r/m32r.c: Likewise.
6763 * config/m68hc11/m68hc11.c: Likewise.
6764 * config/m68k/m68k.c: Likewise.
6765 * config/mcore/mcore.c: Likewise.
6766 * config/mep/mep.c: Likewise.
6767 * config/microblaze/microblaze.c: Likewise.
6768 * config/mips/mips.c: Likewise.
6769 * config/rs6000/rs6000.c: Likewise.
6770 * config/rx/rx.c: Likewise.
6771 * config/sh/sh.c: Likewise.
6772 * config/sol2.h: Likewise.
6773 * config/sparc/sparc.c: Likewise.
6774 * config/spu/spu.c: Likewise.
6775 * config/stormy16/stormy16.c: Likewise.
6776 * config/v850/v850.c: Likewise.
6777
6778 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
6779
6780 * simplify-rtx.c (simplify_binary_operation_1): Handle
6781 (xor (and A B) C) case when B and C are both constants.
6782
6783 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
6784
6785 * tree-dfa.c (add_referenced_var): Fix typo in comment.
6786
6787 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
6788
6789 PR bootstrap/48168
6790 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
6791
6792 2011-03-20 Jakub Jelinek <jakub@redhat.com>
6793
6794 PR rtl-optimization/48156
6795 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
6796 assume df and df_lr are not NULL.
6797
6798 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6799
6800 PR debug/48023
6801 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
6802 between a call and its CALL_ARG_LOCATION note.
6803
6804 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
6805
6806 PR debug/48178
6807 * config/sh/sh.c (find_barrier): Don't emit a constant pool
6808 between a call and its corresponding CALL_ARG_LOCATION note.
6809
6810 2011-03-19 Anatoly Sokolov <aesok@post.ru>
6811
6812 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
6813 instead of loop. Use HARD_REGISTER_NUM_P predicate.
6814 * haifa-sched.c (setup_ref_regs): Ditto.
6815 * caller-save.c (add_used_regs_1): Ditto.
6816 * dse.c (look_for_hardregs): Ditto.
6817 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
6818 * sched-rgn.c (check_live_1): Ditto.
6819
6820 2011-03-18 Joseph Myers <joseph@codesourcery.com>
6821
6822 * c-decl.c (diagnose_mismatched_decls): Give an error for
6823 redefining a typedef with variably modified type.
6824
6825 2011-03-18 Joseph Myers <joseph@codesourcery.com>
6826
6827 * c-decl.c (grokfield): Don't allow typedefs for structures or
6828 unions with no tag by default.
6829 * doc/extend.texi (Unnamed Fields): Update.
6830
6831 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
6832
6833 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6834 Rewrite using indirect functions.
6835 (lwp_slwpcb): Ditto.
6836 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
6837 (avx_vinsertf128<mode>): Ditto.
6838
6839 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6840
6841 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
6842 unspecs.
6843
6844 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6845
6846 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
6847 splitting between a call and its corresponding CALL_ARG_LOCATION note.
6848
6849 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
6850
6851 PR rtl-optimization/48170
6852 * gcse.c (hoist_code): Remove bogus asserts.
6853
6854 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
6855
6856 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
6857 computation for prologue/epilogue.
6858
6859 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6860
6861 * Makefile.in (check-consistency): Remove.
6862
6863 2011-03-18 Jakub Jelinek <jakub@redhat.com>
6864
6865 PR debug/48176
6866 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
6867 arange_table_in_use is 0, but either text_section_used or
6868 cold_text_section_used is true. Don't call it if
6869 !info_section_emitted.
6870
6871 2011-03-18 Anatoly Sokolov <aesok@post.ru>
6872
6873 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
6874 FUNCTION_VALUE_REGNO_P): Remove.
6875 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
6876 Remove.
6877 * config/avr/avr.c (avr_ret_register): Make static inline.
6878 (avr_function_value_regno_p): New function.
6879 (avr_libcall_value): Make static. Add 'func' argument.
6880 (avr_function_value): Make static. Rename 'func' argument to
6881 'fn_decl_or_type', forward it to avr_libcall_value. Call
6882 avr_ret_register function instead of RET_REGISTER macro.
6883 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
6884
6885 2011-03-18 Jason Merrill <jason@redhat.com>
6886
6887 PR c++/23372
6888 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
6889
6890 2011-03-18 Richard Guenther <rguenther@suse.de>
6891
6892 * doc/install.texi (--enable-gold): Remove.
6893 (--with-plugin-ld): Document.
6894 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
6895
6896 2011-03-18 Andrew Pinski <pinskia@gmail.com>
6897
6898 PR middle-end/47790
6899 * expr.c (optimize_bitfield_assignment_op): Revamp to work
6900 again after expansion changes.
6901
6902 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
6903
6904 * combine.c (try_combine): Do simplification only call of
6905 subst() on i2 even when i1 is present. Update comments.
6906
6907 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
6908
6909 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
6910 and UNSPEC_PCREL_SYMOFF.
6911
6912 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6913
6914 * config/s390/s390.md: Use define_c_enum for the unspec constant
6915 definitions.
6916
6917 2011-03-18 Richard Henderson <rth@redhat.com>
6918 Jakub Jelinek <jakub@redhat.com>
6919
6920 PR bootstrap/48161
6921 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
6922 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
6923
6924 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
6925
6926 PR middle-end/47725
6927 * combine.c (cant_combine_insn_p): Don't check zero/sign
6928 extended hard registers.
6929
6930 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
6931
6932 PR middle-end/47725
6933 * combine.c (cant_combine_insn_p): Check zero/sign extended
6934 hard registers.
6935
6936 2011-03-17 Anatoly Sokolov <aesok@post.ru>
6937
6938 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6939 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
6940 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
6941 Change return type to bool.
6942 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6943
6944 2011-03-17 Jakub Jelinek <jakub@redhat.com>
6945
6946 PR debug/48163
6947 * var-tracking.c (prepare_call_arguments): If CALL target
6948 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
6949 pc instead of looking it up using cselib_lookup and use
6950 Pmode for it if x has VOIDmode.
6951 * dwarf2out.c (gen_subprogram_die): If also both first and
6952 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
6953
6954 PR debug/48163
6955 * function.c (assign_parms): For data.passed_pointer parms
6956 use MEM of data.entry_parm instead of data.entry_parm itself
6957 as DECL_INCOMING_RTL.
6958 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
6959 also when passed and declared mode is the same, DECL_RTL
6960 is a MEM with pseudo as address and DECL_INCOMING_RTL is
6961 a MEM too.
6962
6963 2011-03-16 Jeff Law <law@redhat.com>
6964
6965 PR rtl-optimization/37273
6966 * ira-costs.c (scan_one_insn): Detect constants living in memory and
6967 handle them like argument loads from stack slots. Do not double
6968 count memory for memory constants and argument loads from stack slots.
6969
6970 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
6971
6972 PR debug/48160
6973 * var-tracking.c (prepare_call_arguments): Check SUBREG.
6974
6975 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
6976
6977 PR target/48171
6978 * config/i386/i386.opt: Add Save to -mavx and -mfma.
6979
6980 2011-03-17 Jakub Jelinek <jakub@redhat.com>
6981
6982 PR bootstrap/48153
6983 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
6984 if dwarf_strict.
6985 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
6986 Clear call_arg_locations and call_arg_loc_last always.
6987
6988 PR middle-end/48152
6989 * var-tracking.c (prepare_call_arguments): If argument needs to be
6990 passed by reference, adjust argtype and mode.
6991
6992 2011-03-17 Richard Guenther <rguenther@suse.de>
6993
6994 PR middle-end/48134
6995 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
6996 a value make sure to fold the statement.
6997
6998 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
6999
7000 PR target/43872
7001 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
7002 return condition with !cfun->calls_alloca.
7003
7004 2011-03-17 Richard Guenther <rguenther@suse.de>
7005
7006 PR bootstrap/48148
7007 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7008 origin for decls in other ltrans units.
7009 (input_varpool_node): Likewise.
7010
7011 2011-03-17 Richard Guenther <rguenther@suse.de>
7012
7013 PR middle-end/48165
7014 * tree-object-size.c (compute_object_offset): Properly return
7015 the offset operand of MEM_REFs as sizetype.
7016
7017 2011-03-17 Jakub Jelinek <jakub@redhat.com>
7018
7019 PR rtl-optimization/48141
7020 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
7021 * dse.c: Include params.h.
7022 (active_local_stores_len): New variable.
7023 (add_wild_read, dse_step1): Clear it when setting active_local_stores
7024 to NULL.
7025 (record_store, check_mem_read_rtx): Decrease it when removing
7026 from the chain.
7027 (scan_insn): Likewise. Increase it when adding to chain, if it
7028 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
7029 set active_local_stores to NULL before the addition.
7030 * Makefile.in (dse.o): Depend on $(PARAMS_H).
7031
7032 PR rtl-optimization/48141
7033 * dse.c (record_store): If no positions are needed in an insn
7034 that cannot be deleted, at least unchain it from active_local_stores.
7035
7036 2011-03-16 Dodji Seketeli <dodji@redhat.com>
7037
7038 PR debug/47510
7039 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
7040 (lookup_type_die_strip_naming_typedef): ... here.
7041 (get_context_die): Use it.
7042 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
7043 the anonymous struct named by the naming typedef.
7044
7045 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
7046
7047 PR target/48154
7048 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
7049 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7050
7051 2011-03-16 Jeff Law <law@redhat.com>
7052
7053 * tree-vrp.c (identify_jump_threads): Slightly simplify type
7054 check for operands of conditional. Allow type to be a pointer.
7055
7056 2011-03-16 Richard Guenther <rguenther@suse.de>
7057
7058 PR tree-optimization/48149
7059 * fold-const.c (fold_binary_loc): Fold
7060 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
7061
7062 2011-03-16 Richard Guenther <rguenther@suse.de>
7063
7064 PR tree-optimization/26134
7065 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
7066 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
7067 (non_rewritable_mem_ref_base): Handle complex type component
7068 accesses, constrain offsets for vector and complex extracts
7069 more properly.
7070
7071 2011-03-16 Richard Guenther <rguenther@suse.de>
7072
7073 PR tree-optimization/48146
7074 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
7075 operands avoiding the need for renaming.
7076
7077 2011-03-16 Richard Guenther <rguenther@suse.de>
7078
7079 * gimple-fold.c (maybe_fold_reference): Open-code relevant
7080 constant folding. Move MEM_REF canonicalization first.
7081 Rely on fold_const_aggregate_ref for initializer folding.
7082 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
7083
7084 2011-03-16 Jakub Jelinek <jakub@redhat.com>
7085
7086 PR middle-end/48136
7087 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7088 arg0/arg1 or their arguments are always fold converted to matching
7089 types.
7090
7091 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
7092 to nargs.
7093
7094 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7095
7096 PR lto/46944
7097 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
7098 Handle in-tree gold.
7099 (ld_vers): Extract binutils version for gold.
7100 (gcc_cv_ld_hidden): Handle gold here.
7101 (gcc_cv_lto_plugin): Determine level of linker plugin support.
7102 * configure: Regenerate.
7103 * config.in: Regenerate.
7104 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
7105 -fuse-linker-plugin otherwise.
7106 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
7107 (LINK_COMMAND_SPEC): Use it.
7108 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
7109
7110 2011-03-16 Jakub Jelinek <jakub@redhat.com>
7111
7112 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
7113 * calls.c: Remove debug.h include.
7114 (emit_call_1): Don't call virtual_call_token debug hook.
7115 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
7116 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
7117 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
7118 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
7119 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
7120 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
7121 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
7122 dwarf2out_virtual_call): Remove.
7123 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
7124 copy_call_info and virtual_call hooks.
7125 (dwarf2out_init): Don't initialize vcall_insn_table,
7126 debug_dcall_section and debug_vcall_section.
7127 (prune_unused_types): Don't mark nodes from dcall_table.
7128 (dwarf2out_finish): Don't output dcall or vcall tables.
7129 * final.c (final_scan_insn): Don't call direct_call or
7130 virtual_call debug hooks.
7131 * debug.h (struct gcc_debug_hooks): Remove direct_call,
7132 virtual_call_token, copy_call_info and virtual_call hooks.
7133 (debug_nothing_uid): Remove prototype.
7134 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
7135 copy_call_info and virtual_call hooks.
7136 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7137 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
7138 * debug.c (do_nothing_debug_hooks): Likewise.
7139 (debug_nothing_uid): Remove.
7140 * doc/invoke.texi (-fenable-icf-debug): Remove.
7141 * common.opt (-fenable-icf-debug): Likewise.
7142
7143 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
7144 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
7145 call's MEM. Handle functions returning aggregate through a hidden
7146 first pointer. For virtual calls add clobbered pc to call arguments
7147 chain.
7148 * dwarf2out.c (gen_subprogram_die): Emit
7149 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
7150 can't be emitted.
7151
7152 PR debug/45882
7153 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
7154 * rtl.h (ENTRY_VALUE_EXP): Define.
7155 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
7156 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
7157 * print-rtl.c (print_rtx): Likewise.
7158 * gengtype.c (adjust_field_rtx_def): Likewise.
7159 * var-tracking.c (vt_add_function_parameter): Adjust
7160 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
7161 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
7162 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
7163 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
7164 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
7165
7166 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
7167 Call var_location debug hook even on CALL_INSNs.
7168 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
7169 * rtl.def (ENTRY_VALUE): New.
7170 * dwarf2out.c: Include cfglayout.h.
7171 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7172 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
7173 (struct call_arg_loc_node): New type.
7174 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
7175 tail_call_site_count): New variables.
7176 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
7177 DW_TAG_GNU_call_site_parameter.
7178 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
7179 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
7180 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
7181 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
7182 and DW_AT_GNU_all_source_call_sites.
7183 (mem_loc_descriptor): Handle ENTRY_VALUE.
7184 (add_src_coords_attributes): Don't add enything if
7185 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
7186 (dwarf2out_abstract_function): Save and clear call_arg_location,
7187 call_site_count and tail_call_site_count around dwarf2out_decl call.
7188 (gen_call_site_die): New function.
7189 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
7190 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
7191 (dwarf2out_function_decl): Clear call_arg_locations,
7192 call_arg_loc_last, set call_site_count and tail_call_site_count
7193 to -1 and free block_map.
7194 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
7195 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
7196 followed by any real instructions.
7197 (dwarf2out_begin_function): Set call_site_count and
7198 tail_call_site_count to 0.
7199 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
7200 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
7201 attempt to force a DIE for it and worst case remove the attribute.
7202 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
7203 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
7204 the decl itself.
7205 * var-tracking.c: Include tm_p.h.
7206 (vt_stack_adjustments): For calls call note_register_arguments.
7207 (argument_reg_set): New variable.
7208 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
7209 ensure the VALUE is resolved.
7210 (call_arguments): New variable.
7211 (prepare_call_arguments): New function.
7212 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
7213 (struct expand_loc_callback_data): Add ignore_cur_loc field.
7214 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
7215 always use the best expression.
7216 (vt_expand_loc): Add ignore_cur_loc argument.
7217 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
7218 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
7219 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
7220 note for all calls.
7221 (vt_add_function_parameter): Use cselib_lookup_from_insn.
7222 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
7223 argument. Don't call cselib_preserve_only_values and
7224 cselib_reset_table.
7225 (note_register_arguments): New function.
7226 (vt_initialize): Compute argument_reg_set. Call
7227 vt_add_function_parameters before processing basic blocks instead of
7228 afterwards. For calls call prepare_call_arguments before calling
7229 cselib_process_insn.
7230 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
7231 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
7232 (var-tracking.o): Depend on $(TM_P_H).
7233 * cfglayout.h (insn_scope): New prototype.
7234 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
7235 * cfglayout.c (insn_scope): No longer static.
7236 * insn-notes.def (CALL_ARG_LOCATION): New.
7237 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
7238 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
7239 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
7240 nothing for DECL_EXTERNAL BLOCK_VARS.
7241
7242 2011-03-16 Alan Modra <amodra@gmail.com>
7243
7244 PR target/45844
7245 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7246 create invalid offset address for vsx splat insn.
7247 * config/rs6000/predicates.md (splat_input_operand): New.
7248 * config/rs6000/vsx.md (vsx_splat_*): Use it.
7249
7250 2011-03-15 Xinliang David Li <davidxl@google.com>
7251
7252 PR c/47837
7253 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
7254 (normalize_preds): New function.
7255 (is_use_properly_guarded): Normalize def predicates.
7256
7257 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7258
7259 PR target/46788
7260 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
7261 in the output template.
7262
7263 2011-03-15 Richard Guenther <rguenther@suse.de>
7264
7265 PR middle-end/47650
7266 * tree-pretty-print.c (dump_function_declaration): Properly
7267 dump unprototyped and varargs function types.
7268
7269 2011-03-15 Richard Guenther <rguenther@suse.de>
7270
7271 PR tree-optimization/13954
7272 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
7273 and friends.
7274
7275 2011-03-15 Richard Guenther <rguenther@suse.de>
7276
7277 PR tree-optimization/48037
7278 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
7279 selects into BIT_FIELD_REFs.
7280 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
7281 vector select.
7282
7283 2011-03-15 Jakub Jelinek <jakub@redhat.com>
7284
7285 PR tree-optimization/48129
7286 * builtins.c (fold_builtin_snprintf): Convert to type of
7287 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
7288 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
7289
7290 2011-03-15 Richard Guenther <rguenther@suse.de>
7291
7292 PR tree-optimization/41490
7293 * tree-ssa-dce.c (propagate_necessity): Handle returns without
7294 value but with VUSE.
7295 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
7296 return statements.
7297 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
7298 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
7299 * tree-tailcall.c (find_tail_calls): Ignore returns.
7300
7301 2011-03-15 Richard Guenther <rguenther@suse.de>
7302
7303 PR middle-end/48031
7304 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
7305 or variable-indexed array accesses when in gimple form.
7306
7307 2011-03-15 Richard Guenther <rguenther@suse.de>
7308
7309 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
7310
7311 2011-03-15 Alan Modra <amodra@gmail.com>
7312
7313 PR target/48032
7314 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
7315 presume symbol_refs without a symbol_ref_decl are suitably
7316 aligned, nor other trees we may see here. Handle anchor symbols.
7317 (legitimate_constant_pool_address_p): Comment. Add mode param.
7318 Check cmodel=medium addresses. Adjust all calls.
7319 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
7320 creating cmodel=medium optimized access to locals.
7321 * config/rs6000/constraints.md (R): Pass QImode to
7322 legitimate_constant_pool_address_p.
7323 * config/rs6000/predicates.md (input_operand): Pass mode to
7324 legitimate_constant_pool_address_p.
7325 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
7326 Update prototype.
7327
7328 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
7329
7330 PR target/48053
7331 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
7332 64-bit constants being loaded into registers other than GPRs such
7333 as loading 0 into a VSX register.
7334
7335 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7336
7337 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
7338
7339 2011-03-14 Jakub Jelinek <jakub@redhat.com>
7340
7341 PR middle-end/47917
7342 * builtins.c (fold_builtin_snprintf): New function.
7343 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
7344 (fold_builtin_4): Likewise.
7345
7346 PR middle-end/38878
7347 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
7348 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
7349 and C - X == X also strip nops from +/-/p+ operand.
7350 When optimizing -X == C, fold C to arg0's type.
7351
7352 PR debug/47946
7353 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
7354 emit it as add_AT_int instead of add_AT_unsigned.
7355
7356 2011-03-14 Tom Tromey <tromey@redhat.com>
7357
7358 * unwind-dw2.c: Include sys/sdt.h if it exists.
7359 (_Unwind_DebugHook): Use STAP_PROBE2.
7360 * config.in, configure: Rebuild.
7361 * configure.ac: Check for sys/sdt.h.
7362
7363 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
7364
7365 * config/i386/i386.md (ROUND_FLOOR): New constant.
7366 (ROUND_CEIL): Ditto.
7367 (ROUND_TRUNC): Ditto.
7368 (ROUND_MXCSR): Ditto.
7369 (ROUND_NO_EXC): Ditto.
7370 (rint<mode>2): Use new defines instead of numerical constants.
7371 (floor<mode>2): Ditto.
7372 (ceil<mode>2): Ditto.
7373 (btrunc<mode>2): Ditto.
7374 * config/i386/i386-builtin-types.def: Define ROUND function type
7375 aliases.
7376 * config/i386/i386.c (enum ix86_builtins): Add
7377 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
7378 (struct builtin_description): Add
7379 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
7380 (ix86_expand_sse_round): New static function.
7381 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
7382 function types.
7383 (ix86_builtin_vectorized_function): Handle
7384 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7385
7386 2011-03-14 Tom Tromey <tromey@redhat.com>
7387
7388 * c-parser.c (c_parser_asm_string_literal): Clear
7389 warn_overlength_strings.
7390
7391 2011-03-14 Tom Tromey <tromey@redhat.com>
7392
7393 * c-parser.c (disable_extension_diagnostics): Save
7394 warn_overlength_strings.
7395 (restore_extension_diagnostics): Restore warn_overlength_strings.
7396
7397 2011-03-14 Jakub Jelinek <jakub@redhat.com>
7398
7399 * BASE-VER: Change to 4.7.0.
7400
7401 2011-03-14 Richard Guenther <rguenther@suse.de>
7402
7403 PR middle-end/48098
7404 * tree.c (build_vector_from_val): Adjust assert to requirements
7405 and reality.
7406
7407 2011-03-14 Jakub Jelinek <jakub@redhat.com>
7408
7409 PR bootstrap/48102
7410 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
7411
7412 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
7413
7414 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
7415 terms of target_flags_explicit. Adjust copyright year.
7416
7417 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
7418 * config/rs6000/t-freebsd: New file. Add override for
7419 LIB2FUNCS_EXTRA.
7420
7421 2011-03-13 Chris Demetriou <cgd@google.com>
7422
7423 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
7424 (-fno-diagnostics-show-option): this, to reflect current default.
7425 (-Werror=): Update text about -fno-diagnostics-show-option.
7426
7427 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
7428
7429 PR target/48053
7430 * config/rs6000/predicates.md (easy_vector_constant_add_self,
7431 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
7432 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
7433 mode is not V2DImode or V2DFmode.
7434 (vspltis_constant): Do not handle V2DImode and V2DFmode.
7435 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
7436 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
7437 registers to 0.
7438 (movdi_internal64): Likewise.
7439
7440 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
7441
7442 PR tree-optimization/47127
7443 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
7444 parameter.
7445 (set_cloog_options): Same.
7446 (scop_to_clast): Same.
7447 (print_clast_stmt): Do not call cloog_state_malloc and
7448 cloog_state_free.
7449 (print_generated_program): Same.
7450 (gloog): Same.
7451 * graphite-clast-to-gimple.h (cloog_state): Declared.
7452 (scop_to_clast): Adjust declaration.
7453 * graphite.c (cloog_state): Defined here.
7454 (graphite_initialize): Call cloog_state_malloc.
7455 (graphite_finalize): Call cloog_state_free.
7456
7457 2011-03-11 Jason Merrill <jason@redhat.com>
7458
7459 * attribs.c (lookup_attribute_spec): Take const_tree.
7460 * tree.h: Adjust.
7461
7462 2011-03-11 Joseph Myers <joseph@codesourcery.com>
7463
7464 * config/sparc/sparc.c (sparc_option_override): Use
7465 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
7466
7467 2011-03-11 Richard Guenther <rguenther@suse.de>
7468
7469 PR tree-optimization/48067
7470 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
7471 multiplication result will be only used once on the target
7472 stmt.
7473
7474 2011-03-11 Richard Guenther <rguenther@suse.de>
7475
7476 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
7477
7478 2011-03-11 Richard Guenther <rguenther@suse.de>
7479
7480 PR lto/48073
7481 * tree.c (find_decls_types_r): Do not walk types only reachable
7482 from IDENTIFIER_NODEs.
7483
7484 2011-03-11 Jakub Jelinek <jakub@redhat.com>
7485
7486 PR middle-end/48044
7487 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
7488 all vnode->force_output nodes as needed.
7489
7490 2011-03-11 Jason Merrill <jason@redhat.com>
7491
7492 PR c++/48069
7493 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
7494 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
7495
7496 2011-03-11 Martin Jambor <mjambor@suse.cz>
7497
7498 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
7499 cgraph_node.
7500
7501 2011-03-11 Jakub Jelinek <jakub@redhat.com>
7502
7503 PR tree-optimization/48063
7504 * ipa-inline.c (cgraph_decide_inlining): Don't try to
7505 inline functions called once if !tree_can_inline_p (node->callers).
7506
7507 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
7508
7509 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
7510 extra_objs.
7511 * config/score/score3.c: Delete.
7512 * config/score/score3.h: Delete.
7513 * config/score/mul-div.S: Delete.
7514 * config/score/sfp-machine.h: Add new file.
7515 * config/score/constraints.md: Add new file.
7516 * config/score/t-score-softfp: Add new file.
7517 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
7518 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
7519 (score7_extra_constraint): Delete.
7520 (score7_option_override): Remove unused code.
7521 * config/score/score.c: Remove score3 and score5 define and code.
7522 * config/score/score.h: Remove score3 and score5 define and code.
7523 * config/score/score.md: Remove score3 template and unusual insn.
7524 * config/score/score.opt: Remove score3 and score5 options.
7525
7526 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7527
7528 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
7529 when _HPUX_SOURCE is defined.
7530 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
7531
7532 2011-03-10 Jason Merrill <jason@redhat.com>
7533
7534 PR c++/48029
7535 * stor-layout.c (layout_type): Don't set structural equality
7536 on arrays of incomplete type.
7537 * tree.c (type_hash_eq): Handle comparing them properly.
7538
7539 2011-03-10 Jakub Jelinek <jakub@redhat.com>
7540
7541 PR debug/48043
7542 * config/s390/s390.c (s390_delegitimize_address): Make sure the
7543 result mode matches original rtl mode.
7544
7545 2011-03-10 Nick Clifton <nickc@redhat.com>
7546
7547 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
7548 (andsi3, andsi3_flags): Fix timings for three operand alternative.
7549
7550 2011-03-09 Jakub Jelinek <jakub@redhat.com>
7551
7552 PR rtl-optimization/47866
7553 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
7554 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
7555 if target wasn't scalar.
7556 * function.c (assign_stack_temp_for_type): Assert that neither
7557 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
7558 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
7559 macro.
7560 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
7561
7562 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7563
7564 * config/s390/s390-protos.h (s390_label_align): New prototype.
7565 * config/s390/s390.c (s390_label_align): New function.
7566 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
7567
7568 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
7569
7570 PR target/47755
7571 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
7572 V2DI/V2DF constants. Only all 0's or all 1's are easy.
7573 (output_vec_const_move): Ditto.
7574
7575 2011-03-08 Anatoly Sokolov <aesok@post.ru>
7576
7577 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
7578 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
7579 * config/mips/mips.c (mips_preferred_reload_class): Make static.
7580 Change 'rclass' argument and result type to reg_class_t.
7581 (TARGET_PREFERRED_RELOAD_CLASS): Define.
7582
7583 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
7584
7585 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7586 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
7587 (TARGET_MEMORY_MOVE_COST): Define.
7588 (avr_register_move_cost, avr_memory_move_cost): New Functions.
7589
7590 2011-03-08 Jakub Jelinek <jakub@redhat.com>
7591
7592 PR debug/47881
7593 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
7594 removed anything.
7595
7596 PR tree-optimization/48022
7597 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
7598 for EQ/NE_EXPR.
7599
7600 2011-03-07 Jakub Jelinek <jakub@redhat.com>
7601
7602 PR debug/47991
7603 * var-tracking.c (find_use_val): Return NULL for
7604 cui->sets && cui->store_p BLKmode MEMs.
7605
7606 2011-03-07 Anatoly Sokolov <aesok@post.ru>
7607
7608 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
7609 Remove.
7610 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
7611 xstormy16_print_operand_address): Remove.
7612 * config/stormy16/stormy16.c (xstormy16_print_operand,
7613 xstormy16_print_operand_address): Make static.
7614 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7615
7616 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
7617
7618 PR target/47862
7619 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
7620 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
7621 before definition.
7622
7623 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
7624
7625 PR bootstrap/48000
7626 * cfgloopmanip.c (fix_bb_placements): Return immediately
7627 if FROM is BASE_LOOP's header.
7628
7629 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
7630
7631 * gimplify.c (gimplify_function_tree): Fix building calls
7632 to __builtin_return_address.
7633
7634 2011-03-07 Alan Modra <amodra@gmail.com>
7635
7636 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
7637 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
7638 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
7639 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
7640 return_mode args.
7641 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
7642 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
7643 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
7644 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
7645 * config/rs6000/rs6000.c
7646 (rs6000_elf_end_indicate_exec_stack): Rename to..
7647 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
7648 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
7649 (rs6000_file_start): ..here.
7650 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
7651 file scope variables.
7652 (call_ABI_of_interest): New function.
7653 (init_cumulative_args): Set above vars when function return value
7654 is a float, vector, or small struct.
7655 (rs6000_function_arg_advance_1): Likewise for function args.
7656 (rs6000_va_start): Set rs6000_passes_float if variable arg function
7657 references float args.
7658
7659 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
7660
7661 * doc/cfg.texi: Remove "See" before @ref.
7662 * doc/invoke.texi: Likewise.
7663
7664 2011-03-05 Jason Merrill <jason@redhat.com>
7665
7666 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
7667
7668 2011-03-05 Anthony Green <green@moxielogic.com>
7669
7670 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
7671
7672 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
7673
7674 PR rtl-optimization/47899
7675 * cfgloopmanip.c (fix_bb_placements): Fix first argument
7676 to flow_loop_nested_p when moving the loop upward.
7677
7678 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
7679
7680 PR target/47719
7681 * arm.md (movhi_insn_arch4): Accept any immediate constant.
7682
7683 2011-03-05 Jakub Jelinek <jakub@redhat.com>
7684
7685 PR tree-optimization/47967
7686 * ipa-cp.c (build_const_val): Return NULL instead of creating
7687 VIEW_CONVERT_EXPR for mismatching sizes.
7688 (ipcp_create_replace_map): Return NULL if build_const_val failed.
7689 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
7690 give up on versioning.
7691
7692 2011-03-05 Alan Modra <amodra@gmail.com>
7693
7694 PR target/47986
7695 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7696 full cmodel medium/large lo_sum + high addresses.
7697
7698 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7699
7700 * config/s390/s390.c (s390_decompose_address): Reject non-literal
7701 pool references in UNSPEC_LTREL_OFFSET.
7702
7703 2011-03-04 Jan Hubicka <jh@suse.cz>
7704
7705 PR lto/47497
7706 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
7707 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
7708 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
7709 Add node pointers.
7710 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
7711 cgraph_add_thunk): Add node pointers.
7712 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
7713 associated to right node.
7714 (input_node): Update use of cgraph_same_body_alias
7715 and cgraph_add_thunk.
7716
7717 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
7718
7719 * config/i386/i386.opt (mprefer-avx128): New flag.
7720 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
7721 modes when the flag -mprefer-avx128 is on.
7722
7723 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
7724
7725 * dwarf2out.c (compare_loc_operands): Fix address handling.
7726
7727 2011-03-04 Alan Modra <amodra@gmail.com>
7728
7729 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
7730
7731 2011-03-04 Richard Guenther <rguenther@suse.de>
7732
7733 PR middle-end/47968
7734 * expmed.c (extract_bit_field_1): Prefer vector modes that
7735 vec_extract patterns can handle.
7736
7737 2011-03-04 Richard Guenther <rguenther@suse.de>
7738
7739 PR middle-end/47975
7740 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
7741
7742 2011-03-04 Richard Henderson <rth@redhat.com>
7743
7744 * explow.c (emit_stack_save): Remove 'after' parameter.
7745 (emit_stack_restore): Likewise.
7746 * expr.h: Update to match.
7747 * builtins.c, calls.c, stmt.c: Likewise.
7748 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
7749 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
7750 * function.c (expand_function_end): Insert the emit_stack_save
7751 sequence before parm_birth_insn instead of after.
7752
7753 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
7754
7755 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
7756 (ssse3_pmaddubsw128): Ditto.
7757 (ssse3_pmaddubsw): Ditto.
7758
7759 2011-03-03 Steve Ellcey <sje@cup.hp.com>
7760
7761 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
7762
7763 2011-03-03 Jakub Jelinek <jakub@redhat.com>
7764
7765 PR c/47963
7766 * gimplify.c (omp_add_variable): Only call omp_notice_variable
7767 on TYPE_SIZE_UNIT if it is a DECL.
7768
7769 PR debug/47283
7770 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
7771 first operand is not is_gimple_mem_ref_addr, try to fold it.
7772 If the operand still isn't is_gimple_mem_ref_addr, clear
7773 MEM_EXPR on op0.
7774
7775 2011-03-03 Richard Guenther <rguenther@suse.de>
7776
7777 PR middle-end/47283
7778 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
7779 match comment.
7780 (refs_may_alias_p_1): For release branches return true if
7781 we are confused by our input.
7782
7783 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7784
7785 * config/s390/s390.c (s390_function_value): Rename to ...
7786 (s390_function_and_libcall_value): ... this.
7787 (s390_function_value): New function.
7788 (s390_libcall_value): New function.
7789 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
7790 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
7791 target macro definitions.
7792 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
7793
7794 2011-03-02 Joseph Myers <joseph@codesourcery.com>
7795
7796 * config/i386/freebsd64.h (CC1_SPEC): Define.
7797 * config/i386/linux64.h (CC1_SPEC): Define.
7798 * config/i386/x86-64.h (CC1_SPEC): Don't define.
7799
7800 2011-03-02 Anatoly Sokolov <aesok@post.ru>
7801
7802 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7803 Remove.
7804 * config/stormy16/stormy16.c: Include reload.h.
7805 (xstormy16_memory_move_cost): New function.
7806 (TARGET_MEMORY_MOVE_COST): Define.
7807
7808 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
7809
7810 PR rtl-optimization/47925
7811 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
7812 with side effects. Remove the more-specific check for volatile asms.
7813
7814 2011-03-02 Alan Modra <amodra@gmail.com>
7815
7816 PR target/47935
7817 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
7818 toc relative addresses for valid offsets.
7819
7820 2011-03-01 Richard Guenther <rguenther@suse.de>
7821
7822 PR tree-optimization/47890
7823 * tree-vect-loop.c (get_initial_def_for_induction): Set
7824 related stmt properly.
7825
7826 2011-03-01 Richard Guenther <rguenther@suse.de>
7827
7828 PR lto/47924
7829 * lto-streamer.c (lto_record_common_node): Also register
7830 the canonical type.
7831
7832 2011-03-01 Richard Guenther <rguenther@suse.de>
7833
7834 PR lto/46911
7835 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7836 Do not stream DECL_ABSTRACT_ORIGIN.
7837 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7838 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7839 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7840 Do not stream DECL_ABSTRACT_ORIGIN.
7841 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7842 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7843
7844 2011-02-28 Anatoly Sokolov <aesok@post.ru>
7845
7846 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
7847 FUNCTION_VALUE_REGNO_P): Remove.
7848 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
7849 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
7850 Add 'outgoing' argument.
7851 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
7852 function.
7853 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7854 TARGET_FUNCTION_VALUE_REGNO_P): Define.
7855
7856 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
7857
7858 PR debug/28047
7859 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
7860 (lookup_filename): Likewise.
7861 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
7862
7863 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
7864 Jakub Jelinek <jakub@redhat.com>
7865
7866 PR middle-end/47893
7867 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
7868 (assign_stack_local_1): Change last argument type to int.
7869 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
7870 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
7871 don't record padding space into frame_space_list nor use those areas.
7872 (assign_stack_local): Adjust caller.
7873 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
7874 of assign_stack_local, pass 0 as last argument.
7875 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
7876 callers.
7877
7878 2011-02-28 Jakub Jelinek <jakub@redhat.com>
7879
7880 PR debug/47283
7881 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
7882 Use target address_mode and pointer_mode hooks instead of hardcoded
7883 Pmode and ptr_mode. Handle some simple cases of extending if
7884 POINTERS_EXTEND_UNSIGNED < 0.
7885 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
7886 Call convert_debug_memory_address.
7887 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
7888 convert_debug_memory_address.
7889
7890 PR middle-end/46790
7891 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
7892 * configure: Regenerated.
7893 * config.in: Regenerated.
7894 * varasm.c (default_function_section): Return NULL
7895 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
7896
7897 2011-02-28 Martin Jambor <mjambor@suse.cz>
7898
7899 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
7900 the description to match the printed values.
7901
7902 2011-02-28 Richard Guenther <rguenther@suse.de>
7903
7904 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
7905 of the copied scope tree.
7906
7907 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7908
7909 * doc/extend.texi (Function Attributes): Avoid deeply (and
7910 wrongly) nested tables.
7911
7912 2011-02-27 Jakub Jelinek <jakub@redhat.com>
7913
7914 PR middle-end/47903
7915 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
7916 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
7917 r isn't op0 nor op1.
7918
7919 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
7920
7921 * config/avr/avr.md: Remove magic comment for emacs.
7922
7923 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
7924
7925 PR target/45261
7926 * config/avr/avr.c (avr_option_override): Use error on bad options.
7927 (avr_help): New function.
7928 (TARGET_HELP): Define.
7929
7930 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
7931
7932 PR target/42240
7933 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
7934 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
7935
7936 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
7937
7938 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
7939 (ARM Options): Ditto.
7940 (i386 and x86-64 Options): Ditto.
7941 (RX Options): Ditto.
7942 (SPARC Options): Ditto.
7943
7944 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
7945
7946 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
7947 FreeBSD 6 and later. Generally use cpu generic.
7948
7949 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
7950
7951 * doc/cpp.texi: Update copyright years.
7952
7953 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
7954
7955 PR target/46898
7956 * config/lm32/lm32.md (ashrsi3): Added needed variable.
7957
7958 2011-02-25 Jon Beniston <jon@beniston.com>
7959
7960 PR target/46898
7961 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
7962 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
7963 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
7964 (lm32_block_move_inline): Add type cast to remove warning.
7965 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
7966 (gen_int_relational): Move declarations to start of function.
7967
7968 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
7969
7970 PR tree-optimization/45470
7971 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
7972 can throw internally only.
7973 * tree-vect-stmts.c (vectorizable_call): Likewise.
7974
7975 2011-02-24 Anatoly Sokolov <aesok@post.ru>
7976
7977 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
7978 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7979 * config/stormy16/stormy16-protos.h
7980 (xstormy16_preferred_reload_class): Remove.
7981 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
7982 static. Change 'rclass' argument and return type to reg_class_t.
7983 (TARGET_PREFERRED_RELOAD_CLASS,
7984 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7985
7986 2011-02-24 Richard Guenther <rguenther@suse.de>
7987
7988 * lto-streamer-in.c (input_bb): Do not find referenced vars
7989 in debug statements.
7990
7991 2011-02-23 Jason Merrill <jason@redhat.com>
7992
7993 * common.opt (fabi-version): Document v5 and v6.
7994
7995 2011-02-23 Richard Guenther <rguenther@suse.de>
7996
7997 PR tree-optimization/47849
7998 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
7999
8000 2011-02-23 Jie Zhang <jie@codesourcery.com>
8001
8002 * opts-common.c (decode_cmdline_option): Print empty string
8003 argument as "" in decoded->orig_option_with_args_text.
8004 * gcc.c (execute): Print empty string argument as ""
8005 in the verbose output.
8006 (do_spec_1): Keep empty string argument.
8007
8008 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
8009
8010 * config.gcc: Declare score-* and crx-* obsolete.
8011
8012 2011-02-23 Jie Zhang <jie@codesourcery.com>
8013
8014 PR rtl-optimization/47763
8015 * web.c (web_main): Ignore naked clobber when replacing register.
8016
8017 2011-02-22 Anatoly Sokolov <aesok@post.ru>
8018
8019 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
8020 Remove.
8021
8022 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
8023
8024 PR doc/47848
8025 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
8026
8027 2011-02-22 Mike Stump <mikestump@comcast.net>
8028
8029 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
8030 assembler.
8031 * configure: Regenerate.
8032
8033 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
8034
8035 PR rtl-optimization/46002
8036 * ira-color.c (update_copy_costs): Change class intersection
8037 test to reg_class_contents[] test of 'hard_regno'.
8038
8039 2011-02-21 Joseph Myers <joseph@codesourcery.com>
8040
8041 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
8042 than Driver option.
8043 * config/hpux11.opt (mt): Likewise.
8044 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
8045 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
8046 * config/vax/elf.opt (mno-asm-pic): Likewise.
8047 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
8048
8049 2011-02-21 Mike Stump <mikestump@comcast.net>
8050
8051 PR target/47822
8052 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
8053 tree so we can get save the type.
8054 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
8055 for CFString instead of trying to use past the end of the builtins.
8056 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
8057 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
8058 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
8059 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
8060 Rename to darwin_builtin_cfstring.
8061 (darwin_init_cfstring_builtins): Return the built type.
8062
8063 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
8064
8065 PR target/47840
8066 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
8067 (_mm256_insert_epi64): Use _mm_insert_epi64.
8068
8069 2011-02-21 Anatoly Sokolov <aesok@post.ru>
8070
8071 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8072 * config/stormy16/stormy16-protos.h
8073 (xstormy16_mode_dependent_address_p): Remove.
8074 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
8075 Make static. Change return type to bool. Change argument type to
8076 const_rtx. Remove dead code.
8077 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8078
8079 2011-02-21 Richard Guenther <rguenther@suse.de>
8080
8081 PR lto/47820
8082 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8083 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8084 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
8085 TUs context.
8086 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8087 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8088
8089 2011-02-20 Richard Guenther <rguenther@suse.de>
8090
8091 PR lto/47822
8092 * tree.c (free_lang_data_in_decl): Clean builtins from
8093 the TU decl BLOCK_VARS.
8094
8095 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
8096
8097 PR debug/47620
8098 PR debug/47630
8099 * haifa-sched.c (fix_tick_ready): Skip tick computation
8100 for debug insns.
8101
8102 2011-02-19 Richard Guenther <rguenther@suse.de>
8103
8104 PR lto/47647
8105 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8106 Remove lazy BLOCK_VARS streaming.
8107 (lto_input_ts_block_tree_pointers): Likewise.
8108 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8109
8110 2011-02-19 Joseph Myers <joseph@codesourcery.com>
8111
8112 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
8113
8114 2011-02-19 Joseph Myers <joseph@codesourcery.com>
8115
8116 * config/i386/biarch32.h, config/i386/mach.h,
8117 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
8118
8119 2011-02-19 Jakub Jelinek <jakub@redhat.com>
8120
8121 PR target/47800
8122 * config/i386/i386.md (peephole2 for shift and plus): Use
8123 operands[1] original mode in the first insn.
8124
8125 2011-02-18 Mike Stump <mikestump@comcast.net>
8126
8127 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8128
8129 2011-02-18 Jan Hubicka <jh@suse.cz>
8130
8131 PR middle-end/47788
8132 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
8133 to zero when the function is not inlinable at all.
8134
8135 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8136
8137 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
8138 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8139 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
8140 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
8141 * config/pa/t-pa64: Likewise.
8142 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
8143
8144 2011-02-18 Jakub Jelinek <jakub@redhat.com>
8145
8146 PR driver/47787
8147 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
8148
8149 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8150
8151 PR target/47792
8152 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
8153
8154 2011-02-18 Anatoly Sokolov <aesok@post.ru>
8155
8156 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
8157 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
8158 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
8159 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
8160 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
8161 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
8162 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
8163 m32r_load_postinc_p, m32r_store_preinc_predec_p,
8164 m32r_legitimate_address_p): New functions.
8165 * config/m32r/constraints.md (constraint "S"): Don't use
8166 STORE_PREINC_PREDEC_P.
8167 (constraint "U"): Don't use LOAD_POSTINC_P.
8168
8169 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
8170
8171 PR rtl-optimization/46178
8172 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
8173 compute ira_hard_regno_cover_class[].
8174
8175 2011-02-18 Richard Guenther <rguenther@suse.de>
8176
8177 PR lto/47798
8178 * lto-streamer.h (lto_global_var_decls): Declare.
8179 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
8180 statics for global var processing.
8181
8182 2011-02-18 Richard Guenther <rguenther@suse.de>
8183
8184 PR tree-optimization/47737
8185 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
8186 edge dominance check.
8187
8188 2011-02-18 Jakub Jelinek <jakub@redhat.com>
8189
8190 PR debug/47780
8191 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
8192 avoid invalid rtx sharing.
8193
8194 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
8195
8196 * doc/cpp.texi (Obsolete Features): Add background on the
8197 origin of assertions.
8198
8199 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
8200
8201 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
8202 objc_abi == 2.
8203 * config/darwin.c (output_objc_section_asm_op): Added support for
8204 ABI v1 and v2.
8205 (is_objc_metadata): New.
8206 (darwin_objc2_section): New.
8207 (darwin_objc1_section): New.
8208 (machopic_select_section): Added support for ABI v1 and v2.
8209 (darwin_emit_objc_zeroed): New.
8210 (darwin_output_aligned_bss): Detect objc metadata and treat it
8211 appropriately.
8212 (darwin_asm_output_aligned_decl_common): Same.
8213 (darwin_asm_output_aligned_decl_local): Same.
8214 * config/darwin-sections.def: Updated for ABI v1 and v2.
8215 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
8216 compiling Objective-C code for the NeXT runtime, default to using
8217 ABI version 0 for 32-bit, and version 2 for 64-bit.
8218
8219 2011-02-17 Joseph Myers <joseph@codesourcery.com>
8220
8221 * common.opt (optimize_fast): New Variable.
8222 * opts.c (default_options_optimization): Use opts->x_optimize_fast
8223 instead of local variable ofast.
8224
8225 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
8226
8227 * doc/invoke.texi (fobjc-abi-version): Documented.
8228 (fobjc-nilcheck): Documented.
8229 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
8230 version.
8231
8232 2011-02-17 Joseph Myers <joseph@codesourcery.com>
8233
8234 PR driver/47390
8235 * common.opt (export-dynamic): New Driver option.
8236 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
8237
8238 2011-02-17 Joseph Myers <joseph@codesourcery.com>
8239
8240 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
8241
8242 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
8243 Jan Hubicka <jh@suse.cz>
8244
8245 PR debug/47106
8246 PR debug/47402
8247 * cfgexpand.c (account_used_vars_for_block): Remove.
8248 (estimated_stack_frame_size): Use referenced vars.
8249 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
8250 that were referenced in the original function. Test src_fn
8251 rather than cfun. Drop redundant get_var_ann.
8252 (setup_one_parameter): Drop redundant get_var_ann.
8253 (declare_return_variable): Likewise.
8254 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
8255 (copy_arguments_for_versioning): Drop redundant get_var_ann.
8256 * ipa-inline.c (compute_inline_parameters): Do not compute
8257 disregard_inline_limits here.
8258 (compute_inlinable_for_current, pass_inlinable): New.
8259 (pass_inline_parameters): Require PROP_referenced_vars.
8260 * cgraphunit.c (cgraph_process_new_functions): Don't run
8261 compute_inline_parameters explicitly unless function is in SSA form.
8262 (cgraph_analyze_function): Set .disregard_inline_limits.
8263 * tree-sra.c (convert_callers): Compute inliner parameters
8264 only for functions already in SSA form.
8265
8266 2011-02-17 Joseph Myers <joseph@codesourcery.com>
8267
8268 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
8269 -mlittle-endian-data.
8270
8271 2011-02-17 Joseph Myers <joseph@codesourcery.com>
8272
8273 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
8274 -mno-fpu, not -fpu and -no-fpu.
8275 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
8276 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
8277
8278 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
8279
8280 PR target/43653
8281 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
8282 input reload with PLUS RTX.
8283
8284 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8285
8286 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
8287 of InverseVar(MDMX).
8288
8289 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8290
8291 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
8292 --m4-340.
8293
8294 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8295
8296 * config/mn10300/mn10300.opt (mno-crt0): New.
8297
8298 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8299
8300 * config/m68k/uclinux.opt (static-libc): New Driver option.
8301
8302 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8303
8304 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
8305
8306 2011-02-16 Joseph Myers <joseph@codesourcery.com>
8307
8308 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
8309 %{muser-extend-enabled}.
8310
8311 2011-02-16 Richard Guenther <rguenther@suse.de>
8312
8313 PR tree-optimization/47738
8314 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
8315 the TODO from tree_predictive_commoning.
8316
8317 2011-02-15 Jeff Law <law@redhat.com>
8318
8319 Revert
8320 2011-01-25 Jeff Law <law@redhat.com>
8321
8322 PR rtl-optimization/37273
8323 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8324 handle them like argument loads from stack slots. Do not double
8325 count memory for memory constants and argument loads from stack slots.
8326
8327 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
8328
8329 PR middle-end/47725
8330 * combine.c (cant_combine_insn_p): Revert the last change.
8331
8332 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
8333
8334 PR target/47755
8335 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
8336 mode for vector constants. Remove code that checks for TImode.
8337
8338 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
8339
8340 PR debug/47106
8341 PR debug/47402
8342 * cgraph.h (compute_inline_parameters): Return void.
8343 * ipa-inline.c (compute_inline_parameters): Adjust.
8344
8345 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
8346
8347 PR debug/47106
8348 PR debug/47402
8349 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
8350 rather than decl.
8351 * cfgexpand.c (estimated_stack_frame_size): Likewise.
8352 * ipa-inline.c (compute_inline_parameters): Adjust.
8353
8354 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
8355
8356 PR debug/47106
8357 PR debug/47402
8358 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
8359 Adjust all users. Pass FN to...
8360 * tree-flow-inline.h (first_referenced_var): ... this. Add
8361 fn argument.
8362 * ipa-struct-reorg.c: Adjust.
8363 * tree-dfa.c: Adjust.
8364 * tree-into-ssa.c: Adjust.
8365 * tree-sra.c: Adjust.
8366 * tree-ssa-alias.c: Adjust.
8367 * tree-ssa-live.c: Adjust.
8368 * tree-ssa.c: Adjust.
8369 * tree-ssanames.c: Adjust.
8370 * tree-tailcall.c: Adjust.
8371
8372 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
8373
8374 PR debug/47106
8375 PR debug/47402
8376 * tree-flow.h (referenced_var_lookup): Add fn parameter.
8377 Adjust all callers.
8378 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
8379 * tree-flow-inline.h: Adjust.
8380 * gimple-pretty-print.c: Adjust.
8381 * tree-into-ssa.c: Adjust.
8382 * tree-ssa.c: Adjust.
8383 * cfgexpand.c: Adjust.
8384
8385 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
8386
8387 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
8388 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8389 (EXTRA_CONSTRAINT): Delete.
8390 * config/iq2000/constraints.md: New file.
8391 * config/iq2000/iq2000.md: Include it.
8392 (define_insn ""): Delete.
8393 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
8394 unsupported constraint letters from patterns.
8395 (call_value, call_value_internal1): Likewise.
8396 (call_value_multiple_internal1): Likewise.
8397
8398 2011-02-15 Nick Clifton <nickc@redhat.com>
8399
8400 * config/mn10300/mn10300.c: Include tm-constrs.h.
8401 (struct liw_data): New data structure describing an LIW candidate
8402 instruction.
8403 (extract_bundle): Use struct liw_data. Allow small integer
8404 operands for some instructions.
8405 (check_liw_constraints): Use struct liw_data. Remove swapped
8406 parameter. Add comments describing the checks. Fix bug when
8407 assigning the source of liw1 to the source of liw2.
8408 (liw_candidate): Delete. Code moved into extract_bundle.
8409 (mn10300_bundle_liw): Use struct liw_data. Check constraints
8410 before swapping.
8411 * config/mn10300/predicates.md (liw_operand): New predicate.
8412 Allows registers and small integer constants.
8413 * config/mn10300/constraints.md (O): New constraint. Accetps
8414 integers in the range -8 to +7 inclusive.
8415 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
8416 for moving a small integer into a register. Give this alternative
8417 LIW attributes.
8418 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
8419 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
8420 using the J,K,L and M constraints,
8421 (liw): Remove SI mode on second operands to allow for HI and QI
8422 mode values.
8423 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
8424 instruction.
8425
8426 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
8427
8428 PR middle-end/47725
8429 * combine.c (cant_combine_insn_p): Check zero/sign extended
8430 hard registers.
8431
8432 2011-02-15 Richard Guenther <rguenther@suse.de>
8433
8434 PR tree-optimization/47743
8435 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
8436 for a non-type-compatible VN lookup bail out.
8437
8438 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
8439
8440 * config/fr30/constraints.md: New file.
8441 * config/fr30/fr30.md: Include it.
8442 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
8443 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8444 (EXTRA_CONSTRAINT): Delete.
8445
8446 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
8447
8448 * config/frv/constraints.md: New file.
8449 * config/frv/predicates.md: Include it.
8450 * config/frv/frv.c (reg_class_from_letter): Delete.
8451 (frv_option_override): Don't initialize it.
8452 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
8453 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
8454 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
8455 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8456 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
8457 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8458 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
8459 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
8460 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
8461 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
8462 (REG_CLASS_FROM_CONSTRAINT): Delete.
8463
8464 2011-02-15 Jakub Jelinek <jakub@redhat.com>
8465
8466 PR middle-end/47581
8467 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
8468 if frame size is 0 in a leaf function.
8469
8470 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8471
8472 PR pch/14940
8473 * config/alpha/host-osf.c: New file.
8474 * config/alpha/x-osf: New file.
8475 * config.host (alpha*-dec-osf*): Use it.
8476
8477 2011-02-14 Anatoly Sokolov <aesok@post.ru>
8478
8479 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8480 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
8481 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
8482 (rx_mode_dependent_address_p): ...this. Make static. Change argument
8483 type to const_rtx.
8484 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8485
8486 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
8487
8488 * config/stormy16/constraints.md: New file.
8489 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
8490 Use satisfies_constraint_Q and satisfies_constraint_R.
8491 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
8492 Delete.
8493 (xstormy16_legitiamte_address_p): Declare.
8494 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
8495 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8496 (EXTRA_CONSTRAINT): Delete.
8497 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
8498 Un-staticize.
8499 (xstormy16_extra_constraint_p): Delete.
8500
8501 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
8502
8503 PR tree-optimization/46494
8504 * loop-unroll.c (split_edge_and_insert): Adjust comment.
8505 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
8506 (pass_rtl_loop_done): Add TODO_verify_flow.
8507 * fwprop.c (pass_rtl_fwprop): Likewise.
8508 * modulo-sched.c (pass_sms): Likewise.
8509 * tree-ssa-dom.c (pass_dominator): Likewise.
8510 * tree-ssa-loop-ch.c (pass_ch): Likewise.
8511 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
8512 (pass_tree_loop_done): Likewise.
8513 * tree-ssa-pre.c (execute_pre): Likewise.
8514 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8515 * tree-ssa-sink.c (pass_sink_code): Likewise.
8516 * tree-vrp.c (pass_vrp): Likewise.
8517
8518 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
8519
8520 * config/v850/constraints.md: New file.
8521 * config/v850/v850.md: Include it.
8522 * config/v850/predicates.md (reg_or_0_operand): Use
8523 satisfies_constraint_G.
8524 (special_symbolref_operand): Use satisfies_constraint_K.
8525 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
8526 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8527 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
8528 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8529 (EXTRA_CONSTRAINT): Delete.
8530 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
8531 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
8532 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
8533
8534 2011-02-14 Anatoly Sokolov <aesok@post.ru>
8535
8536 PR target/47696
8537 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
8538 description.
8539
8540 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
8541
8542 * config/mcore/constraints.md: New file.
8543 * config/mcore/mcore.md: Include it.
8544 * config/mcore/mcore.c (reg_class_from_letter): Delete.
8545 * config/mcore/mcore.h (reg_class_from_letter): Delete.
8546 (REG_CLASS_FROM_LETTER): Delete.
8547 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
8548 insn_const_int_ok_for_constraint.
8549 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
8550 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
8551 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8552 (EXTRA_CONSTRAINT): Delete.
8553
8554 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8555
8556 PR ada/41929
8557 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
8558 (IS_SIGHANDLER): Define.
8559 (sparc64_is_sighandler): New function, split off from
8560 sparc64_fallback_frame_state.
8561 (sparc_is_sighandler): New function, split off from
8562 sparc_fallback_frame_state.
8563 (sparc64_fallback_frame_state): Merge with ...
8564 (sparc_fallback_frame_state): ... this into ...
8565 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
8566 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
8567 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
8568 stack instead of hardcoded offsets.
8569
8570 2011-02-14 Andriy Gapon <avg@freebsd.org>
8571
8572 PR target/45808
8573 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
8574
8575 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8576
8577 * configure: Regenerate.
8578
8579 2011-02-12 Joseph Myers <joseph@codesourcery.com>
8580
8581 PR driver/45731
8582 * gcc.c (asm_options): Correct spec matching --target-help.
8583
8584 2011-02-12 Martin Jambor <mjambor@suse.cz>
8585
8586 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
8587 to gimple call error.
8588
8589 2011-02-12 Mike Stump <mikestump@comcast.net>
8590
8591 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
8592 comments in backslash regions.
8593
8594 2011-02-12 Mike Stump <mikestump@comcast.net>
8595 Jakub Jelinek <jakub@redhat.com>
8596 Iain Sandoe <iains@gcc.gnu.org>
8597
8598 PR target/47324
8599 * dwarf2out.c (output_cfa_loc): When required, apply the
8600 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
8601 (output_loc_sequence): Likewise.
8602 (output_loc_operands_raw): Likewise.
8603 (output_loc_sequence_raw): Likewise.
8604 (output_cfa_loc): Likewise.
8605 (output_loc_list): Suppress register number adjustment when
8606 calling output_loc_sequence()
8607 (output_die): Likewise.
8608
8609 2011-02-12 Anatoly Sokolov <aesok@post.ru>
8610
8611 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8612 Remove macros.
8613 * config/xtensa/xtensa.c (xtensa_register_move_cost,
8614 xtensa_memory_move_cost): New functions.
8615 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
8616
8617 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
8618
8619 PR lto/47225
8620 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
8621 in the current directory.
8622 * configure: Rebuilt.
8623
8624 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
8625
8626 * config/darwin.c (darwin_override_options): Add a hunk missed
8627 from the commit of r168571. Trim comment line lengths and
8628 correct indents of the preceding block.
8629
8630 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
8631
8632 * gcc.c (driver_handle_option): Concatenate the argument to -F with
8633 the switch.
8634
8635 2011-02-11 Joseph Myers <joseph@codesourcery.com>
8636
8637 * common.opt (nostartfiles): New Driver option.
8638
8639 2011-02-11 Xinliang David Li <davidxl@google.com>
8640
8641 PR tree-optimization/47707
8642 * tree-chrec.c (convert_affine_scev): Keep type precision.
8643
8644 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
8645
8646 PR tree-optimization/47420
8647 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
8648
8649 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
8650
8651 PR rtl-optimization/47614
8652 * rtl.h (check_for_inc_dec): Declare.
8653 * dse.c (check_for_inc_dec): Externalize...
8654 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
8655 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
8656
8657 2011-02-11 Joseph Myers <joseph@codesourcery.com>
8658
8659 PR driver/47678
8660 * gcc.c (main): Do not compile inputs if there were errors in
8661 option handling.
8662 * opts-common.c (read_cmdline_option): Check for wrong language
8663 after other error checks.
8664
8665 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
8666
8667 * cgraph.c: Fix comment typos.
8668 * cgraph.h: Likewise.
8669 * cgraphunit.c: Likewise.
8670 * ipa-cp.c: Likewise.
8671 * ipa-inline.c: Likewise.
8672 * ipa-prop.c: Likewise.
8673 * ipa-pure-const.c: Likewise.
8674 * ipa-ref.c: Likewise.
8675 * ipa-reference.c: Likewise.
8676
8677 2011-02-11 Jakub Jelinek <jakub@redhat.com>
8678
8679 PR debug/47684
8680 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
8681
8682 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8683
8684 PR testsuite/47400
8685 * doc/sourcebuild.texi (Require Support): Document
8686 dg-require-ascii-locale.
8687
8688 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
8689
8690 * doc/lto.texi (Write summary): Fix missing parentheses.
8691
8692 2011-02-10 DJ Delorie <dj@redhat.com>
8693
8694 * config/m32c/m32c.c (m32c_option_override): Disable
8695 -fcombine-stack-adjustments until flag value tracking and compare
8696 optimization can be rewritten.
8697
8698 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
8699
8700 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
8701 PROCESSOR_POWER7.
8702 (PROCESSOR_DEFAULT64): Likewise.
8703
8704 2011-02-10 Richard Henderson <rth@redhat.com>
8705
8706 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
8707 change from 2011-02-03.
8708 * config/rx/rx.c (flags_from_code): Likewise.
8709 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
8710 is valid, n/pz otherwise.
8711 (rx_select_cc_mode): Return CCmode if Y is not zero.
8712
8713 2011-02-10 Richard Guenther <rguenther@suse.de>
8714
8715 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
8716
8717 2011-02-10 Richard Guenther <rguenther@suse.de>
8718
8719 PR tree-optimization/47677
8720 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
8721
8722 2011-02-10 Jakub Jelinek <jakub@redhat.com>
8723
8724 PR target/47665
8725 * combine.c (make_compound_operation): Only change shifts into
8726 multiplication for SCALAR_INT_MODE_P.
8727
8728 2011-02-10 Jie Zhang <jie@codesourcery.com>
8729
8730 PR testsuite/47622
8731 Revert
8732 2011-02-05 Jie Zhang <jie@codesourcery.com>
8733 PR debug/42631
8734 * web.c (entry_register): Don't clobber the number of the
8735 first uninitialized reference in used[].
8736
8737 2011-02-09 Richard Guenther <rguenther@suse.de>
8738
8739 PR tree-optimization/47664
8740 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
8741 all edges again.
8742
8743 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
8744
8745 PR target/46481
8746 PR target/47032
8747 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
8748 PROCESSOR_POWER7.
8749 (PROCESSOR_DEFAULT64): Same.
8750 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
8751
8752 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8753
8754 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
8755
8756 2011-02-09 Martin Jambor <mjambor@suse.cz>
8757
8758 PR middle-end/45505
8759 * tree-sra.c (struct access): New flags grp_scalar_read and
8760 grp_scalar_write. Changed description of assignment read and write
8761 flags.
8762 (dump_access): Dump new flags, reorder all of them.
8763 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
8764 to detect multiple scalar reads.
8765 (analyze_access_subtree): Use the new scalar read write flags instead
8766 of the old flags. Adjusted comments.
8767
8768 2011-02-08 DJ Delorie <dj@redhat.com>
8769
8770 PR target/47548
8771 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
8772 patterns.
8773
8774 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8775
8776 * config/m68k/uclinux.opt: New.
8777 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
8778
8779 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8780
8781 * config/cris/elf.opt (sim): New Driver option.
8782
8783 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8784
8785 * config/xtensa/elf.opt: New.
8786 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
8787
8788 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8789
8790 * config/vax/elf.opt: New.
8791 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
8792
8793 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8794
8795 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
8796
8797 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8798
8799 * config/gnu-user.opt: New.
8800 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
8801 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
8802 *-*-uclinux*): Use gnu-user.opt.
8803
8804 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
8805
8806 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
8807 * config/i386/gnu.h (CPP_SPEC): Likewise.
8808
8809 2011-02-08 Ian Lance Taylor <iant@google.com>
8810
8811 * common.opt (fcx-limited-range): Add SetByCombined flag.
8812 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
8813 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
8814 (fassociative-math, freciprocal-math): Likewise.
8815 (funsafe-math-optimizations): Likewise.
8816 * opth-gen.awk: Handle SetByCombined.
8817 * optc-gen.awk: Likewise.
8818 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
8819 (set_unsafe_math_optimizations_flags): Likewise.
8820 * doc/options.texi (Option properties): Document SetByCombined.
8821
8822 2011-02-08 Joseph Myers <joseph@codesourcery.com>
8823
8824 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
8825 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
8826 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
8827 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
8828 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
8829
8830 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
8831
8832 PR tree-optimization/46834
8833 PR tree-optimization/46994
8834 PR tree-optimization/46995
8835 * graphite-sese-to-poly.c (used_outside_reduction): New.
8836 (detect_commutative_reduction): Call used_outside_reduction.
8837 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
8838 translate_scalar_reduction_to_array only when at least one
8839 loop-phi/close-phi tuple has been detected.
8840
8841 2011-02-08 Richard Guenther <rguenther@suse.de>
8842
8843 PR middle-end/47639
8844 * tree-vect-generic.c (expand_vector_operations_1): Update
8845 stmts here ...
8846 (expand_vector_operations): ... not here. Cleanup EH info
8847 and the CFG if required.
8848
8849 2011-02-08 Richard Guenther <rguenther@suse.de>
8850
8851 PR tree-optimization/47641
8852 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
8853 require type compatibility.
8854
8855 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8856
8857 * gimple-low.c (lower_function_body): Don't remove the location of
8858 the return statement here.
8859 (lower_gimple_return): Do it here instead but only if the return
8860 statement is actually used twice.
8861
8862 2011-02-08 Richard Guenther <rguenther@suse.de>
8863
8864 PR tree-optimization/47632
8865 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
8866 unused up_to_stmt parameter, return whether cfg-cleanup is
8867 necessary, remove EH info properly.
8868 (forward_propagate_into_gimple_cond): Adjust caller.
8869 (forward_propagate_into_cond): Likewise.
8870 (forward_propagate_comparison): Likewise.
8871 (tree_ssa_forward_propagate_single_use_vars): Make
8872 forward_propagate_comparison case similar to the two others.
8873
8874 2011-02-08 Nick Clifton <nickc@redhat.com>
8875
8876 * config/mn10300/mn10300.opt (mliw): New command line option.
8877 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
8878 (liw_bundling): New automaton.
8879 (liw): New attribute.
8880 (liw_op): New attribute.
8881 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
8882 (movsi_internal): Add LIW attributes.
8883 (andsi3): Likewise.
8884 (iorsi3): Likewise.
8885 (xorsi3): Likewise.
8886 (addsi3): Separate register and immediate alternatives.
8887 Add LIW attributes.
8888 (subsi3): Likewise.
8889 (cmpsi): Likewise.
8890 (aslsi3): Likewise.
8891 (lshrsi3): Likewise.
8892 (ashrsi3): Likewise.
8893 (liw): New pattern.
8894 * config/mn10300/mn10300.c (liw_op_names): New
8895 (mn10300_print_operand): Handle 'W' operand descriptor.
8896 (extract_bundle): New function.
8897 (check_liw_constraints): New function.
8898 (liw_candidate): New function.
8899 (mn10300_bundle_liw): New function.
8900 (mn10300_reorg): New function.
8901 (TARGET_MACHINE_DEPENDENT_REORG): Define.
8902 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
8903 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
8904 __LIW__ or __NO_LIW__.
8905 * doc/invoke.texi: Describe the -mliw command line option.
8906
8907 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8908
8909 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
8910 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8911 pthread_mutex_unlock): Remove.
8912 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
8913 * config/pa/t-pa64: Likewise.
8914 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
8915 shared libc if not linking against libpthread.
8916 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8917
8918 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
8919
8920 PR target/47558
8921 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
8922 on 10.6 and later to ensure that we always use the unwinder from
8923 the system. Only add -no_compact_unwind when tarteting darwin
8924 10.6 or later.
8925
8926 2011-02-07 Steve Ellcey <sje@cup.hp.com>
8927
8928 PR target/46997
8929 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
8930 (vec_interleave_lowv2sf): Ditto.
8931 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
8932 (vec_extract_oddv2sf): Ditto.
8933
8934 2011-02-07 Mike Stump <mikestump@comcast.net>
8935
8936 PR target/42333
8937 Add __ieee_divdc3 entry point.
8938 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
8939 entry point.
8940 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
8941 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
8942 * config/darwin.c (darwin_rename_builtins): Add.
8943 * config/darwin-protos.h (darwin_rename_builtins): Add.
8944
8945 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
8946
8947 PR target/47636
8948 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
8949 for the condition.
8950
8951 2011-02-07 Mike Stump <mikestump@comcast.net>
8952
8953 * config/darwin.opt (mmacosx-version-min): Update default OS version.
8954
8955 2011-02-07 Denis Chertykov <chertykov@gmail.com>
8956
8957 PR target/47534
8958 * config/avr/libgcc.S (exit): Move .endfunc
8959
8960 2011-02-07 Richard Guenther <rguenther@suse.de>
8961
8962 PR tree-optimization/47615
8963 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
8964 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
8965 (run_scc_vn): Initialize it.
8966 (visit_reference_op_load): Use it.
8967 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
8968
8969 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8970
8971 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
8972 DImode trapping arithmetic libfuncs.
8973
8974 2011-02-07 Richard Guenther <rguenther@suse.de>
8975
8976 PR tree-optimization/47621
8977 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
8978 two duplicates ...
8979 (execute_update_addresses_taken): ... here. Make it more
8980 conservative in what we accept.
8981
8982 2011-02-06 Joseph Myers <joseph@codesourcery.com>
8983
8984 * config/sparc/freebsd.h (ASM_SPEC): Define.
8985 * config/sparc/vxworks.h (ASM_SPEC): Define.
8986
8987 2011-02-06 Joseph Myers <joseph@codesourcery.com>
8988
8989 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8990
8991 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
8992
8993 * doc/invoke.texi: Remove reference to compiler internals from
8994 user documentation.
8995
8996 * reg-notes.def: Remove REG_VALUE_PROFILE.
8997 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
8998
8999 2011-02-05 Jakub Jelinek <jakub@redhat.com>
9000
9001 PR middle-end/47610
9002 * varasm.c (default_section_type_flags): If decl is NULL,
9003 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
9004
9005 2011-02-05 Jie Zhang <jie@codesourcery.com>
9006
9007 PR debug/42631
9008 * web.c (entry_register): Don't clobber the number of the
9009 first uninitialized reference in used[].
9010
9011 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
9012
9013 PR tree-optimization/46194
9014 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
9015 (build_classic_dist_vector_1): Do not represent classic distance
9016 vectors when the access functions are variating in different loops.
9017
9018 2011-02-04 Joseph Myers <joseph@codesourcery.com>
9019
9020 * config/mips/iris6.opt: New.
9021 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
9022
9023 2011-02-04 Richard Henderson <rth@redhat.com>
9024 Steve Ellcey <sje@cup.hp.com>
9025
9026 PR target/46997
9027 * config/ia64/predicates.md (mux1_brcst_element): New.
9028 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
9029 * config/ia64/ia64.c (ia64_unpack_assemble): New.
9030 (ia64_unpack_sign): New.
9031 (ia64_expand_unpack): Rewrite using new routines.
9032 (ia64_expand_widen_sum): Ditto.
9033 (ia64_expand_dot_prod_v8qi): Ditto.
9034 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
9035 routines, add endian check.
9036 (pmpy2_even): Rename from pmpy2_r, add endian check.
9037 (pmpy2_odd): Rename from pmpy2_l, add endian check.
9038 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
9039 (vec_widen_smult_hi_v4hi): Ditto.
9040 (vec_widen_umult_lo_v4hi): Ditto.
9041 (vec_widen_umult_hi_v4hi): Ditto.
9042 (mulv2si3): Change endian checks.
9043 (sdot_prodv4hi): Rewrite with new calls.
9044 (udot_prodv4hi): New.
9045 (vec_pack_ssat_v4hi): Add endian check.
9046 (vec_pack_usat_v4hi): Ditto.
9047 (vec_pack_ssat_v2si): Ditto.
9048 (max1_even): Rename from max1_r, add endian check.
9049 (max1_odd): Rename from max1_l, add endian check.
9050 (*mux1_rev): Format change.
9051 (*mux1_mix): Ditto.
9052 (*mux1_shuf): Ditto.
9053 (*mux1_alt): Ditto.
9054 (*mux1_brcst_v8qi): Use new predicate.
9055 (vec_extract_evenv8qi): Remove endian check.
9056 (vec_extract_oddv8qi): Ditto.
9057 (vec_interleave_lowv4hi): Format change.
9058 (vec_interleave_highv4hi): Ditto.
9059 (mix2_even): Rename from mix2_r, add endian check.
9060 (mix2_odd): Rename from mux2_l, add endian check.
9061 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
9062 (vec_extract_evenodd_helper): Format change.
9063 (vec_extract_evenv4hi): Remove endian check.
9064 (vec_extract_oddv4hi): Remove endian check.
9065 (vec_interleave_lowv2si): Format change.
9066 (vec_interleave_highv2si): Format change.
9067 (vec_initv2si): Remove endian check.
9068 (vecinit_v2si): Add endian check.
9069 (reduc_splus_v2sf): Add endian check.
9070 (reduc_smax_v2sf): Ditto.
9071 (reduc_smin_v2sf): Ditto.
9072 (vec_initv2sf): Remove endian check.
9073 (fpack): Add endian check.
9074 (fswap): Add endian check.
9075 (vec_interleave_highv2sf): Add endian check.
9076 (vec_interleave_lowv2sf): Add endian check.
9077 (fmix_lr): Add endian check.
9078 (vec_setv2sf): Format change.
9079 (*vec_extractv2sf_0_be): Use shift to extract operand.
9080 (*vec_extractv2sf_1_be): New.
9081 (vec_pack_trunc_v4hi): Add endian check.
9082 (vec_pack_trunc_v2si): Format change.
9083
9084 2011-02-04 Jakub Jelinek <jakub@redhat.com>
9085
9086 PR inline-asm/23200
9087 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
9088 do bb, locus and block comparison and disallow loads if it is not set.
9089 (stmt_is_replaceable_p): New function.
9090 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
9091 callers.
9092 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
9093 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
9094 SSA_NAME_DEF_STMT.
9095 * tree-flow.h (stmt_is_replaceable_p): New prototype.
9096
9097 2011-02-04 Joseph Myers <joseph@codesourcery.com>
9098
9099 * config/rs6000/xilinx.opt: New.
9100 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
9101
9102 2011-02-04 Joseph Myers <joseph@codesourcery.com>
9103
9104 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
9105
9106 2011-02-03 Anatoly Sokolov <aesok@post.ru>
9107
9108 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
9109 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9110 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
9111 secondary_reload_info, xtensa_secondary_reload): Remove.
9112 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
9113 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9114 (xtensa_preferred_reload_class): Make static. Change return and
9115 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
9116 Use CONST_DOUBLE_P predicate.
9117 (xtensa_preferred_output_reload_class): New function.
9118 (xtensa_secondary_reload): Make static.
9119
9120 2011-02-03 Joseph Myers <joseph@codesourcery.com>
9121
9122 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
9123 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
9124 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
9125
9126 2011-02-03 Jakub Jelinek <jakub@redhat.com>
9127
9128 PR middle-end/31490
9129 * output.h (SECTION_RELRO): Define.
9130 (SECTION_MACH_DEP): Adjust.
9131 (get_variable_section): New prototype.
9132 * varpool.c (varpool_finalize_named_section_flags): New function.
9133 (varpool_assemble_pending_decls): Call it.
9134 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
9135 * cgraphunit.c (cgraph_output_in_order): Call
9136 varpool_finalize_named_section_flags.
9137 * varasm.c (get_section): Allow section flags conflicts between
9138 relro and read-only sections if the section hasn't been declared yet.
9139 Set SECTION_OVERRIDE after diagnosing section type conflict.
9140 (get_variable_section): No longer static.
9141 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
9142 readonly sections that need relocations.
9143 (decl_readonly_section_1): New function.
9144 (decl_readonly_section): Use it.
9145
9146 Revert:
9147 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
9148 Steve Ellcey <sje@cup.hp.com>
9149
9150 PR middle-end/31490
9151 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
9152 if section attribute used.
9153
9154 2011-02-03 Jakub Jelinek <jakub@redhat.com>
9155
9156 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
9157 * config/darwin.c (SECTION_NO_ANCHOR): Define.
9158 (darwin_init_sections): Remove assertion.
9159
9160 2011-02-03 Nick Clifton <nickc@redhat.com>
9161
9162 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
9163 lt and ge.
9164 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
9165 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
9166 instead of "n" and "pz".
9167 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
9168 CC_FLAG_S.
9169
9170 2011-02-03 Jakub Jelinek <jakub@redhat.com>
9171
9172 PR target/47312
9173 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
9174 fma, expand FMA_EXPR as fma{,f,l} call.
9175
9176 PR lto/47274
9177 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
9178 copy them into a unsigned char variable and pass address of it to
9179 lto_output_data_stream.
9180
9181 PR target/47564
9182 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
9183 around backend_init_target and lang_dependent_init_target calls.
9184 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
9185 (verify_cgraph_node): Don't call set_cfun here. Use
9186 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
9187 Set error_found for incorrectly represented calls to thunks.
9188
9189 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
9190
9191 PR debug/43092
9192 PR rtl-optimization/43494
9193 * rtl.h (for_each_inc_dec_fn): New type.
9194 (for_each_inc_dec): Declare.
9195 * rtlanal.c (struct for_each_inc_dec_ops): New type.
9196 (for_each_inc_dec_find_inc_dec): New fn.
9197 (for_each_inc_dec_find_mem): New fn.
9198 (for_each_inc_dec): New fn.
9199 * dse.c (struct insn_size): Remove.
9200 (replace_inc_dec, replace_inc_dec_mem): Remove.
9201 (emit_inc_dec_insn_before): New fn.
9202 (check_for_inc_dec): Use it, along with for_each_inc_dec.
9203 (canon_address): Pass mem modes to cselib_lookup.
9204 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
9205 (cselib_lookup_from_insn): Likewise.
9206 (cselib_subst_to_values): Likewise.
9207 * cselib.c (find_slot_memmode): New var.
9208 (cselib_find_slot): New fn. Use it instead of
9209 htab_find_slot_with_hash everywhere.
9210 (entry_and_rtx_equal_p): Use find_slot_memmode.
9211 (autoinc_split): New fn.
9212 (rtx_equal_for_cselib_p): Rename and implement in terms of...
9213 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
9214 Deal with autoinc. Special-case recursion into MEMs.
9215 (cselib_hash_rtx): Likewise.
9216 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
9217 address and MEM modes.
9218 (cselib_subst_to_values): Add memmode, pass it on.
9219 Deal with autoinc.
9220 (cselib_lookup): Add memmode argument, pass it on.
9221 (cselib_lookup_from_insn): Add memmode.
9222 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
9223 (struct cselib_record_autoinc_data): New.
9224 (cselib_record_autoinc_cb): New fn.
9225 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
9226 mode to cselib_lookup. Reset autoinced REGs here instead of...
9227 (cselib_process_insn): ... here.
9228 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
9229 to cselib_lookup.
9230 (add_uses): Likewise, also to cselib_subst_to_values.
9231 (add_stores): Likewise.
9232 * sched-deps.c (add_insn_mem_dependence): Pass mode to
9233 cselib_subst_to_values.
9234 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
9235 * gcse.c (do_local_cprop): Adjusted.
9236 * postreload.c (reload_cse_simplify_set): Adjusted.
9237 (reload_cse_simplify_operands): Adjusted.
9238 * sel-sched-dump (debug_mem_addr_value): Pass mode.
9239
9240 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
9241
9242 PR tree-optimization/45122
9243 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
9244 unsafe assumptions when there's more than one loop exit.
9245
9246 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9247
9248 PR target/47272
9249 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9250 Document using vector double with the load/store builtins, and
9251 that the load/store builtins always use Altivec instructions.
9252
9253 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
9254 to use altivec memory instructions, even on VSX.
9255 (vector_altivec_store_<mode>): Ditto.
9256
9257 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
9258 function.
9259
9260 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9261 V2DF, V2DI support to load/store overloaded builtins.
9262
9263 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
9264 altivec load/store builtins for V2DF/V2DI types.
9265
9266 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9267 set avoid indexed addresses on power6 if -maltivec.
9268 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
9269 vector_altivec_load/vector_altivec_store builtins.
9270 (altivec_expand_st_builtin): Ditto.
9271 (altivec_expand_builtin): Add VSX memory builtins.
9272 (rs6000_init_builtins): Add V2DI types to internal types.
9273 (altivec_init_builtins): Add support for V2DF/V2DI altivec
9274 load/store builtins.
9275 (rs6000_address_for_altivec): Insure memory address is appropriate
9276 for Altivec.
9277
9278 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
9279 vec_vsx_ld and vec_vsx_st.
9280 (vsx_store_<mode>): Ditto.
9281
9282 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
9283 variables to hold long long types for VSX vector memory builtins.
9284 (RS6000_BTI_unsigned_long_long): Ditto.
9285 (long_long_integer_type_internal_node): Ditti.
9286 (long_long_unsigned_type_internal_node): Ditti.
9287
9288 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
9289 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
9290 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
9291
9292 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
9293 short cuts.
9294 (vec_vsx_st): Ditto.
9295
9296 2011-02-02 Joseph Myers <joseph@codesourcery.com>
9297
9298 * config/pa/pa-hpux10.opt: New.
9299 * config/hpux11.opt (pthread): New Driver option.
9300 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
9301 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
9302
9303 2011-02-02 Joseph Myers <joseph@codesourcery.com>
9304
9305 * config/ia64/vms.opt: New.
9306 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
9307
9308 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
9309
9310 PR target/47580
9311 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
9312 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
9313 generator functions.
9314 (vsx_floatuns<VSi><mode>2): Ditto.
9315 (vsx_fix_trunc<mode><VSi>2): Ditto.
9316 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
9317
9318 2011-02-02 Joseph Myers <joseph@codesourcery.com>
9319
9320 * config/i386/djgpp.opt (posix): New Driver option.
9321
9322 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
9323
9324 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
9325 Move to the unsupported targets list.
9326
9327 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
9328
9329 PR rtl-optimization/47525
9330 * df-scan.c: Update copyright years.
9331 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
9332 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
9333
9334 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9335
9336 * config/i386/sysv4.h (TARGET_VERSION): Remove.
9337 (SUBTARGET_RETURN_IN_MEMORY): Remove.
9338 (ASM_OUTPUT_ASCII): Remove.
9339 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
9340
9341 2011-02-02 Jeff Law <law@redhat.com>
9342
9343 PR middle-end/47543
9344 * reload.c (find_reloads_address): Handle reg+d address where both
9345 components are invalid by reloading the entire address.
9346
9347 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
9348 Richard Guenther <rguenther@suse.de>
9349
9350 PR tree-optimization/40979
9351 PR bootstrap/47044
9352 * passes.c (init_optimization_passes): After LIM call copy_prop
9353 and DCE to clean up.
9354 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
9355
9356 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
9357
9358 PR tree-optimization/47576
9359 PR tree-optimization/47555
9360 * doc/invoke.texi (scev-max-expr-complexity): Documented.
9361 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9362 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
9363 * tree-scalar-evolution.c (follow_ssa_edge): Use
9364 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
9365
9366 2011-02-02 Richard Guenther <rguenther@suse.de>
9367
9368 PR tree-optimization/47566
9369 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
9370
9371 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
9372
9373 PR debug/47106
9374 PR debug/47402
9375 * tree-inline.c (declare_return_variable): Remove unused caller
9376 variable.
9377
9378 PR debug/47106
9379 PR debug/47402
9380 * tree-flow-inline.h (clear_is_used, is_used_p): New.
9381 * cfgexpand.c (account_used_vars_for_block): Use them.
9382 * tree-nrv.c (tree_nrv): Likewise.
9383 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
9384 (dump_scope_block): Likewise.
9385 (remove_unused_locals): Likewise.
9386
9387 PR debug/47106
9388 PR debug/47402
9389 * tree-inline.c (declare_return_variable): Add result decl to
9390 local decls only once.
9391 * gimple-low.c (record_vars_into): Mark newly-created variables
9392 as referenced.
9393
9394 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
9395
9396 PR debug/47498
9397 PR debug/47501
9398 PR debug/45136
9399 PR debug/45130
9400 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9401 debug insns.
9402 (no_real_insns_p, schedule_block, set_priorities): Drop special
9403 treatment of boundary debug insns.
9404 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9405 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
9406 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9407 (BOUNDARY_DEBUG_INSN_P): Likewise.
9408 (SCHEDULE_DEBUG_INSN_P): Likewise.
9409 * sched-rgn.c (init_ready_list): Drop special treatment of
9410 boundary debug insns.
9411 * final.c (rest_of_clean_state): Clear notes' BB.
9412
9413 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9414
9415 * config/openbsd.opt (assert=): New Driver option.
9416
9417 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9418
9419 * config/i386/nto.opt: New.
9420 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
9421
9422 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9423
9424 * config/i386/netware.opt: New.
9425 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
9426
9427 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9428
9429 * config/interix.opt (posix): New Driver option.
9430
9431 2011-02-01 DJ Delorie <dj@redhat.com>
9432
9433 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
9434
9435 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
9436 class for A0/A1.
9437
9438 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
9439
9440 PR tree-optimization/47561
9441 * toplev.c (process_options): Print the Graphite flags. Add
9442 flag_loop_flatten to the list of options requiring Graphite.
9443
9444 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9445
9446 * config/i386/cygming.opt (posix): New Driver option.
9447
9448 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9449
9450 * config/arm/vxworks.opt: New.
9451 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
9452
9453 2011-02-01 Joseph Myers <joseph@codesourcery.com>
9454
9455 * config/alpha/elf.opt: New.
9456 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
9457 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
9458
9459 2011-02-01 Richard Guenther <rguenther@suse.de>
9460
9461 PR tree-optimization/47559
9462 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
9463 store-motion on references that can throw.
9464
9465 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
9466
9467 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
9468 * tree-pass.h (TDF_CSELIB): New macro.
9469 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
9470 cselib_lookup): Check for it rather than for TDF_DETAILS.
9471
9472 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
9473
9474 PR driver/47547
9475 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
9476 is HOST_BIT_BUCKET.
9477
9478 * opts.c (finish_options): Don't add x_aux_base_name if it is
9479 HOST_BIT_BUCKET.
9480
9481 2011-02-01 Richard Guenther <rguenther@suse.de>
9482
9483 PR tree-optimization/47555
9484 Revert
9485 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
9486
9487 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9488
9489 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
9490
9491 PR gcc/46692
9492 * config/lm32/t-lm32: Add multilib for all CPU options.
9493
9494 2011-02-01 Richard Guenther <rguenther@suse.de>
9495
9496 PR tree-optimization/47541
9497 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
9498 sure to have a field at offset zero.
9499
9500 2011-01-31 Joseph Myers <joseph@codesourcery.com>
9501
9502 * config/arc/arc.opt (EB, EL): New Driver options.
9503
9504 2011-01-31 Joseph Myers <joseph@codesourcery.com>
9505
9506 * config/alpha/osf5.opt: New.
9507 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
9508
9509 2011-01-31 Joseph Myers <joseph@codesourcery.com>
9510
9511 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
9512
9513 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
9514
9515 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
9516 -floop-interchange.
9517 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
9518 is an alias of -floop-interchange and that it requires the
9519 Graphite infrastructure.
9520 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
9521 flag_loop_interchange based on the value of flag_tree_loop_linear.
9522
9523 2011-01-31 Jakub Jelinek <jakub@redhat.com>
9524 Richard Guenther <rguenther@suse.de>
9525
9526 PR tree-optimization/47538
9527 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
9528 type instead of r1type, except for comparisons. For right
9529 shifts and comparisons punt if there are mismatches in
9530 sizetype vs. non-sizetype types.
9531
9532 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9533
9534 * doc/sourcebuild.texi (Effective-Target Keywords): Document
9535 avx_runtime.
9536
9537 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9538
9539 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
9540 version number.
9541 * configure: Regenerate.
9542
9543 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9544
9545 * configure.ac (gcc_cv_ld_static_option): Define.
9546 (gcc_cv_ld_dynamic_option): Define.
9547 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
9548 instead.
9549 (HAVE_LD_STATIC_DYNAMIC): Update message.
9550 (LD_STATIC_OPTION): Define.
9551 (LD_DYNAMIC_OPTION): Define.
9552 * configure: Regenerate.
9553 * config.in: Regenerate.
9554 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
9555 HAVE_LD_STATIC_DYNAMIC]: Use them.
9556
9557 2011-01-31 Nick Clifton <nickc@redhat.com>
9558
9559 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
9560 registers inside interrupt handlers if the handler is not a leaf
9561 function.
9562
9563 2011-01-31 Nick Clifton <nickc@redhat.com>
9564
9565 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
9566 reg_renumber returning an INVALID_REGNUM.
9567
9568 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
9569
9570 PR libgcj/44341
9571 * doc/install.texi: Document host options discarded when cross
9572 configuring target libraries.
9573
9574 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
9575
9576 Reverted:
9577 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
9578 PR debug/45136
9579 PR debug/45130
9580 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9581 debug insns.
9582 (no_real_insns_p, schedule_block, set_priorities): Drop special
9583 treatment of boundary debug insns.
9584 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9585 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9586 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9587 (BOUNDARY_DEBUG_INSN_P): Likewise.
9588 (SCHEDULE_DEBUG_INSN_P): Likewise.
9589 * sched-rgn.c (init_ready_list): Drop special treatment of
9590 boundary debug insns.
9591 * final.c (rest_of_clean-state): Clear notes' BB.
9592
9593 2011-01-31 Alan Modra <amodra@gmail.com>
9594
9595 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
9596 toc relative expressions as we do in print_operand_address.
9597
9598 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
9599
9600 * doc/extend.texi: Follow spelling conventions.
9601 * doc/invoke.texi: Fix a typo.
9602
9603 2011-01-30 Joseph Myers <joseph@codesourcery.com>
9604
9605 * config/hpux11.opt: New.
9606 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
9607 ia64*-*-hpux*): Use hpux11.opt.
9608
9609 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
9610
9611 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
9612 to tmake_file.
9613
9614 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
9615
9616 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
9617 support sites.
9618
9619 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
9620
9621 * doc/install.texi (Binaries): Remove outdated reference for
9622 Motorola 68HC11/68HC12 downloads.
9623
9624 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
9625
9626 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
9627 Drepper's paper.
9628
9629 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
9630
9631 PR bootstrap/47147
9632 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
9633 used by NetBSD.
9634
9635 2011-01-28 Ahmad Sharif <asharif@google.com>
9636
9637 * value-prof.c (check_counter): Corrected error message.
9638
9639 2011-01-29 Jie Zhang <jie@codesourcery.com>
9640
9641 * config/arm/arm.c (arm_legitimize_reload_address): New.
9642 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9643 arm_legitimize_reload_address.
9644 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
9645
9646 2011-01-28 Ian Lance Taylor <iant@google.com>
9647
9648 * godump.c (go_define): Ignore macros whose definitions include
9649 two adjacent operands.
9650
9651 2011-01-28 Jakub Jelinek <jakub@redhat.com>
9652
9653 PR target/42894
9654 * varasm.c (force_const_mem): Store copy of x in desc->constant
9655 instead of x itself.
9656 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
9657 itself into REG_EQUAL note.
9658
9659 2011-01-28 Joseph Myers <joseph@codesourcery.com>
9660
9661 * config/freebsd.opt (posix, rdynamic): New Driver options.
9662
9663 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9664
9665 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
9666 -Bstatic/-Bdynamic.
9667 * configure: Regenerate.
9668
9669 2011-01-27 Joseph Myers <joseph@codesourcery.com>
9670
9671 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
9672 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
9673
9674 2011-01-27 Anatoly Sokolov <aesok@post.ru>
9675
9676 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
9677 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
9678 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9679 (s390_preferred_reload_class): Make static. Change return and
9680 'rclass' argument type to reg_class_t.
9681
9682 2011-01-27 Jan Hubicka <jh@suse.cz>
9683
9684 PR middle-end/46949
9685 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
9686 (process_function_and_variable_attributes): Check defined weakrefs.
9687
9688 2011-01-27 Martin Jambor <mjambor@suse.cz>
9689
9690 PR tree-optimization/47228
9691 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
9692 build_ref_for_offset.
9693
9694 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9695
9696 * config/spu/spu-elf.h (ASM_SPEC): Remove.
9697
9698 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
9699
9700 PR rtl-optimization/46856
9701 * postreload.c (reload_combine_recognize_const_pattern): Do not
9702 separate cc0 setter and user on cc0 targets.
9703
9704 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
9705
9706 PR c/43082
9707 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
9708 passed a VOID_TYPE expression, immediately emit an error and
9709 return error_mark_node.
9710
9711 2011-01-26 Jeff Law <law@redhat.com>
9712
9713 PR rtl-optimization/47464
9714 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
9715 rather than may_trap_p as needed.
9716
9717 2011-01-26 DJ Delorie <dj@redhat.com>
9718
9719 PR rtl-optimization/46878
9720 * combine.c (insn_a_feeds_b): Check for the implicit cc0
9721 setter/user dependency as well.
9722
9723 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
9724
9725 PR rtl-optimization/44469
9726 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
9727 after removing trivially dead basic blocks.
9728
9729 2011-01-26 Joseph Myers <joseph@codesourcery.com>
9730
9731 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
9732 * config/frv/frv.h (LINK_SPEC): Likewise.
9733 * config/i386/netware.h (LINK_SPEC): Likewise.
9734 * config/m68k/linux.h (ASM_SPEC): Likewise.
9735 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
9736 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9737 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9738 * config/sparc/linux.h (ASM_SPEC): Likewise.
9739 * config/sparc/linux64.h (ASM_SPEC): Likewise.
9740 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9741
9742 2011-01-26 Joseph Myers <joseph@codesourcery.com>
9743
9744 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
9745 * config/frv/frv.h (ASM_SPEC): Likewise.
9746 * config/m68k/linux.h (ASM_SPEC): Likewise.
9747 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9748 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
9749 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9750 * config/sparc/linux.h (ASM_SPEC): Likewise.
9751 * config/sparc/linux64.h (ASM_SPEC): Likewise.
9752 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9753
9754 2011-01-26 Joseph Myers <joseph@codesourcery.com>
9755
9756 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
9757 * config/frv/frv.h (LINK_SPEC): Likewise.
9758 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9759
9760 2011-01-26 Joseph Myers <joseph@codesourcery.com>
9761
9762 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
9763 * config/frv/frv.h (ASM_SPEC): Likewise.
9764 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
9765 * config/m68k/linux.h (ASM_SPEC): Likewise.
9766 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9767 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
9768 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9769 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
9770 * config/sparc/linux.h (ASM_SPEC): Likewise.
9771 * config/sparc/linux64.h (ASM_SPEC): Likewise.
9772 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9773 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
9774
9775 2011-01-26 Steve Ellcey <sje@cup.hp.com>
9776
9777 PR target/46997
9778 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
9779 (*mux2): Ditto.
9780 (vec_extract_evenodd_help): Ditto.
9781 (vec_extract_evenv4hi): Ditto.
9782 (vec_extract_oddv4hi): Ditto.
9783 (vec_interleave_lowv2si): Ditto.
9784 (vec_interleave_highv2si): Ditto.
9785 (vec_extract_evenv2si): Ditto.
9786 (vec_extract_oddv2si: Ditto.
9787 (vec_pack_trunc_v2si): Ditto.
9788
9789 2011-01-22 Jan Hubicka <jh@suse.cz>
9790
9791 PR target/47237
9792 * cgraph.h (cgraph_local_info): New field can_change_signature.
9793 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
9794 signature can change.
9795 (ipcp_estimate_growth): Call sequence simplify only if calle signature
9796 can change.
9797 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
9798 (cgraph_function_versioning): We can not change signature of functions
9799 that don't allow that.
9800 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
9801 (lto_input_node): Likewise.
9802 * ipa-inline.c (compute_inline_parameters): Compute
9803 local.can_change_signature.
9804 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
9805 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
9806 functions that can not change signature.
9807 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
9808 init_cumulative_args): Do not use local calling conventions
9809 for functions that can not change signature.
9810
9811 2011-01-22 Jan Hubicka <jh@suse.cz>
9812
9813 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
9814
9815 2011-01-26 Richard Guenther <rguenther@suse.de>
9816
9817 PR tree-optimization/47190
9818 * cgraphunit.c (process_common_attributes): New function.
9819 (process_function_and_variable_attributes): Use it.
9820
9821 2011-01-26 Richard Guenther <rguenther@suse.de>
9822
9823 PR lto/47423
9824 * cgraphbuild.c (record_eh_tables): Record reference to personality
9825 function.
9826
9827 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
9828
9829 PR debug/45454
9830 * sel-sched.c (moveup_expr): Don't let debug insns prevent
9831 non-debug insns from moving up.
9832
9833 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
9834
9835 PR target/40125
9836 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
9837 t-dlldir{,-x} fragment for build and add it to tmake_file.
9838 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
9839 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
9840 * config/i386/t-dlldir: New file.
9841 (SHLIB_DLLDIR): Define.
9842 * config/i386/t-dlldir-x: New file.
9843 (SHLIB_DLLDIR): Define.
9844 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
9845 (SHLIB_INSTALL): Use it.
9846
9847 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
9848
9849 PR target/47246
9850 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
9851 lower bound of the allowed Thumb-2 coprocessor load/store
9852 index range to -256. Add explaining comment.
9853
9854 2011-01-25 Ian Lance Taylor <iant@google.com>
9855
9856 * godump.c (go_define): Improve lexing of macro expansion to only
9857 accept expressions which match Go spec.
9858
9859 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
9860
9861 PR c++/43601
9862 * tree.c (handle_dll_attribute): Handle it.
9863 * doc/extend.texi (@item dllexport): Mention it.
9864 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
9865
9866 2011-01-25 Ian Lance Taylor <iant@google.com>
9867
9868 PR tree-optimization/26854
9869 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
9870 (decl_jump_unsafe): Move higher in file, with no other change.
9871 (bind): Set has_jump_unsafe_decl if appropriate.
9872 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
9873 (check_earlier_gotos): Likewise.
9874 (c_check_switch_jump_warnings): Likewise.
9875
9876 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
9877
9878 * doc/invoke.texi (Warning Options): Add missing hyphen.
9879 (-fprofile-dir): Minor grammatical fixes.
9880 (-fbranch-probabilities): Likewise.
9881
9882 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
9883
9884 PR debug/45136
9885 PR debug/45130
9886 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9887 debug insns.
9888 (no_real_insns_p, schedule_block, set_priorities): Drop special
9889 treatment of boundary debug insns.
9890 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9891 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9892 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9893 (BOUNDARY_DEBUG_INSN_P): Likewise.
9894 (SCHEDULE_DEBUG_INSN_P): Likewise.
9895 * sched-rgn.c (init_ready_list): Drop special treatment of
9896 boundary debug insns.
9897 * final.c (rest_of_clean-state): Clear notes' BB.
9898
9899 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
9900
9901 * Makefile.in (LAMBDA_H): Removed.
9902 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
9903 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
9904 lambda-trans.o, and tree-loop-linear.o.
9905 (lto-symtab.o): Remove dependence on LAMBDA_H.
9906 (tree-loop-linear.o): Remove rule.
9907 (lambda-mat.o): Same.
9908 (lambda-trans.o): Same.
9909 (lambda-code.o): Same.
9910 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
9911 (tree-vect-slp.o): Same.
9912 * hwint.h (gcd): Moved here.
9913 (least_common_multiple): Same.
9914 * lambda-code.c: Removed.
9915 * lambda-mat.c: Removed.
9916 * lambda-trans.c: Removed.
9917 * lambda.h: Removed.
9918 * tree-loop-linear.c: Removed.
9919 * lto-symtab.c: Do not include lambda.h.
9920 * omega.c (gcd): Removed.
9921 * passes.c (init_optimization_passes): Remove pass_linear_transform.
9922 * tree-data-ref.c (print_lambda_vector): Moved here.
9923 (lambda_vector_copy): Same.
9924 (lambda_matrix_copy): Same.
9925 (lambda_matrix_id): Same.
9926 (lambda_vector_first_nz): Same.
9927 (lambda_matrix_row_add): Same.
9928 (lambda_matrix_row_exchange): Same.
9929 (lambda_vector_mult_const): Same.
9930 (lambda_vector_negate): Same.
9931 (lambda_matrix_row_negate): Same.
9932 (lambda_vector_equal): Same.
9933 (lambda_matrix_right_hermite): Same.
9934 * tree-data-ref.h: Do not include lambda.h.
9935 (lambda_vector): Moved here.
9936 (lambda_matrix): Same.
9937 (dependence_level): Same.
9938 (lambda_transform_legal_p): Removed declaration.
9939 (lambda_collect_parameters): Same.
9940 (lambda_compute_access_matrices): Same.
9941 (lambda_vector_gcd): Same.
9942 (lambda_vector_new): Same.
9943 (lambda_vector_clear): Same.
9944 (lambda_vector_lexico_pos): Same.
9945 (lambda_vector_zerop): Same.
9946 (lambda_matrix_new): Same.
9947 * tree-flow.h (least_common_multiple): Removed declaration.
9948 * tree-parloops.c (lambda_trans_matrix): Moved here.
9949 (LTM_MATRIX): Same.
9950 (LTM_ROWSIZE): Same.
9951 (LTM_COLSIZE): Same.
9952 (LTM_DENOMINATOR): Same.
9953 (lambda_trans_matrix_new): Same.
9954 (lambda_matrix_vector_mult): Same.
9955 (lambda_transform_legal_p): Same.
9956 * tree-pass.h (pass_linear_transform): Removed declaration.
9957 * tree-ssa-loop.c (tree_linear_transform): Removed.
9958 (gate_tree_linear_transform): Removed.
9959 (pass_linear_transform): Removed.
9960 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
9961 flag_loop_interchange.
9962
9963 2011-01-25 Jakub Jelinek <jakub@redhat.com>
9964
9965 PR tree-optimization/47265
9966 PR tree-optimization/47443
9967 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
9968 if name still has some uses.
9969
9970 2011-01-25 Martin Jambor <mjambor@suse.cz>
9971
9972 PR tree-optimization/47382
9973 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
9974 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
9975
9976 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
9977
9978 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
9979 sjlj_except_unwind_info.
9980
9981 2011-01-25 Richard Guenther <rguenther@suse.de>
9982
9983 PR tree-optimization/47426
9984 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
9985 visible functions results escape.
9986
9987 2011-01-25 Jakub Jelinek <jakub@redhat.com>
9988
9989 PR target/45701
9990 * config/arm/arm.c (any_sibcall_uses_r3): New function.
9991 (arm_get_frame_offsets): Use it.
9992
9993 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
9994 Jakub Jelinek <jakub@redhat.com>
9995
9996 PR tree-optimization/47271
9997 * tree-if-conv.c (bb_postdominates_preds): New.
9998 (if_convertible_bb_p): Call bb_postdominates_preds.
9999 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
10000 (predicate_scalar_phi): Call bb_postdominates_preds.
10001
10002 2011-01-25 Nick Clifton <nickc@redhat.com>
10003
10004 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
10005 * config/rx/rx.c (rx_function_value): Likewise.
10006 (rx_promote_function_mode): Likewise.
10007 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
10008 in order to make it legitimate.
10009 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
10010 make sure that the first operand is the same as the result register.
10011 (addsi3_unspec): Delete.
10012 (subdi3): Do not accept immediate operands.
10013 (subdi3_internal): Likewise.
10014
10015 2011-01-25 Jeff Law <law@redhat.com>
10016
10017 PR rtl-optimization/37273
10018 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10019 handle them like argument loads from stack slots. Do not double
10020 count memory for memory constants and argument loads from stack slots.
10021
10022 2011-01-25 Jakub Jelinek <jakub@redhat.com>
10023
10024 PR tree-optimization/47427
10025 PR tree-optimization/47428
10026 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10027 coalesce if the new root var would be TREE_READONLY.
10028
10029 2011-01-25 Richard Guenther <rguenther@suse.de>
10030
10031 PR middle-end/47414
10032 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
10033 correct type for TBAA.
10034
10035 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10036
10037 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
10038 (close_phi_written_to_memory): Call for_each_index with
10039 dr_indices_valid_in_loop.
10040
10041 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10042
10043 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
10044 when it is initialized.
10045
10046 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10047
10048 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
10049 call to graphite_find_data_references_in_stmt.
10050 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
10051 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
10052 call to graphite_find_data_references_in_stmt.
10053 (analyze_drs_in_stmts): Same.
10054 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
10055 in which the scalar analysis of indices is performed.
10056 (create_data_ref): Same. Update call to dr_analyze_indices.
10057 (find_data_references_in_stmt): Update call to create_data_ref.
10058 (graphite_find_data_references_in_stmt): Same.
10059 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
10060 declaration.
10061 (create_data_ref): Same.
10062 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
10063 call to create_data_ref.
10064
10065 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10066
10067 * graphite-sese-to-poly.c (build_poly_scop): Move
10068 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
10069
10070 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10071
10072 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
10073 VAR_DECL, PARM_DECL, and RESULT_DECL.
10074
10075 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10076
10077 * graphite-dependences.c (reduction_dr_1): Allow several reductions
10078 in a reduction PBB.
10079 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
10080 that have already been marked as PBB_IS_REDUCTION.
10081
10082 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10083
10084 * graphite-scop-detection.c (same_close_phi_node): New.
10085 (remove_duplicate_close_phi): New.
10086 (make_close_phi_nodes_unique): New.
10087 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
10088
10089 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10090
10091 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
10092 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
10093 of both data references to be the same.
10094
10095 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10096
10097 * graphite-dependences.c (build_lexicographical_constraint): Remove
10098 the gdim parameter.
10099 (build_lexicographical_constraint): Adjust call to
10100 ppl_powerset_is_empty.
10101 (dependence_polyhedron): Same.
10102 (graphite_legal_transform_dr): Same.
10103 (graphite_carried_dependence_level_k): Same.
10104 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
10105 parameter.
10106 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
10107
10108 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10109
10110 * graphite-sese-to-poly.c
10111 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
10112 (close_phi_written_to_memory): New.
10113 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
10114 and unshare_expr.
10115
10116 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10117
10118 * doc/install.texi: Update the expected version number of PPL to 0.11.
10119 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
10120 #if PPL_VERSION_MINOR < 11.
10121
10122 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10123
10124 * graphite-dependences.c: Include graphite-cloog-util.h.
10125 (new_poly_ddr): Inlined into dependence_polyhedron.
10126 (free_poly_ddr): Moved close by new_poly_ddr.
10127 (dependence_polyhedron_1): Renamed dependence_polyhedron.
10128 Early return NULL when ppl_powerset_is_empty returns true.
10129 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
10130 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
10131 (graphite_legal_transform_dr): Call new_poly_ddr.
10132 (graphite_carried_dependence_level_k): Same.
10133 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
10134 (dot_transformed_deps_stmt_1): Removed.
10135 (dot_deps_stmt_1): Call dot_deps_stmt_2.
10136 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
10137 (dot_deps_1): Call dot_deps_2.
10138 * Makefile.in (graphite-dependences.o): Add missing dependence on
10139 graphite-cloog-util.h.
10140
10141 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10142
10143 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
10144 (build_lexicographical_constraint): Same.
10145 (dependence_polyhedron_1): Same.
10146 (graphite_legal_transform_dr): Same.
10147 (graphite_carried_dependence_level_k): Same.
10148 * graphite-ppl.c (ppl_powerset_is_empty): New.
10149 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
10150 * tree-data-ref.c (dump_data_reference): Print the basic block index.
10151
10152 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10153
10154 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
10155 the "a followed by b" relation and document it.
10156
10157 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10158
10159 * graphite-dependences.c (build_lexicographical_constraint): Stop the
10160 iteration when the bag of constraints is empty.
10161
10162 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10163
10164 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
10165
10166 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10167
10168 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
10169 nest and two loop depths as parameters.
10170 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
10171 lst_perfect_nestify.
10172
10173 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10174
10175 * graphite-dependences.c (print_pddr): Call
10176 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
10177
10178 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10179
10180 * graphite-ppl.c (debug_gmp_value): New.
10181 * graphite-ppl.h (debug_gmp_value): Declared.
10182
10183 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
10184
10185 * doc/install.texi: Document availability of cloog-0.16.
10186
10187 2011-01-25 Vladimir Kargov <kargov@gmail.com>
10188
10189 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
10190 invalid postdominance info.
10191
10192 2011-01-24 Jan Hubicka <jh@suse.cz>
10193
10194 PR c/21659
10195 * doc/extend.texi (weak pragma): Drop claim that it must
10196 appear before definition.
10197 * varasm.c (merge_weak, declare_weak): Only sanity check
10198 that DECL is not output at a time it is declared weak.
10199
10200 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
10201
10202 * machmode.def: Fixed comments.
10203
10204 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
10205
10206 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
10207
10208 2011-01-24 Paul Koning <ni1d@arrl.net>
10209
10210 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
10211 WORDS_BIG_ENDIAN.
10212
10213 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
10214
10215 PR target/46519
10216 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
10217 (block_info): Add scanned and prev.
10218 (move_or_delete_vzeroupper_2): Return if the basic block
10219 has been scanned and the upper 128bit state is unchanged
10220 from the last scan.
10221 (move_or_delete_vzeroupper_1): Return true if the exit
10222 state is changed.
10223 (move_or_delete_vzeroupper): Visit basic blocks using the
10224 work-list based algorithm based on vt_find_locations in
10225 var-tracking.c.
10226
10227 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
10228
10229 2011-01-24 Nick Clifton <nickc@redhat.com>
10230
10231 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
10232 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
10233 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
10234 then define __v850e1__.
10235 * doc/invoke.texi: Document -mv850es.
10236
10237 2011-01-24 Richard Henderson <rth@redhat.com>
10238
10239 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
10240 compound unordered comparisons.
10241 * config/rx/rx.c (rx_split_fp_compare): Remove.
10242 * config/rx/rx-protos.h: Update.
10243 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
10244 (cbranchsf4): Don't call rx_split_fp_compare.
10245 (*cbranchsf4): Use rx_split_cbranch.
10246 (*cmpsf): Don't accept "i" constraint.
10247 (*conditional_branch): Only valid after reload.
10248 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
10249
10250 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
10251
10252 PR target/47385
10253 * config/rs6000/altivec.md (vector constant splitters): Add
10254 support for creating vector single precision constants if -mvsx is
10255 used and we would create the constant using Altivec primitives.
10256
10257 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
10258 Richard Sandiford <rdsandiford@googlemail.com>
10259
10260 PR rtl-optimization/47166
10261 * reload1.c (emit_reload_insns): Disable the spill_reg_store
10262 mechanism for PRE_MODIFY and POST_MODIFY.
10263 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
10264 reloadreg.
10265
10266 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
10267
10268 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
10269
10270 2011-01-22 Jan Hubicka <jh@suse.cz>
10271
10272 PR lto/47333
10273 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
10274
10275 2011-01-22 Jan Hubicka <jh@suse.cz>
10276
10277 PR tree-optimization/43884
10278 PR lto/44334
10279 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
10280 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
10281
10282 2011-01-22 Anatoly Sokolov <aesok@post.ru>
10283
10284 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10285 * config/s390/s390.c (s390_register_move_cost,
10286 s390_memory_move_cost): New.
10287 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10288
10289 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10290
10291 PR middle-end/47401
10292 * except.c (sjlj_assign_call_site_values): Move setting the
10293 crtl->uses_eh_lsda flag to ...
10294 (sjlj_mark_call_sites): ... here.
10295 (sjlj_emit_function_enter): Support NULL dispatch label.
10296 (sjlj_build_landing_pads): In a function with no landing pads
10297 that still has must-not-throw regions, generate code to register
10298 a personality function with empty LSDA.
10299
10300 2011-01-21 Richard Henderson <rth@redhat.com>
10301
10302 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
10303
10304 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
10305
10306 * compare-elim.c: New file.
10307 * Makefile.in (OBJS-common): Add it.
10308 (compare-elim.o): New.
10309 * common.opt (fcompare-elim): New.
10310 * opts.c (default_options_table): Add OPT_fcompare_elim.
10311 * tree-pass.h (pass_compare_elim_after_reload): New.
10312 * passes.c (init_optimization_passes): Add it.
10313 * recog.h: Protect against re-inclusion.
10314 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
10315 * doc/invoke.texi (-fcompare-elim): Document it.
10316 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
10317 * doc/tm.texi: Rebuild.
10318
10319 2011-01-22 Nick Clifton <nickc@redhat.com>
10320
10321 * config/rx/rx.md (cstoresf4): Pass comparison operator to
10322 rx_split_fp_compare.
10323
10324 2011-01-22 Nick Clifton <nickc@redhat.com>
10325
10326 * config/rx/rx.md (UNSPEC_CONST): New.
10327 (deallocate_and_return): Wrap the amount popped off the stack in
10328 an UNSPEC_CONST in order to stop it being rejected by
10329 -mmax-constant-size.
10330 (pop_and_return): Add a "(return)" rtx.
10331 (call): Drop the immediate operand.
10332 (call_internal): Likewise.
10333 (call_value): Likewise.
10334 (call_value_internal): Likewise.
10335 (sibcall_internal): Likewise.
10336 (sibcall_value_internal): Likewise.
10337 (sibcall): Likewise. Generate an explicit call using
10338 sibcall_internal.
10339 (sibcall_value): Likewise.
10340 (mov<>): FAIL if a constant operand is not legitimate.
10341 (addsi3_unpsec): New pattern.
10342
10343 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
10344 (ok_for_max_constant): New function.
10345 (gen_safe_add): New function.
10346 (rx_expand_prologue): Use gen_safe_add.
10347 (rx_expand_epilogue): Likewise.
10348 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
10349 UNSPEC CONSTs.
10350
10351 2011-01-21 Jeff Law <law@redhat.com>
10352
10353 PR tree-optimization/47053
10354 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
10355 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
10356 statements are deleted.
10357 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
10358 is nonempty, then purge dead edges and cleanup the CFG.
10359
10360 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
10361
10362 PR debug/47402
10363 Temporarily revert:
10364 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
10365 PR debug/47106
10366 * tree-dfa.c (create_var_ann): Mark variable as used.
10367
10368 2011-01-21 Jakub Jelinek <jakub@redhat.com>
10369
10370 PR middle-end/45566
10371 * except.c (convert_to_eh_region_ranges): Emit queued no-region
10372 notes from other section in hot/cold partitioning even if
10373 last_action is -3. Increment call_site_base.
10374
10375 PR rtl-optimization/47366
10376 * fwprop.c (forward_propagate_into): Return bool. If
10377 any changes are made, -fnon-call-exceptions is used and
10378 REG_EH_REGION note is present, call purge_dead_edges
10379 and return true if it purged anything.
10380 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
10381 any EH edges were purged.
10382
10383 2011-01-21 Jeff Law <law@redhat.com>
10384
10385 PR rtl-optimization/41619
10386 * caller-save.c (setup_save_areas): Break out code to determine
10387 which hard regs are live across calls by examining the reload chains
10388 so that it is always used.
10389 Eliminate code which checked REG_N_CALLS_CROSSED.
10390
10391 2011-01-21 Jakub Jelinek <jakub@redhat.com>
10392
10393 PR tree-optimization/47355
10394 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
10395 NOP has non-debug uses beyond PHIs in new_bb.
10396
10397 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
10398
10399 PR debug/47106
10400 * cfgexpand.c (account_used_vars_for_block): Only account vars
10401 that are annotated as used.
10402 (estimated_stack_frame_size): Don't set TREE_USED.
10403 * tree-dfa.c (create_var_ann): Mark variable as used.
10404
10405 2011-01-21 Richard Guenther <rguenther@suse.de>
10406
10407 PR middle-end/47395
10408 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
10409
10410 2011-01-21 Richard Guenther <rguenther@suse.de>
10411
10412 PR tree-optimization/47365
10413 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
10414 (vn_reference_lookup_pieces): Adjust.
10415 (vn_reference_lookup): Likewise.
10416 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
10417 (vn_reference_lookup_3): Only look through kills if in
10418 VN_WALKREWRITE mode.
10419 (vn_reference_lookup_pieces): Adjust.
10420 (vn_reference_lookup): Likewise.
10421 (visit_reference_op_load): Likewise.
10422 (visit_reference_op_store): Likewise.
10423 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
10424 (compute_avail): Likewise.
10425 (eliminate): Likewise.
10426
10427 2011-01-21 Jakub Jelinek <jakub@redhat.com>
10428
10429 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
10430 DECL_IGNORED_P non-reg vars if they are used.
10431
10432 PR tree-optimization/47391
10433 * varpool.c (const_value_known_p): Return false if
10434 decl is volatile.
10435
10436 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
10437
10438 PR bootstrap/47215
10439 * config/i386/i386.c (ix86_local_alignment): Handle
10440 case for va_list_type_node is nil.
10441 (ix86_canonical_va_list_type): Likewise.
10442
10443 2011-01-21 Alan Modra <amodra@gmail.com>
10444
10445 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
10446 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
10447
10448 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10449
10450 * config/arm/arm.md (define_attr type): Rename f_load
10451 and f_store to f_fpa_load and f_fpa_store. Update.
10452 (write_conflict): Deal with rename fallout.
10453 (*push_fp_multi): Likewise.
10454 * config/arm/fpa.md (f_load): Use f_fpa_load.
10455 (f_store): Use f_fpa_store.
10456 (*movsf_fpa): Likewise.
10457 (*movdf_fpa): Likewise.
10458 (*movxf_fpa): Likewise.
10459 (*thumb2_movsf_fpa): Likewise.
10460 (*thumb2_movdf_fpa): Likewise.
10461 (*thumb2_movxf_fpa): Likewise.
10462 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
10463 f_loadd and f_stored.
10464 (*thumb2_movdi_vfp): Likewise.
10465 (*thumb2_movsf_vfp): Fix attribute to f_loads.
10466 (*thumb2_movsi_vfp): Likewise.
10467 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
10468 Use f_loads instead of f_load.
10469 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
10470
10471 2011-01-20 Anatoly Sokolov <aesok@post.ru>
10472
10473 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10474 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
10475 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10476 (xtensa_mode_dependent_address_p): New function.
10477 (constantpool_address_p): Make static. Change return type to bool.
10478 Change argument type to const_rtx. Use CONST_INT_P predicate.
10479
10480 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
10481
10482 PR debug/46583
10483 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
10484
10485 2011-01-20 Jakub Jelinek <jakub@redhat.com>
10486
10487 PR debug/47283
10488 * cfgexpand.c (expand_debug_expr): Instead of generating
10489 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
10490 etc. handling.
10491
10492 2011-01-20 Richard Guenther <rguenther@suse.de>
10493
10494 PR middle-end/47370
10495 * tree-inline.c (remap_gimple_op_r): Recurse manually for
10496 the pointer operand of MEM_REFs.
10497
10498 2011-01-20 Jakub Jelinek <jakub@redhat.com>
10499
10500 PR tree-optimization/46130
10501 * ipa-split.c (consider_split): If return_bb contains non-virtual
10502 PHIs other than for retval or if split_function would not adjust it,
10503 refuse to split.
10504
10505 2011-01-20 Richard Guenther <rguenther@suse.de>
10506
10507 PR tree-optimization/47167
10508 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
10509 Revert previous change, only avoid enumeral type changes.
10510
10511 2011-01-19 Mike Stump <mikestump@comcast.net>
10512
10513 * doc/tm.texi.in (BRANCH_COST): Englishify.
10514 * doc/tm.texi (BRANCH_COST): Likewise.
10515
10516 2011-01-19 Dodji Seketeli <dodji@redhat.com>
10517
10518 PR c++/47291
10519 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
10520 (gen_scheduled_generic_parms_dies): New functions.
10521 (gen_struct_or_union_type_die): Schedule template parameters DIEs
10522 generation for the end of CU compilation.
10523 (dwarf2out_finish): Generate template parameters DIEs here.
10524
10525 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
10526
10527 PR debug/46240
10528 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
10529 debug bind stmt on merge edges.
10530
10531 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
10532
10533 PR debug/47079
10534 PR debug/46724
10535 * function.c (instantiate_expr): Instantiate incoming rtl of
10536 implicit arguments, and recurse on VALUE_EXPRs.
10537 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
10538 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
10539
10540 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
10541
10542 * c-parser.c (c_parser_for_statement): Initialize
10543 collection_expression.
10544
10545 2011-01-19 Joseph Myers <joseph@codesourcery.com>
10546
10547 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
10548
10549 2011-01-19 Joseph Myers <joseph@codesourcery.com>
10550
10551 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
10552 (LINK_SHLIB_SPEC): Don't use %(link_path).
10553 (SUBTARGET_EXTRA_SPECS): Remove link_path.
10554
10555 2011-01-19 Joseph Myers <joseph@codesourcery.com>
10556
10557 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
10558 (NO_SHARED_LIB_SUPPORT): Remove.
10559 (LINK_SHLIB_SPEC): Remove one conditional definition.
10560
10561 2011-01-19 Joseph Myers <joseph@codesourcery.com>
10562
10563 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
10564 %{call_shared}.
10565 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
10566 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
10567 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
10568 %{call_shared} and conditionals on these options not being passed.
10569 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
10570 %{call_shared}.
10571
10572 2011-01-19 Jakub Jelinek <jakub@redhat.com>
10573
10574 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
10575 simplify.
10576
10577 * ipa-split.c: Spelling fixes.
10578
10579 2011-01-19 Richard Henderson <rth@redhat.com>
10580
10581 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
10582 (*mulsi3): Likewise.
10583
10584 * longlong.h [__mn10300__] (count_leading_zeros): New.
10585 [__mn10300__] (umul_ppmm, smul_ppmm): New.
10586 [__mn10300__] (add_ssaaaa, subddmmss): New.
10587 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
10588 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
10589
10590 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10591
10592 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
10593
10594 2011-01-19 Richard Henderson <rth@redhat.com>
10595
10596 * config/mn10300/mn10300.md (addsi3_flags): New.
10597 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
10598 (subsi3_flags, subc_internal, subdi3): New.
10599 (subdi3_internal, *subdi3_degenerate): New.
10600 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
10601
10602 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
10603 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
10604 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
10605 * config/mn10300/mn10300-protos.h: Update.
10606 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
10607 (return_ret): Likewise. Rename from return_internal_regs.
10608 (return_internal): Remove.
10609
10610 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
10611 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
10612 (mn10300_legitimate_constant_p): Likewise.
10613 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
10614 (mn10300_frame_size): New.
10615 (mn10300_expand_prologue): Use it.
10616 (mn10300_expand_epilogue): Likewise.
10617 (mn10300_initial_offset): Likewise.
10618 * config/mn10300/mn10300-protos.h: Update.
10619 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
10620 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
10621 (prologue, epilogue, return_internal): Tidy output code.
10622 (mn10300_store_multiple_operation, return): Likewise.
10623 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
10624 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
10625 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
10626 (load_pic, am33_load_pic): New.
10627 (mn10300_load_pic0, mn10300_load_pic1): New.
10628
10629 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
10630 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
10631 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
10632 (cc_flags_for_mode, cc_flags_for_code): New.
10633 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
10634 overflow flag is not valid. Validate that the flags we need
10635 for the comparison are valid.
10636 (mn10300_output_cmp): Remove.
10637 (mn10300_output_add): New.
10638 (mn10300_select_cc_mode): Use cc_flags_for_code.
10639 (mn10300_split_cbranch): New.
10640 (mn10300_match_ccmode): New.
10641 (mn10300_split_and_operand_count): New.
10642 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
10643 to the function.
10644 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
10645 (addsi3): ... here. Use mn10300_output_add.
10646 (*addsi3_flags): New.
10647 (*am33_subsi3, *mn10300_subsi3): Merge...
10648 (subsi3): ... here. Use attribute isa.
10649 (*subsi3_flags): New.
10650 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
10651 when possible.
10652 (*am33_andsi3, *mn10300_andsi3): Merge...
10653 (andsi3): ... here.
10654 (*andsi3_flags): New.
10655 (andsi3 splitters): New.
10656 (*am33_iorsi3, *mn10300_iorsi3): Merge...
10657 (iorsi3): ... here.
10658 (*iorsi3_flags): New.
10659 (*am33_xorsi3, *mn10300_xorsi3): Merge...
10660 (xorsi3): ... here.
10661 (*xorsi3_flags): New.
10662 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
10663 (one_cmplsi2): ... here.
10664 (*one_cmplsi2_flags): New.
10665 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
10666 instead of "dax" in constraints. Use mn10300_split_cbranch.
10667 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
10668 use matching constraints to eliminate a self-comparison.
10669 (*integer_conditional_branch): Rename from integer_conditional_branch.
10670 Use int_mode_flags to match CC_REG.
10671 (*cbranchsi4_btst, *btstsi): New.
10672 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
10673 mn10300_split_cbranch.
10674 (*am33_cmpsf): Rename from am33_cmpsf.
10675 (*float_conditional_branch): Rename from float_conditional_branch.
10676 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
10677 (zero_extendqisi2): ... here.
10678 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
10679 (zero_extendhisi2): ... here.
10680 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
10681 (extendqisi2): ... here.
10682 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
10683 (extendhisi2): ... here.
10684 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
10685 (ashlsi3): ... here.
10686 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
10687 (lshrsi3): ... here.
10688 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
10689 (ashrsi3): ... here.
10690 (consecutive add peephole): Remove.
10691 * config/mn10300/predicates.md (label_ref_operand): New.
10692 (int_mode_flags): New.
10693 (CCZN_comparison_operator): New.
10694
10695 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
10696 (throughput_42_latency_43): New reservation.
10697 (mulsidi3, umulsidi3): New expanders.
10698 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
10699 the MDR register to allocation; separately allocate the low and
10700 high parts of the DImode result.
10701 (umulsidi3_internal): Similarly.
10702 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
10703 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
10704 (udivsi3, umodsi3): Remove.
10705 (udivmodsi4, divmodsi4): New expanders.
10706 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
10707 (*divmodsi4): Simiarly.
10708 (ext_internal): New.
10709
10710 * config/mn10300/constraints.md ("z"): New constraint.
10711 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
10712 (FIXED_REGISTERS): Don't fix MDR.
10713 (CALL_USED_REGSITERS): Reformat nicely.
10714 (REG_ALLOC_ORDER): Add MDR.
10715 (enum regclass): Add MDR_REGS.
10716 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
10717 (IRA_COVER_CLASSES): Add MDR_REGS.
10718 (REGNO_REG_CLASS): Handle MDR_REG.
10719 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
10720 (mn10300_register_move_cost): Likewise.
10721 * config/mn10300/mn10300.md (MDR_REG): New.
10722 (*movsi_internal): Handle moves to/from MDR_REGS.
10723
10724 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
10725 POST_MODIFY.
10726 (mn10300_secondary_reload): Tidy combination reload classes.
10727 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
10728 addresses for AM33. Allow symbolic offsets for reg+imm.
10729 (mn10300_regno_in_class_p): New.
10730 (mn10300_legitimize_reload_address): New.
10731 * config/mn10300/mn10300.h (enum reg_class): Remove
10732 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
10733 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
10734 SP_OR_GENERAL_REGS.
10735 (REG_CLASS_NAMES): Update to match.
10736 (REG_CLASS_CONTENTS): Likewise.
10737 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
10738 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
10739 (REGNO_IN_RANGE_P): Remove.
10740 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
10741 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
10742 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
10743 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
10744 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
10745 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
10746 (REGNO_GENERAL_P): New.
10747 (HAVE_POST_MODIFY_DISP): New.
10748 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
10749 (LEGITIMIZE_RELOAD_ADDRESS): New.
10750 * config/mn10300/mn10300-protos.h: Update.
10751
10752 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
10753 DATA_REGS for AM33 stack-pointer destination.
10754 (mn10300_preferred_output_reload_class): Likewise.
10755 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
10756 into a form appropriate for ...
10757 (TARGET_SECONDARY_RELOAD): New.
10758 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
10759 * config/mn10300/mn10300-protos.h: Update.
10760 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
10761 reload_insi; use the "A" constraint for the scratch; handle AM33
10762 moves of sp to non-address registers.
10763
10764 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
10765 (*movqi_internal): ... here.
10766 (*am33_movhi, *mn10300_movhi): Merge into...
10767 (*movhi_internal): ... here.
10768 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
10769 as the source/destination of moves from/to SP.
10770 (movsf): Only allow for AM33-2.
10771 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
10772 any integer constant constraint. Only allow for AM33-2. Tidy
10773 all of the alternative outputs.
10774 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
10775 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
10776 for MN103.
10777 (udivsi3, umodsi3): New patterns for MN103 only.
10778
10779 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
10780
10781 * doc/tm.texi.in: Spell out that a lack of register class unions
10782 can lead to ICEs.
10783 * doc/tm.texi: Regenerate.
10784
10785 2011-01-19 Jakub Jelinek <jakub@redhat.com>
10786
10787 PR rtl-optimization/47337
10788 * dce.c (check_argument_store): New function.
10789 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
10790
10791 PR tree-optimization/47290
10792 * tree-eh.c (infinite_empty_loop_p): New function.
10793 (cleanup_empty_eh): Use it.
10794
10795 2011-01-18 Steve Ellcey <sje@cup.hp.com>
10796
10797 PR target/46997
10798 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
10799 (a64_expand_widen_sum): Ditto.
10800 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
10801 (vec_extract_evenodd_help): Ditto.
10802 (vec_extract_evenv4hi): Ditto.
10803 (vec_extract_oddv4hi): Ditto.
10804 (vec_extract_evenv2si): Ditto.
10805 (vec_extract_oddv2si): Ditto.
10806 (vec_extract_evenv2sf): Ditto.
10807 (vec_extract_oddv2sf): Ditto.
10808 (vec_pack_trunc_v4hi: Ditto.
10809 (vec_pack_trunc_v2si): Ditto.
10810 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
10811 (vec_interleave_highv8qi): Ditto.
10812 (mix1_r): Ditto.
10813 (vec_extract_oddv8qi): Ditto.
10814 (vec_interleave_lowv4hi): Ditto.
10815 (vec_interleave_highv4hi): Ditto.
10816 (vec_interleave_lowv2si): Ditto.
10817 (vec_interleave_highv2si): Ditto.
10818
10819 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10820
10821 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
10822 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
10823 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
10824 (pa_c_mode_for_suffix): New.
10825 (TARGET_EXPAND_BUILTIN): Define.
10826 (TARGET_C_MODE_FOR_SUFFIX): Define.
10827 (pa_builtins): Define.
10828 (pa_init_builtins): Register __float128 type and init new support
10829 builtins.
10830 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
10831 * config/pa/quadlib.c (_U_Qfcopysign): New.
10832
10833 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
10834
10835 PR middle-end/46894
10836 * explow.c (allocate_dynamic_stack_space): Do not assume more than
10837 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
10838 are defined.
10839
10840 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10841
10842 PR tree-optimization/47179
10843 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
10844 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
10845
10846 2011-01-18 Richard Guenther <rguenther@suse.de>
10847
10848 PR rtl-optimization/47216
10849 * emit-rtl.c: Include tree-flow.h.
10850 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
10851 of replicating it with different semantics.
10852 * Makefile.in (emit-rtl.o): Adjust.
10853
10854 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10855
10856 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
10857 (cortex_a9_dp): Handle neon types correctly.
10858
10859 2011-01-18 Jakub Jelinek <jakub@redhat.com>
10860
10861 PR rtl-optimization/47299
10862 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
10863 subtarget. Use normal multiplication if both operands are constants.
10864 * expmed.c (expand_widening_mult): Don't try to optimize constant
10865 multiplication if op0 has VOIDmode. Convert op1 constant to mode
10866 before using it.
10867
10868 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10869
10870 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
10871 spacing after 'e.g.', typos, comma, hyphenation.
10872
10873 2011-01-17 Richard Henderson <rth@redhat.com>
10874
10875 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
10876 (rx_restricted_mem_operand): New.
10877 (rx_shift_operand): Use register_operand.
10878 (rx_source_operand, rx_compare_operand): Likewise.
10879 * config/rx/rx.md (addsi3_flags): New expander.
10880 (adddi3): Rewrite as expander.
10881 (adc_internal, *adc_flags, adddi3_internal): New patterns.
10882 (subsi3_flags): New expander.
10883 (subdi3): Rewrite as expander.
10884 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
10885
10886 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
10887 (rx_init_builtins): Remove sat builtin.
10888 (rx_expand_builtin): Likewise.
10889 * config/rx/rx.md (ssaddsi3): New.
10890 (*sat): Rename from sat. Represent the CC_REG input.
10891
10892 * config/rx/predicates.md (rshift_operator): New.
10893 * config/rx/rx.c (rx_expand_insv): Remove.
10894 * config/rx/rx-protos.h: Update.
10895 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
10896 operand to the canonical position.
10897 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
10898 (*bitclr, *bitclr_in_memory): Similarly.
10899 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
10900 (insv): Retain the zero_extract in the expansion.
10901
10902 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
10903 (bswaphi2, bitinvert, revw): Likewise.
10904
10905 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
10906 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
10907 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
10908 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
10909 (bitset, bitset_in_memory): Likewise.
10910 (bitinvert, bitinvert_in_memory): Likewise.
10911 (bitclr, bitclr_in_memory): Likewise.
10912 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
10913 (rx_strend, rx_cmpstrn): Likewise.
10914 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
10915 (bitop peep2 patterns): Remove.
10916
10917 * config/rx/rx.c (rx_match_ccmode): New.
10918 * config/rx/rx-protos.h: Update.
10919 * config/rx/rx.md (abssi2): Clobber, don't set flags.
10920 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
10921 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
10922 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
10923 (fix_truncsfsi2, floatsisf2): Likewise.
10924 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
10925 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
10926 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
10927 (*subsi3_flags, *xorsi3_flags): New.
10928
10929 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
10930
10931 * config/rx/rx.c (rx_print_operand): Remove workaround for
10932 unsplit comparison operations.
10933
10934 * config/rx/rx.md (movsicc): Split after reload.
10935 (*movsicc): Merge *movsieq and *movsine via match_operator.
10936 (*stcc): New pattern.
10937
10938 * config/rx/rx.c (rx_float_compare_mode): Remove.
10939 * config/rx/rx.h (rx_float_compare_mode): Remove.
10940 * config/rx/rx.md (cstoresi4): Split after reload.
10941 (*sccc): New pattern.
10942
10943 * config/rx/predicates.md (label_ref_operand): New.
10944 (rx_z_comparison_operator): New.
10945 (rx_zs_comparison_operator): New.
10946 (rx_fp_comparison_operator): New.
10947 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
10948 Validate that the flags are set properly for the comparison.
10949 (rx_gen_cond_branch_template): Remove.
10950 (rx_cc_modes_compatible): Remove.
10951 (mode_from_flags): New.
10952 (flags_from_code): Rename from flags_needed_for_conditional.
10953 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
10954 (rx_select_cc_mode): Likewise.
10955 (rx_split_fp_compare): New.
10956 (rx_split_cbranch): New.
10957 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
10958 (*cbranchsi4): Use match_operator and rx_split_cbranch.
10959 (*cbranchsf4): Similarly.
10960 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
10961 match_operator and rx_split_cbranch.
10962 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
10963 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
10964 (*cmpsi): Rename from cmpsi.
10965 (*tstsi): Rename from tstsi.
10966 (*cmpsf): Rename from cmpsf; use CC_Fmode.
10967 (*conditional_branch): Rename from conditional_branch.
10968 (*reveresed_conditional_branch): Remove.
10969 (b<code>): Remove expander.
10970 * config/rx/rx-protos.h: Update.
10971
10972 * config/rx/rx.c (rx_compare_redundant): Remove.
10973 * config/rx/rx.md (cmpsi): Don't use it.
10974 * config/rx/rx-protos.h: Update.
10975
10976 * config/rx/rx-modes.def (CC_F): New mode.
10977 * config/rx/rx.c (rx_select_cc_mode): New.
10978 * config/rx/rx.h (SELECT_CC_MODE): Use it.
10979 * config/rx/rx-protos.h: Update.
10980
10981 2011-01-17 Richard Henderson <rth@redhat.com>
10982
10983 * except.c (dump_eh_tree): Fix stray ; after for statement.
10984
10985 2011-01-17 Richard Guenther <rguenther@suse.de>
10986
10987 PR tree-optimization/47313
10988 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
10989 handling before copying the body. Properly deal with
10990 by-reference result in SSA form.
10991
10992 2011-01-17 Ian Lance Taylor <iant@google.com>
10993
10994 PR target/47219
10995 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
10996 (struct_value_alias_set): Don't define.
10997 (sparc_option_override): Don't set sparc_sr_alias_set and
10998 struct_value_alias_set.
10999 (save_or_restore_regs): Use gen_frame_mem rather than calling
11000 set_mem_alias_set.
11001 (sparc_struct_value_rtx): Likewise.
11002
11003 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
11004
11005 PR target/47318
11006 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
11007 (_mm_maskstore_pd): Likewise.
11008 (_mm_maskload_ps): Likewise.
11009 (_mm_maskstore_ps): Likewise.
11010 (_mm256_maskload_pd): Change mask to __m256i.
11011 (_mm256_maskstore_pd): Likewise.
11012 (_mm256_maskload_ps): Likewise.
11013 (_mm256_maskstore_ps): Likewise.
11014
11015 * config/i386/i386-builtin-types.def: Updated.
11016 (ix86_expand_special_args_builtin): Likewise.
11017
11018 * config/i386/i386.c (bdesc_special_args): Update
11019 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
11020 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
11021 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
11022 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
11023
11024 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
11025 Use <avxpermvecmode> on mask register.
11026 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
11027
11028 2011-01-17 Olivier Hainque <hainque@adacore.com>
11029 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11030 Eric Botcazou <ebotcazou@adacore.com>
11031
11032 PR target/46655
11033 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
11034 if <= USHRT_MAX in 32-bit mode.
11035
11036 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11037
11038 * doc/install.texi (Configuration, Specific): Wrap long
11039 lines in examples. Allow line wrapping in long options
11040 and URLs where beneficial for PDF output.
11041
11042 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
11043
11044 * config/mips/mips.c (mips_classify_symbol): Don't return
11045 SYMBOL_PC_RELATIVE for nonlocal labels.
11046
11047 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
11048
11049 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
11050
11051 2011-01-15 Jan Hubicka <jh@suse.cz>
11052
11053 PR tree-optimization/47276
11054 * ipa.c (function_and_variable_visibility): Do not try to mark alias
11055 declarations as needed.
11056
11057 2011-01-15 Martin Jambor <mjambor@suse.cz>
11058
11059 * common.opt (fdevirtualize): New flag.
11060 * doc/invoke.texi (Option Summary): Document it.
11061 * opts.c (default_options_table): Add devirtualize flag.
11062 * ipa-prop.c (detect_type_change): Return immediately if
11063 devirtualize flag is not set.
11064 (detect_type_change_ssa): Likewise.
11065 (compute_known_type_jump_func): Likewise.
11066 (ipa_analyze_virtual_call_uses): Likewise.
11067
11068 2011-01-14 Martin Jambor <mjambor@suse.cz>
11069
11070 PR tree-optimization/45934
11071 PR tree-optimization/46302
11072 * ipa-prop.c (type_change_info): New type.
11073 (stmt_may_be_vtbl_ptr_store): New function.
11074 (check_stmt_for_type_change): Likewise.
11075 (detect_type_change): Likewise.
11076 (detect_type_change_ssa): Likewise.
11077 (compute_complex_assign_jump_func): Check for dynamic type change.
11078 (compute_complex_ancestor_jump_func): Likewise.
11079 (compute_known_type_jump_func): Likewise.
11080 (compute_scalar_jump_functions): Likewise.
11081 (ipa_analyze_virtual_call_uses): Likewise.
11082 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
11083
11084 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11085
11086 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
11087 * config/i386/i386.opt (msse5): New Alias.
11088
11089 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11090
11091 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11092 * config/sparc/linux64.h (CC1_SPEC): Likewise.
11093 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11094 * config/sparc/sparc.h (CC1_SPEC): Likewise.
11095
11096 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11097
11098 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
11099 -mcpu options.
11100 * config/sparc/linux64.h (CC1_SPEC): Likewise.
11101 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11102 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
11103 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
11104 Likewise.
11105 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
11106
11107 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11108
11109 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
11110
11111 2011-01-14 Mike Stump <mikestump@comcast.net>
11112
11113 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
11114 * config/fr30/fr30.md: Likweise
11115 (movsi_push): Likewise.
11116 (movsi_pop): Likewise.
11117 (enter_func): Likewise.
11118 * config/moxie/moxie.md (movsi_push): Likewise.
11119 (movsi_pop): Likewise.
11120
11121 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11122
11123 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
11124 %{no_archive} %{exact_version}.
11125 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
11126 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
11127 %{no_archive} %{exact_version}.
11128 * config/mips/openbsd.h (LINK_SPEC): Likewise.
11129 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
11130 * config/mips/vxworks.h: Likewise.
11131
11132 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11133
11134 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
11135
11136 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11137
11138 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
11139 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
11140
11141 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11142
11143 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
11144 -nodefaultlib.
11145
11146 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11147
11148 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
11149 for mcpu not cpu.
11150 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
11151 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
11152 not cpu.
11153 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
11154 Don't handle -shlib.
11155
11156 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11157
11158 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
11159 (CC1_SPEC): Don't handle -profile.
11160
11161 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11162
11163 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
11164 * config/mips/mips.h (CC1_SPEC): Likewise.
11165
11166 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11167
11168 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
11169 * config/mips/mips.h (CC1_SPEC): Likewise.
11170
11171 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11172
11173 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
11174 * config/m32r/linux.h (LINK_SPEC): Likewise.
11175 * config/mips/linux.h (LINK_SPEC): Likewise.
11176 * config/mips/linux64.h (LINK_SPEC): Likewise.
11177 * config/sparc/linux.h (LINK_SPEC): Likewise.
11178 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
11179 LINK_SPEC): Likewise.
11180 * config/xtensa/linux.h (LINK_SPEC): Likewise.
11181
11182 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11183
11184 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
11185 %{version:-v}.
11186 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
11187
11188 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11189
11190 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
11191 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
11192
11193 2011-01-14 Joseph Myers <joseph@codesourcery.com>
11194
11195 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
11196
11197 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11198
11199 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
11200 supports -Bstatic/-Bdynamic.
11201 * configure: Regenerate.
11202
11203 2011-01-14 Jan Hubicka <jh@suse.cz>
11204 Jack Howarth <howarth@bromo.med.uc.edu>
11205
11206 PR target/46037
11207 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
11208 when checking debug_info_level. Test write_symbols instead of
11209 debug_hooks->var_location when setting flag_var_tracking_uninit.
11210
11211 2011-01-14 Richard Guenther <rguenther@suse.de>
11212
11213 PR tree-optimization/47179
11214 * target.def (ref_may_alias_errno): New target hook.
11215 * targhooks.h (default_ref_may_alias_errno): Declare.
11216 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
11217 (default_ref_may_alias_errno): New function.
11218 * target.h (struct ao_ref_s): Declare.
11219 * tree-ssa-alias.c: Include target.h.
11220 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
11221 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
11222 (targhooks.o): Likewise.
11223 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
11224 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
11225
11226 2011-01-14 Richard Guenther <rguenther@suse.de>
11227
11228 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
11229
11230 2011-01-14 Richard Guenther <rguenther@suse.de>
11231
11232 PR tree-optimization/47280
11233 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
11234 return CFG changes.
11235 (tree_ssa_forward_propagate_single_use_vars): Deal with
11236 CFG changes from associate_plusminus.
11237
11238 2011-01-14 Richard Guenther <rguenther@suse.de>
11239
11240 PR middle-end/47281
11241 Revert
11242 2011-01-11 Richard Guenther <rguenther@suse.de>
11243
11244 PR tree-optimization/46076
11245 * tree-ssa.c (useless_type_conversion_p): Conversions from
11246 unprototyped to empty argument list function types are useless.
11247
11248 2011-01-14 Richard Guenther <rguenther@suse.de>
11249
11250 PR tree-optimization/47286
11251 * tree-ssa-structalias.c (new_var_info): Register variables are global.
11252
11253 2011-01-14 Martin Jambor <mjambor@suse.cz>
11254
11255 PR middle-end/46823
11256 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
11257
11258 2011-01-13 Anatoly Sokolov <aesok@post.ru>
11259
11260 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
11261 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11262 * config/xtensa/xtensa.c (xtensa_libcall_value,
11263 xtensa_function_value_regno_p): New functions.
11264 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11265
11266 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
11267
11268 PR c++/47213
11269 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
11270 PE specific hook.
11271 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
11272 New function prototype.
11273 * config/i386/winnt.c (i386_pe_assemble_visibility):
11274 Warn only if attribute was specified by user.
11275
11276 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
11277
11278 PR target/47251
11279 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
11280 floating point.
11281 (floatunsdidf2_fcfidu): Ditto.
11282
11283 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11284
11285 * config/s390/s390.c (print_operand_address): Replace 'error' with
11286 'output_operand_lossage'.
11287 (print_operand): Likewise.
11288
11289 2011-01-13 Jeff Law <law@redhat.com>
11290
11291 PR rtl-optimization/39077
11292 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
11293 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
11294 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
11295 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
11296 * gcse.c (prune_insertions_deletions): New function.
11297 (compute_pre_data): Use it.
11298
11299 2011-01-13 Dodji Seketeli <dodji@redhat.com>
11300
11301 PR debug/PR46973
11302 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
11303 static function.
11304 (prune_unused_types_mark): Use it.
11305
11306 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
11307
11308 PR rtl-optimization/45352
11309 * sel-sched.c: Update copyright years.
11310 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
11311 in the advancing loop when we have issued issue_rate insns.
11312
11313 2011-01-12 Richard Henderson <rth@redhat.com>
11314
11315 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
11316 (TARGET_MD_ASM_CLOBBERS): New.
11317
11318 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
11319 (TARGET_DELEGITIMIZE_ADDRESS): New.
11320
11321 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
11322 (clzsi2, *bsch): New patterns.
11323
11324 * config/mn10300/mn10300.md (INT): New mode iterator.
11325 (*mov<INT>_clr): New pattern, and peep2 to generate it.
11326
11327 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
11328 flag_split_wide_types.
11329
11330 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
11331 (mn10300_trampoline_init): Rewrite without a template, an immediate
11332 load and a direct branch.
11333 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
11334
11335 2011-01-12 Anatoly Sokolov <aesok@post.ru>
11336
11337 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11338 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
11339 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
11340 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11341
11342 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
11343
11344 PR debug/47209
11345 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
11346 of type.
11347
11348 2011-01-12 Jan Hubicka <jh@suse.cz>
11349
11350 PR driver/47244
11351 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
11352 (PLUGIN_COND_CLOSE): New macro.
11353 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
11354
11355 2011-01-12 Richard Guenther <rguenther@suse.de>
11356
11357 PR lto/47259
11358 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
11359 register variables in a MEM_REF.
11360
11361 2011-01-12 Joseph Myers <joseph@codesourcery.com>
11362
11363 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
11364 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
11365 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
11366 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11367 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11368 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
11369 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
11370 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
11371 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
11372 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
11373 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
11374 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
11375 * config/gnu-user.h: New. Copied from linux.h.
11376 (LINUX_TARGET_STARTFILE_SPEC): Rename to
11377 GNU_USER_TARGET_STARTFILE_SPEC.
11378 (LINUX_TARGET_ENDFILE_SPEC): Rename to
11379 GNU_USER_TARGET_ENDFILE_SPEC.
11380 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
11381 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
11382 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
11383 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
11384 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
11385 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
11386 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
11387 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
11388 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
11389 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
11390 * config/arm/linux-eabi.h (CC1_SPEC): Use
11391 GNU_USER_TARGET_CC1_SPEC.
11392 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
11393 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
11394 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
11395 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
11396 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
11397 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
11398 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
11399 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
11400
11401 2011-01-12 Richard Guenther <rguenther@suse.de>
11402
11403 PR other/46946
11404 * doc/invoke.texi (ffast-math): Document it is turned on
11405 with -Ofast.
11406
11407 2011-01-12 Jan Hubicka <jh@suse.cz>
11408
11409 PR tree-optimization/47233
11410 * opts.c (common_handle_option): Disable ipa-reference with profile
11411 feedback.
11412
11413 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
11414
11415 * c-parser.c (c_parser_objc_at_property_declaration): Improved
11416 error message.
11417
11418 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
11419
11420 * c-parser.c (c_lex_one_token): Updated and reindented some
11421 comments. No changes in code.
11422
11423 2011-01-11 Ian Lance Taylor <iant@google.com>
11424
11425 * godump.c (go_output_var): Don't output the variable if there is
11426 already a type with the same name.
11427
11428 2011-01-11 Ian Lance Taylor <iant@google.com>
11429
11430 * godump.c (go_format_type): Don't generate float80.
11431
11432 2011-01-11 Richard Henderson <rth@redhat.com>
11433
11434 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
11435 declaration. Rewrite for both speed and size.
11436 (mn10300_address_cost_1): Remove.
11437 (mn10300_register_move_cost): New.
11438 (mn10300_memory_move_cost): New.
11439 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
11440 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
11441 extensions, shifts, BSWAP, CLZ.
11442 (mn10300_wide_const_load_uses_clr): Remove.
11443 (TARGET_REGISTER_MOVE_COST): New.
11444 (TARGET_MEMORY_MOVE_COST): New.
11445 * config/mn10300/mn10300-protos.h: Update.
11446 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
11447
11448 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
11449 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
11450 * config/mn10300/mn10300-protos.h: Update.
11451 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
11452 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
11453 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
11454 (*test_int_bitfield, *test_byte_bitfield): Remove.
11455 (*bit_test, *subreg_bit_test): Remove.
11456 * config/mn10300/predicates.md (const_8bit_operand): Remove.
11457
11458 * config/mn10300/constraints.md ("c"): Rename from "A".
11459 ("A", "D"): New constraint letters.
11460 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
11461 (fmssf4, fnmasf4, fnmssf4): Likewise.
11462
11463 * config/mn10300/mn10300.md (isa): New attribute.
11464 (enabled): New attribute.
11465
11466 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
11467 (abssf2, negsf2): Define only for hardware fp.
11468 (sqrtsf2): Reformat.
11469 (addsf3, subsf3, mulsf3): Merge expander and insn.
11470
11471 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
11472 (DEBUGGER_AUTO_OFFSET): Remove.
11473 (DEBUGGER_ARG_OFFSET): Remove.
11474
11475 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
11476 Emit register stores with the same offsets as the hardware.
11477 (mn10300_store_multiple_operation): Don't check that the register
11478 save offsets are monotonic.
11479 * config/mn10300/mn10300-protos.h: Update.
11480
11481 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
11482
11483 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
11484 in terms of the value on the stack, not the MDR register.
11485
11486 2011-01-11 Jan Hubicka <jh@suse.cz>
11487
11488 PR lto/45721
11489 PR lto/45375
11490 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
11491 (symbol_alias_set_destroy, symbol_alias_set_contains,
11492 propagate_aliases_backward): Declare.
11493 * lto-streamer-out.c (struct sets): New sturcture.
11494 (trivally_defined_alias): New function.
11495 (output_alias_pair_p): Rewrite.
11496 (output_unreferenced_globals): Fix output of alias pairs.
11497 (produce_symtab): Likewise.
11498 * ipa.c (function_and_variable_visibility): Set weak alias destination
11499 as needed in lto.
11500 * varasm.c (symbol_alias_set_t): Remove.
11501 (symbol_alias_set_destroy): Export.
11502 (propagate_aliases_forward, propagate_aliases_backward): New functions
11503 based on ...
11504 (compute_visible_aliases): ... this one; remove.
11505 (trivially_visible_alias): New
11506 (trivially_defined_alias): New.
11507 (remove_unreachable_alias_pairs): Rewrite.
11508 (finish_aliases_1): Reorganize code checking if alias is defined.
11509 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
11510 in LTO mode.
11511
11512 2011-01-11 Richard Guenther <rguenther@suse.de>
11513
11514 PR tree-optimization/46076
11515 * tree-ssa.c (useless_type_conversion_p): Conversions from
11516 unprototyped to empty argument list function types are useless.
11517
11518 2011-01-11 Richard Guenther <rguenther@suse.de>
11519
11520 PR middle-end/45235
11521 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
11522 volatile MEMs as MEM_READONLY_P.
11523
11524 2011-01-11 Richard Guenther <rguenther@suse.de>
11525
11526 PR tree-optimization/47239
11527 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
11528
11529 2011-01-11 Jeff Law <law@redhat.com>
11530
11531 PR tree-optimization/47086
11532 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
11533 IVs from statements that might throw.
11534
11535 2011-01-10 Jan Hubicka <jh@suse.cz>
11536
11537 PR lto/45375
11538 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
11539
11540 2011-01-10 Jan Hubicka <jh@suse.cz>
11541
11542 PR lto/45375
11543 * profile.c (read_profile_edge_counts): Ignore profile inconistency
11544 when correcting profile.
11545
11546 2011-01-10 Jan Hubicka <jh@suse.cz>
11547
11548 PR lto/46083
11549 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
11550 DECL_FINI_PRIORITY.
11551 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
11552 Restore DECL_FINI_PRIORITY.
11553
11554 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11555
11556 * doc/gimple.texi: Fix quoting of multi-word return values in
11557 @deftypefn statements. Ensure presence of return value. Wrap
11558 overlong @deftypefn lines.
11559 (is_gimple_operand, is_gimple_min_invariant_address): Remove
11560 descriptions of removed functions.
11561 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
11562 of multi-word return value in @deftypefn statement.
11563
11564 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11565
11566 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
11567 (Conditional Expressions, Logical Operators)
11568 (Statement and operand traversals): Do not indent smallexample
11569 code. Fix duplicate function argument in example.
11570
11571 2011-01-10 Jeff Law <law@redhat.com>
11572
11573 PR tree-optimization/47141
11574 * ipa-split.c (split_function): Handle case where we are
11575 returning a value and the return block has a virtual operand phi.
11576
11577 2011-01-10 Jan Hubicka <jh@suse.cz>
11578
11579 PR tree-optimization/47234
11580 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
11581 (pass_feedback_split_functions): Declare.
11582 * passes.c (init_optimization_passes): Add ipa-split as subpass of
11583 tree-profile.
11584 * ipa-split.c (gate_split_functions): Update comments; disable
11585 split-functions for profile_arc_flag and branch_probabilities.
11586 (gate_feedback_split_functions): New function.
11587 (execute_feedback_split_functions): New function.
11588 (pass_feedback_split_functions): New global var.
11589
11590 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
11591
11592 PR lto/46760
11593 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
11594 calling gimple_call_set_cannot_inline.
11595
11596 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
11597
11598 * config/darwin-sections.def: Remove unused section.
11599
11600 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
11601
11602 PR c++/47218
11603 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
11604
11605 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
11606
11607 PR objc/47232
11608 * c-parser.c (c_parser_declaration_or_fndef): Improved
11609 error message.
11610
11611 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
11612
11613 * config/i386/winnt.c (i386_pe_start_function): Make sure
11614 to switch back to function's section.
11615
11616 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
11617
11618 PR gcc/46902
11619 PR testsuite/46912
11620 * plugin.c: Move include of dlfcn.h from here...
11621 * system.h: ... to here.
11622
11623 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11624
11625 * doc/cpp.texi (C++ Named Operators): Fix markup for header
11626 file name.
11627 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
11628 two extra empty pages in PDF output.
11629
11630 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
11631
11632 PR objc/47078
11633 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
11634 for error recovery purposes behave as if it was not specified so
11635 that the default type is usd.
11636
11637 2011-01-07 Jan Hubicka <jh@suse.cz>
11638
11639 PR tree-optmization/46469
11640 * ipa.c (function_and_variable_visibility): Clear needed flags on
11641 nodes with external decls; handle weakrefs merging correctly.
11642
11643 2011-01-07 Joseph Myers <joseph@codesourcery.com>
11644
11645 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
11646 not false.
11647
11648 2011-01-07 Jan Hubicka <jh@suse.cz>
11649
11650 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
11651 and no longer claim that gold is required for linker plugin.
11652 * configure: Regenerate.
11653 * gcc.c (PLUGIN_COND): New macro.
11654 (LINK_COMMAND_SPEC): Use it.
11655 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
11656 * config.in (HAVE_LTO_PLUGIN): New.
11657 * configure.ac (--with-lto-plugin): New parameter; autodetect
11658 HAVE_LTO_PLUGIN.
11659
11660 2011-01-07 Jan Hubicka <jh@suse.cz>
11661
11662 PR tree-optimization/46367
11663 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
11664 when we can update original.
11665 (cgraph_mark_inline_edge): Sanity check.
11666 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
11667
11668 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11669
11670 * config/spu/spu.h (ASM_COMMENT_START): Define.
11671
11672 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
11673
11674 PR driver/42445
11675 * gcc.c (%>S): New.
11676 (SWITCH_KEEP_FOR_GCC): Likewise.
11677 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
11678 (do_spec_1): Handle "%>".
11679
11680 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
11681
11682 2011-01-07 Jakub Jelinek <jakub@redhat.com>
11683
11684 PR target/47201
11685 * config/i386/i386.c (ix86_delegitimize_address): If
11686 simplify_gen_subreg fails, return orig_x.
11687
11688 PR bootstrap/47187
11689 * value-prof.c (gimple_stringop_fixed_value): Handle
11690 lhs of the call properly.
11691
11692 2011-01-07 Jan Hubicka <jh@suse.cz>
11693
11694 PR lto/45375
11695 * lto-opt.c (lto_reissue_options): Set flag_shlib.
11696
11697 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
11698
11699 * target.def (function_switched_text_sections): New hook.
11700 * doc/tm.texi: Regenerated.
11701 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11702 * final.c (default_function_switched_text_sections): New.
11703 (final_scan_insn): Call function_switched_text_sections when a
11704 mid-function section change occurs.
11705 * output.h (default_function_switched_text_sections): Declare.
11706 * config/darwin-protos.h (darwin_function_switched_text_sections):
11707 Likewise.
11708 * config/darwin.c (darwin_function_switched_text_sections): New.
11709 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11710
11711 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
11712
11713 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
11714 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
11715 the secondary code fragment when outputting for DWARF == 2.
11716
11717 2011-01-07 Anatoly Sokolov <aesok@post.ru>
11718
11719 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11720 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
11721 Remove.
11722 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
11723 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11724
11725 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
11726
11727 PR debug/46704
11728 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
11729 when it is not empty.
11730
11731 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
11732
11733 Bobcat Enablement
11734 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
11735 (case ${target}): Add btver1.
11736 * config/i386/driver-i386.c (host_detect_local_cpu): Let
11737 -march=native recognize btver1 processors.
11738 * config/i386/i386-c.c (ix86_target_macros_internal): Add
11739 btver1 def_and_undef
11740 * config/i386/i386.c (struct processor_costs btver1_cost): New
11741 btver1 cost table.
11742 (m_BTVER1): New definition.
11743 (m_AMD_MULTIPLE): Includes m_BTVER1.
11744 (initial_ix86_tune_features): Add btver1 tune.
11745 (processor_target_table): Add btver1 entry.
11746 (static const char *const cpu_names): Add btver1 entry.
11747 (software_prefetching_beneficial_p): Add btver1.
11748 (ix86_option_override_internal): Add btver1 instruction sets.
11749 (ix86_issue_rate): Add btver1.
11750 (ix86_adjust_cost): Add btver1.
11751 * config/i386/i386.h (TARGET_BTVER1): New definition.
11752 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
11753 (enum processor_type): Add PROCESSOR_BTVER1.
11754 * config/i386/i386.md (define_attr "cpu"): Add btver1.
11755
11756 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11757
11758 PR target/43309
11759 * config/i386/i386.c (legitimize_tls_address)
11760 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
11761 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
11762 (tls_initial_exec_64_sun): New pattern.
11763
11764 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11765
11766 * doc/invoke.texi (Overall Options): Improve wording and markup
11767 of the description of -wrapper.
11768
11769 2011-01-06 Joseph Myers <joseph@codesourcery.com>
11770
11771 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
11772 rdynamic, threads): New Driver options.
11773
11774 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11775
11776 PR target/38118
11777 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
11778 if coming from .tdata.
11779 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11780
11781 2011-01-06 Jan Hubicka <jh@suse.cz>
11782
11783 PR lto/47188
11784 * collect2.c (main): Do not enable LTOmode when plugin is active.
11785
11786 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11787
11788 PR other/45915
11789 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
11790 --version output if supported.
11791 * configure: Regenerate.
11792
11793 2011-01-06 Joseph Myers <joseph@codesourcery.com>
11794
11795 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
11796 Driver options.
11797
11798 2011-01-06 Jakub Jelinek <jakub@redhat.com>
11799
11800 PR c/47150
11801 * c-convert.c (convert): When converting a complex expression
11802 other than COMPLEX_EXPR to a different complex type, ensure
11803 c_save_expr is called instead of save_expr, unless in_late_binary_op.
11804 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
11805 when converting COMPLEX_TYPE.
11806
11807 2011-01-06 Ira Rosen <irar@il.ibm.com>
11808
11809 PR tree-optimization/47139
11810 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
11811 only the last reduction value is used outside the loop. Update
11812 documentation.
11813
11814 2011-01-05 Joseph Myers <joseph@codesourcery.com>
11815
11816 * config/rtems.opt: New.
11817 * config.gcc (*-*-rtems*): Use rtems.opt.
11818
11819 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
11820
11821 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
11822 processors do not support 3DNow instructions.
11823
11824 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11825
11826 * config/spu/spu.c (spu_option_override): Set parameter
11827 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
11828
11829 2011-01-05 Jan Hubicka <jh@suse.cz>
11830
11831 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
11832 at the command line.
11833
11834 2011-01-05 Martin Jambor <mjambor@suse.cz>
11835
11836 PR lto/47162
11837 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
11838 deltas on streamed outgoing edges.
11839 (output_node_opt_summary): Output info for outgoing edges only when
11840 the node is in new parameter set.
11841 (output_cgraph_opt_summary): New parameter set, passed to the two
11842 aforementioned functions. Update its forward declaration and its
11843 callee too.
11844
11845 2011-01-05 Tom Tromey <tromey@redhat.com>
11846
11847 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
11848 operator to c_finish_omp_atomic.
11849 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
11850 (build_unary_op): Update.
11851 (build_modify_expr): Update.
11852 (build_asm_expr): Update.
11853
11854 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11855
11856 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
11857 newly inserted insns.
11858 (pad_bb): Likewise.
11859 (spu_emit_branch_hint): Likewise.
11860 (insert_hbrp_for_ilb_runout): Likewise.
11861 (spu_machine_dependent_reorg): Call df_finish_pass after
11862 schedule_insns returns.
11863
11864 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11865
11866 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
11867
11868 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
11869
11870 PR tree-optimization/47005
11871 * tree-sra.c (struct access): Add 'non_addressable' bit.
11872 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
11873 (decide_one_param_reduction): Return 0 if the parameter is passed by
11874 reference and one of the accesses in the group is non_addressable.
11875
11876 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
11877
11878 PR tree-optimization/47056
11879 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
11880 (mark_load): Likewise. Handle FUNCTION_DECL specially.
11881 (mark_store): Likewise. Pass STMT to ipa_record_reference.
11882
11883 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
11884
11885 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
11886 initializer. Skip view conversions from aggregate types.
11887
11888 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
11889
11890 PR bootstrap/47055
11891 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
11892
11893 2011-01-04 Philipp Thomas <pth@suse.de>
11894
11895 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
11896 obvious typo.
11897
11898 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11899
11900 * function.c (thread_prologue_and_epilogue_insns): Do not crash
11901 on empty epilogue sequences.
11902
11903 2011-01-04 Joseph Myers <joseph@codesourcery.com>
11904
11905 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
11906 non-static): New Driver options.
11907
11908 2011-01-04 Jie Zhang <jie@codesourcery.com>
11909
11910 PR driver/47137
11911 * gcc.c (default_compilers[]): Set combinable field to 0
11912 for all assembly languages.
11913
11914 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
11915
11916 * config/mips/loongson3a.md: New file.
11917 * config/mips/mips.md: Include loongson3a.md.
11918 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
11919 TUNE_LOONGSON_3A.
11920
11921 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
11922
11923 PR middle-end/47017
11924 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
11925 instead of convert_memory_address_addr_space on the base expression.
11926
11927 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11928
11929 * config/spu/spu.c (spu_option_override): Update error text
11930 for bad -march= / -mtune= values.
11931
11932 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11933
11934 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
11935 if branch-hint optimization will be performed.
11936
11937 2011-01-03 Jakub Jelinek <jakub@redhat.com>
11938
11939 PR tree-optimization/47148
11940 * ipa-split.c (split_function): Convert arguments to
11941 DECL_ARG_TYPE if possible.
11942
11943 PR tree-optimization/47155
11944 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
11945 when computing uns.
11946
11947 PR rtl-optimization/47157
11948 * combine.c (try_combine): If undobuf.other_insn becomes
11949 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
11950 and set *new_direct_jump_p too.
11951
11952 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
11953
11954 PR tree-optimization/47021
11955 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
11956
11957 2011-01-03 Jakub Jelinek <jakub@redhat.com>
11958
11959 * gcc.c (process_command): Update copyright notice dates.
11960 * gcov.c (print_version): Likewise.
11961 * gcov-dump.c (print_version): Likewise.
11962 * mips-tfile.c (main): Likewise.
11963 * mips-tdump.c (main): Likewise.
11964
11965 2011-01-03 Martin Jambor <mjambor@suse.cz>
11966
11967 PR tree-optimization/46801
11968 * tree-sra.c (type_internals_preclude_sra_p): Check whether
11969 aggregate fields start at byte boundary instead of the bit-field flag.
11970
11971 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
11972
11973 PR driver/47137
11974 * gcc.c (main): Revert revision 168407.
11975
11976 2011-01-03 Martin Jambor <mjambor@suse.cz>
11977
11978 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
11979
11980 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11981
11982 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
11983 vector optab to expand vector/scalar shift, update gimple to vector.
11984
11985 2011-01-03 Martin Jambor <mjambor@suse.cz>
11986
11987 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
11988 a thunk.
11989
11990 2011-01-03 Martin Jambor <mjambor@suse.cz>
11991
11992 PR tree-optimization/46984
11993 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
11994 HOST_WIDE_INT.
11995 (cgraph_create_indirect_edge): Fixed line length.
11996 (cgraph_indirect_call_info): Declare.
11997 (cgraph_make_edge_direct) Update declaration.
11998 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
11999 (cgraph_create_indirect_edge): Use it.
12000 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
12001 callees.
12002 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
12003 the new thunk_delta representation.
12004 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
12005 HOST_WIDE_INT.
12006 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
12007 (ipa_read_indirect_edge_info): Likewise.
12008 * lto-cgraph.c (output_edge_opt_summary): New function.
12009 (output_node_opt_summary): Call it on all outgoing edges.
12010 (input_edge_opt_summary): New function.
12011 (input_node_opt_summary): Call it on all outgoing edges.
12012
12013 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
12014
12015 PR driver/47137
12016 * gcc.c (main): Don't check have_o when settting combine_inputs.
12017
12018 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
12019
12020 * regrename.c: Add general comment describing the pass.
12021 (struct du_head): Remove 'length' field.
12022 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
12023 (regrename_optimize): Do not sort chains. Rework comments, add others.
12024 Force renaming to the preferred class (if any) in the first pass and do
12025 not consider registers that belong to it in the second pass.
12026 (create_new_chain): Do not set 'length' field.
12027 (scan_rtx_reg): Likewise.
12028
12029 2011-01-02 Jakub Jelinek <jakub@redhat.com>
12030
12031 PR tree-optimization/47140
12032 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
12033 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
12034 to bit_value_binop.
12035
12036 PR rtl-optimization/47028
12037 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
12038 parm_birth_insn instead of at the beginning of first bb.
12039
12040 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
12041
12042 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
12043 Remove the word "see" before "@pxref".
12044 * doc/rtl.texi: Remove the word "see" before "@pxref".
12045
12046 2011-01-01 Jan Hubicka <jh@suse.cz>
12047
12048 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
12049 memory.
12050
12051 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
12052
12053 PR target/38662
12054 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
12055
12056 \f
12057 Copyright (C) 2011 Free Software Foundation, Inc.
12058
12059 Copying and distribution of this file, with or without modification,
12060 are permitted in any medium without royalty provided the copyright
12061 notice and this notice are preserved.