OSDN Git Service

2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2
3         PR tree-optimization/46728
4         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5         (build_and_insert_binop): New.
6         (gimple_expand_builtin_pow): Reorder args for
7         build_and_insert_call; use build_and_insert_binop; add more
8         optimizations for fractional exponents.
9         
10 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
11
12         PR bootstrap/49190
13
14         Revert:
15         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
16
17         * tree.h (struct tree_identifier): Inherit from tree_typed, not
18         tree_common.
19         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
20         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
21         TS_BASE instead of TS_COMMON.
22         * varasm.c (assemble_name): Remove assert.
23
24 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
25
26         * config.gcc: Keep obselete list sorted.
27
28 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
29             Eric Botcazou  <ebotcazou@adacore.com>
30
31         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
32         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
33         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
34         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
35         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
36
37 2011-05-30  Richard Guenther  <rguenther@suse.de>
38
39         * gimple.c (gimple_types_compatible_p_1): Compare record
40         and union type members properly.
41
42 2011-05-30  Richard Guenther  <rguenther@suse.de>
43
44         PR tree-optimization/49210
45         * ipa-split.c (split_function): Care for the case where the
46         call result is not trivially convertible to the result holding
47         variable.
48
49 2011-05-30  Richard Guenther  <rguenther@suse.de>
50
51         PR tree-optimization/49218
52         * tree-vrp.c (adjust_range_with_scev): Properly check whether
53         overflow occured.
54
55 2011-05-30  Richard Guenther  <rguenther@suse.de>
56
57         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
58         New function split out from ...
59         (forward_propagate_into_gimple_cond): ... here.  Adjust.
60         (forward_propagate_into_cond): Likewise.
61         (forward_propagate_comparison): Also propagate into
62         comparisons on assignment RHS.  Change return value to
63         behave similar to forward_propagate_into_cond.
64         (tree_ssa_forward_propagate_single_use_vars): Handle
65         strict-overflow warnings properly for forward_propagate_comparison.
66
67 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
68
69         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
70         from plugin linker.
71         * configure: Regenerate.
72
73 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
74
75         PR tree-optimization/49199
76         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
77         non-reduction operands are either defined in the loop or
78         by induction.
79
80 2011-05-29  Xinliang David Li  <davidxl@google.com>
81
82         * opts-global.c (handle_common_deferred_options): Handle new options.
83         * passes.c (register_one_dump_file): Call register_pass_name.
84         (execute_one_pass): Check explicit enable/disable flag.
85         (passr_hash): New function.
86         (passr_eq): Ditto.
87         (register_pass_name): Ditto.
88         (get_pass_by_name): Ditto.
89         (pass_hash): Ditto.
90         (pass_eq): Ditto.
91         (enable_pass): Ditto.
92         (disable_pass): Ditto.
93         (is_pass_explicitly_enabled_or_disabled): Ditto.
94
95 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/i386/i386.md (*movoi_internal_avx): Use
98         standard_sse_constant_opcode for alternative 0.
99         (*movti_internal_sse): Ditto.
100         (*movti_internal_rex64): Use standard_sse_constant_opcode for
101         alternative 2.
102         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
103         sselog1 type moves.
104         (*movsi_internal): Ditto.
105         (*movdi_internal): Ditto.  Add ssecvt type moves.
106
107 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
108
109         PR target/48830
110         * rtlanal.c (simplify_subreg_regno): Adjust comment.
111
112 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
113
114         PR rtl-optimization/49095
115         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
116         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
117
118 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
119
120         PR target/43995
121         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
122         recurse_p argument.  Only follow register copies if it is set,
123         and prevent mips_find_pic_call_symbol from recursing.
124         (mips_find_pic_call_symbol): Add a recurse_p argument.
125         Pass it to mips_pic_call_symbol_from_set.
126         (mips_annotate_pic_calls): Update accordingly.
127
128 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
129
130         * emit-rtl.c (try_split): Use a loop to search for
131         NOTE_INSN_CALL_ARG_LOCATIONs.
132
133 2011-05-29  Richard Guenther  <rguenther@suse.de>
134
135         PR tree-optimization/49217
136         * ipa-pure-const.c (propagate_pure_const): Fix typos.
137
138 2011-05-28  Jan Hubicka  <jh@suse.cz>
139
140         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
141         length.
142         (string_slot_free): Remove
143         (create_output_block): Initialize obstack.
144         (destroy_output_block): Free obstack.
145         (lto_string_index): Add PERSISTENT parameter; do not duplicate
146         the string unless it needs to be added into the hash.
147         (lto_output_string_with_length): Add persistent attribute;
148         handle NULL strings.
149         (lto_output_string): Add PERSISTENT parameter.
150         (output_string_cst, output_identifier): Simplify.
151         (lto_output_location_bitpack): Update.
152         (lto_output_builtin_tree): Update.
153         * lto-streamer.h (struct output_block): Add obstack.
154         (lto_output_string, lto_output_string_with_length): Remove
155         declarations; functions are static now.
156
157 2011-05-28  Jan Hubicka  <jh@suse.cz>
158
159         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
160         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
161         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
162         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
163         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
164         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
165         unpack_ts_decl_with_vis_value_fields,
166         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
167         lto_get_builtin_tree): Use enum and variable length i/o.
168         * basic-block.h (profile_status_d): Add PROFILE_LAST.
169         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
170         New functions.
171         (bp_pack_enum, bp_unpack_enum): New macros.
172
173 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
174
175         * genrecog.c: Remove redundant forward declarations.
176
177 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
178
179         * config.gcc: Deprecate mips*-*-openbsd*.
180
181 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
182
183         PR bootstrap/49195
184         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
185         for match_op_dup.
186
187 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
188
189         PR middle-end/48981
190         * gengtype.c (vec_prefix_type): New function.
191         (note_def_vec): Use vec_prefix_type and change the length
192         attribute to be based on the prefix.
193         * vec.c: Include coretypes.h before vec.h.
194         (struct vec_prefix): Remove.
195         (vec_gc_p_reserve): Change the offsetof to sizeof.
196         (vec_gc_p_reserve_exact): Likewise.
197         (vec_heap_p_reserve): Likewise.
198         (vec_heap_p_reserve_exact): Likewise.
199         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
200         (vec_stack_p_reserve): Change the offsetof to sizeof.
201         (vec_stack_p_reserve_exact): Likewise.
202         * vec.h (struct vec_prefix): New struct definition.
203         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
204         (VEC_T_GTY(T,B)): Likewise.
205         (DEF_VEC_FUNC_P(T)): Use prefix field.
206         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
207         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
208
209 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
210
211         PR tree-optimization/46728
212         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
213         (powi_as_mults): Add gimple_set_location.
214         (build_and_insert_call): New.
215         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
216         0.5, 0.25, 0.75, 1./3., or 1./6.
217
218 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
219
220         * doc/contrib.texi: Update copyright years.
221         (Contributors): Add Zdenek Sojka.
222
223 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
224
225         * c-decl.c (c_push_function_context): Copy the current statement
226         list stack.
227         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
228         (finish_struct): Call building_stmt_list_p instead of checking
229         cur_stmt_list.
230         * c-parser.c (c_parser_postfix_expression): Likewise.
231         * c-typeck.c (c_end_compound_stmt): Likewise.
232         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
233         * tree-iterator.c (stmt_list_cache): Change to a VEC.
234         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
235         (free_stmt_list): Likewise.
236         * tree.h (struct tree_statement_list): Include typed_tree instead
237         of tree_common.
238         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
239         as TS_TYPED instead of TS_COMMON.
240
241 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
242             Uros Bizjak <ubizjak@gmail.com>
243
244         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
245         (HAVE_AS_IX86_TLSGDPTL): Define.
246         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
247         (HAVE_AS_IX86_TLSLDMPLT): Define.
248         * configure: Regenerate.
249         * config.in: Regenerate.
250         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
251         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
252         TARGET_SUN_TLS, use @tlsgdplt or @plt.
253         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
254         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
255         @tlsldmplt or @plt.
256         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
257
258 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
259
260         * sched-int.h (struct _haifa_deps_insn_data): New members cond
261         and reverse_cond.
262         (INSN_COND, INSN_REVERSE_COND): New macros.
263         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
264         once.
265         (sched_get_condition_with_rev): Cache the results, and look them up
266         if possible.
267         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
268         are clobbered by the current insn.
269         * target.def (exposed_pipline): New sched data hook.
270         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
271         * doc/tm.texi: Regenerate.
272
273 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
274
275         PR tree-optimization/49170
276         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
277         sincos or cexp.
278
279 2011-05-27  Richard Guenther  <rguenther@suse.de>
280
281         PR middle-end/49189
282         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
283         of comparisons.
284
285 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
286
287         * haifa-sched.c (sched_scan_info): Remove.
288         (schedule_block): Call sched_extend_luids rather than sched_init_luids
289         with NULL args.
290         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
291         Remove functions.
292         (sched_scan): Remove.
293         (sched_extend_luids): Renamed from luids_extend_insn and no longer
294         static.  All callers changed.
295         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
296         static.  All callers changed.
297         (sched_init_luids): Remove all arguments except the first.  All
298         callers changed.  Don't use sched_scan.
299         (haifa_init_h_i_d): Likewise.
300         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
301         manually rather than using sched_init_luids.  Likewise with
302         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
303         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
304         rather than sched_init_luids with NULL args.
305         * sel-sched-ir.c (new_insns): Remove variable.
306         (sched_scan): New static function, previously in haifa-sched.c.  Remove
307         all arguments but the first two; all callers changed.
308         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
309         rather than sched_init_luids.
310         (sel_init_bbs): Remove second argument.  All callers changed.
311         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
312         with NULL arguments.
313         (create_insn_rtx_from_pattern): Likewise.
314         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
315         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
316         (sched_init_insn_luid, sched_extend_luids): Declare.
317         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
318         declarations.
319
320 2011-05-27  Richard Guenther  <rguenther@suse.de>
321
322         PR middle-end/49177
323         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
324         A CMP B ? (T) true : (T) false for non-integral types T again.
325
326 2011-05-27  Jan Hubicka  <jh@suse.cz>
327
328         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
329         so 0 means NULL string.
330         (lto_output_string_with_length): ... here.
331         (lto_output_string, output_string_cst, output_identifier): Update
332         handling of NULL strings.
333         (lto_output_location_bitpack): New function.
334         (lto_output_location): Use it.
335         (lto_output_tree_ref): Use output_record_start.
336         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
337         len values.
338         * lto-streamer-in.c (string_for_index): Break out from ...; offset
339         values by 1.
340         (input_string_internal): ... here;
341         (input_string_cst, input_identifier, lto_input_string): Update handling
342         of NULL strings.
343         (lto_input_location_bitpack): New function
344         (lto_input_location): Use it.
345         (unpack_ts_type_common_value_fields): Pack align & alias in var len
346         values.
347         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
348         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
349         (bp_pack_value): Sanity check the value range.
350         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
351         New functions.
352         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
353         New functions.
354
355 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
356
357         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
358         call_arg_location instructions down the floor.
359
360 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
361
362         PR rtl-optimization/49154
363         * ira.c (setup_pressure_classes): Process class without sublcasses
364         as a candidate for pressure classes.
365
366 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
367
368         PR rtl-optimization/48575
369         * genrecog.c (position_type): New enum.
370         (position): New structure.
371         (decision): Use position structure instead of a string.
372         (root_pos, peep2_insn_pos_list): New variables.
373         (next_position, compare_positions): New functions.
374         (new_decision): Use position structures instead of strings.
375         (maybe_both_true): Likewise.
376         (change_state): Likewise.
377         (write_tree): Likewise.
378         (make_insn_sequence): Likewise.
379
380 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
381
382         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
383         TS_BASE instead of TS_COMMON.
384         (find_decls_types_r): Check for TS_TYPED structure before looking at
385         TREE_TYPE.
386         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
387         Add chain field.
388         (BLOCK_CHAIN): Use new chain field.
389
390 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
391
392         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
393         moves expensive on Power7 also.
394
395 2011-05-26  Richard Guenther  <rguenther@suse.de>
396
397         * fold-const.c (fold_unary_loc): Remove bogus code.
398
399 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
400
401         * tree.h (struct tree_identifier): Inherit from tree_typed, not
402         tree_common.
403         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
404         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
405         TS_BASE instead of TS_COMMON.
406         * varasm.c (assemble_name): Remove assert.
407
408 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
409
410         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
411         substituted first.
412         * libgcc-std.ver: Delete file.
413
414 2011-05-26  Richard Guenther  <rguenther@suse.de>
415
416         PR tree-optimization/48702
417         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
418         only when we know the base address is within bounds.
419         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
420         assume the base address of TARGET_MEM_REFs is in bounds.
421
422 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
423
424         PR target/49099
425         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
426         declaration in TARGET_SOLARIS.
427
428 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
429
430         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
431         The instruction is then expanded explicitly.
432         (supported_compare): Callable instruction.
433         (compare): Likewise.
434
435 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
436
437         PR c++/49165
438         * gimplify.c (shortcut_cond_r): Don't special case
439         COND_EXPRs if they have void type on one of their arms.
440
441 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
442
443         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
444         to reduce duplication, and to achieve a slightly more logical order
445         of operations.
446
447 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
448
449         PR tree-optimization/49161
450         * tree-vrp.c (struct case_info): New type.
451         (compare_case_labels): Sort case_info structs instead of
452         trees, and not primarily by CASE_LABEL uids but by
453         label_for_block indexes.
454         (find_switch_asserts): Put case labels into struct case_info
455         array instead of TREE_VEC, adjust sorting, compare label_for_block
456         values instead of CASE_LABELs.
457
458 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
459
460         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
461         ("orndi3_neon"): Likewise.
462         ("bic<mode>3_neon"): Likewise.
463
464 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
465
466         PR tree-optimization/49038
467         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
468         Ensure at least one epilogue iteration if required by data
469         accesses with gaps.
470         * tree-vectorizer.h (struct _loop_vec_info): Add new field
471         to mark loops that require peeling for gaps.
472         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
473         (vect_get_known_peeling_cost): Take peeling for gaps into
474         account.
475         (vect_transform_loop): Generate epilogue if required by data
476         access with gaps.
477         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
478         loop as requiring an epilogue if there are gaps in the end of
479         the strided group.
480
481 2011-05-25  Ian Lance Taylor  <iant@google.com>
482
483         * godump.c (go_format_type): Output the first field with a usable
484         Go type, if any.
485
486 2011-05-25  Ian Lance Taylor  <iant@google.com>
487
488         * godump.c (go_format_type): Check for invalid type names, pointer
489         target types, and struct field types.
490
491 2011-05-25  Jason Merrill  <jason@redhat.com>
492
493         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
494
495 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
496
497         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
498
499 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
500
501         * config/i386/i386.md (*movqi_extv_1)): Put back
502         "register_operand" check in "type" calculation.
503         (*movqi_extzv_2): Likewise.
504
505 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
506
507         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
508
509 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
510
511         PR bootstrap/49160
512         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
513         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
514         __divxc3, __divtc3): Wrap definitions in #ifndef.
515
516 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
517
518         PR target/49142
519         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
520         "register_operand" check and replace q_regs_operand with
521         QIreg_operand in "type" calculation.
522         (*movqi_extv_1): Likewise.
523         (*movqi_extzv_2_rex64): Likewise.
524         (*movqi_extzv_2): Likewise.
525
526         * config/i386/predicates.md (QIreg_operand): New.
527
528 2011-05-25  Richard Guenther  <rguenther@suse.de>
529
530         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
531         type-based offset disambiguation, streamline MEM_REF and
532         TARGET_MEM_REF handling.
533
534 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
535
536         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
537         (bdesc_special_args): Add pause intrinsic.
538
539         * config/i386/i386.md (UNSPEC_PAUSE): New.
540         (pause): Likewise.
541         (*pause): Likewise.
542         * config/i386/ia32intrin.h (__pause): Likewise.
543
544         * doc/extend.texi (X86 Built-in Functions): Add documentation for
545         pause intrinsic.
546
547 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
548
549         PR tree-optimization/46728
550         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
551         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
552
553 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
554
555         * tree.h (struct tree_exp): Inherit from struct tree_typed.
556         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
557         instead of TS_COMMON.
558
559 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
560
561         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
562         LIBGCC2_GNU_PREFIX is defined.
563         (__N): New macro.
564         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
565         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
566         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
567         __clz_tab): Define using __N.
568         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
569         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
570         * target.def (libfunc_gnu_prefix): New hook.
571         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
572         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
573         * doc/tm.texi: Regenerate.
574         * system.h (LIBGCC2_GNU_PREFIX): Poison.
575         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
576         account.
577         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
578         (init_optabs): Likewise for the bswap libfuncs.
579         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
580         and divide.
581         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
582         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
583         * libgcc-std.ver: Remove.
584         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
585         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
586         libgcc-std.ver.
587         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
588         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
589         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
590         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
591         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
592         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
593         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
594         * config/fixed-bit.h (FIXED_OP): Define differently depending on
595         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
596         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
597
598 2011-05-25  Jan Hubicka  <jh@suse.cz>
599
600         * lto-streamer-out.c (output_record_start): Use lto_output_enum
601         (lto_output_tree): Use output_record_start.
602         * lto-streamer-in.c (input_record_start): Use lto_input_enum
603         (lto_get_pickled_tree): Use input_record_start.
604         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
605         (lto_value_range_error): New function.
606         * lto-streamer.h (lto_value_range_error): Declare.
607         (lto_output_int_in_range, lto_input_int_in_range): New functions.
608         (lto_output_enum, lto_input_enum): New macros.
609
610 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
611
612         * common.opt (flag_stack_usage_info): New variable.
613         (-Wstack-usage): New option.
614         * doc/invoke.texi (Warning options): Document -Wstack-usage.
615         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
616         <OPT_fstack_usage>: Likewise.
617         * toplev.c (output_stack_usage): Handle -Wstack-usage.
618         * calls.c (expand_call): Test flag_stack_usage_info variable instead
619         of flag_stack_usage.
620         (emit_library_call_value_1): Likewise.
621         * explow.c (allocate_dynamic_stack_space): Likewise.
622         * function.c (instantiate_virtual_regs ): Likewise.
623         (prepare_function_start): Likewise.
624         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
625         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
626         * config/arm/arm.c (arm_expand_prologue): Likewise.
627         (thumb1_expand_prologue): Likewise.
628         * config/avr/avr.c (expand_prologue): Likewise.
629         * config/i386/i386.c (ix86_expand_prologue): Likewise.
630         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
631         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
632         * config/mips/mips.c (mips_expand_prologue): Likewise.
633         * config/pa/pa.c (hppa_expand_prologue): Likewise.
634         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
635         * config/s390/s390.c (s390_emit_prologue): Likewise.
636         * config/sh/sh.c (sh_expand_prologue): Likewise.
637         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
638         * config/spu/spu.c (spu_expand_prologue): Likewise.
639
640 2011-05-25  Richard Guenther  <rguenther@suse.de>
641
642         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
643         (gimple_canonical_types_compatible_p): Likewise.
644
645 2011-05-25  Jan Hubicka  <jh@suse.cz>
646
647         PR middle-end/49062
648         * ipa.c (function_and_variable_visibility): Only add to same
649         comdat group list if DECL_ONE_ONLY.
650
651 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
652
653         PR rtl-optimization/49014
654         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
655
656 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
657
658         PR target/49128
659         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
660
661 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
662
663         PR rtl-optimization/48757
664         * ira-build.c (loop_with_eh_edge_p): Rename to
665         loop_with_complex_edge_p, check edges on complexity, make function
666         conditional.
667         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
668         conditional.
669
670 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
671
672         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
673         force flag_ira_share_save_slots to 0.
674
675 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
676
677         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
678         (vt_initialize): Set PROLOGUE_BB unconditionally.
679         Add block comment about CFA_BASE_RTX machinery.
680         Reset FP_CFA_OFFSET to -1 on all invalid paths.
681         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
682
683 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
684
685         PR objc/48187
686         * c-parser.c (c_parser_objc_class_instance_variables): More robust
687         parsing of syntax error in ObjC instance variable lists.  In
688         particular, avoid an infinite loop if there is a stray ']'.
689         Updated error message.
690
691 2011-05-24  Ian Lance Taylor  <iant@google.com>
692
693         * godump.c (go_define): Don't accept a string immediately after
694         another operand.
695
696 2011-05-24  Ian Lance Taylor  <iant@google.com>
697
698         * godump.c (struct godump_container): Add invalid_hash field.
699         (go_format_type): Return false if type is found in invalid_hash.
700         (go_output_typedef): Add invalid type to invalid_hash.
701         (go_finish): Create and delete invalid_hash.
702
703 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
704
705         PR tree-optimization/46728
706         * tree-ssa-math-opts.c (powi_table): New.
707         (powi_lookup_cost): New.
708         (powi_cost): New.
709         (powi_as_mults_1): New.
710         (powi_as_mults): New.
711         (gimple_expand_builtin_powi): New.
712         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
713         (gate_cse_sincos): Remove sincos/cexp restriction.
714
715 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
716
717         PR target/3746
718         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
719         mips-tdump native.
720         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
721         * mips-tdump.c: Likewise.
722
723 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
724
725         PR target/49128
726         * config/i386/driver-i386.c (host_detect_local_cpu): Always
727         add -mno-XXX.  Handle FMA.
728
729 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
730
731         PR rtl-optimization/48633
732         * ira-build.c (loop_with_eh_edge_p): New function.
733         (mark_loops_for_removal): Use it.
734
735 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
736
737         PR rtl-optimization/48971
738         * ira.c (setup_pressure_classes): Don't check register move cost
739         for classes with one registers.  Don't add pressure class if there
740         is a pressure class with the same available hard registers.
741         Check contains_reg_of_mode.  Fix a typo in collecting
742         temp_hard_regset.  Ignore hard registers not belonging to a class.
743
744 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
745
746         PR target/49133
747         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
748
749 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
750             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
751
752         PR gcov-profile/48845
753         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
754
755 2011-05-24  Richard Guenther  <rguenther@suse.de>
756
757         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
758         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
759         (gimple_types_compatible_p_1): Adjust.
760         (iterative_hash_canonical_type): Do not bother about complete vs.
761         incomplete types.
762         (gimple_canonical_types_compatible_p): Likewise.
763
764 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
765
766         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
767
768 2011-05-24  Richard Guenther  <rguenther@suse.de>
769
770         PR bootstrap/49078
771         * gimple.c (gimple_register_canonical_type): Revert
772         previous change.
773         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
774         does not for a tree for the case where it matters.  Cache
775         pointer-type alias-sets.
776
777 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
778
779         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
780         (OBJS): Remove options.o, opts-common.o and prefix.o.
781         (OBJS-libcommon-target): New.
782         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
783         (BACKEND): Include libcommon-target.a.
784         (MOSTLYCLEANFILES): Include libcommon-target.a.
785         (libcommon-target.a): New.
786         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
787         prefix.o.
788
789 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
790
791         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
792         parts of output shared with the driver.
793         * optc-gen.awk: Don't generate parts of output not shared with the
794         driver.
795         * opth-gen.awk: Remove GCC_DRIVER conditionals.
796         * doc/options.texi (SourcerInclude): Mention options-save.c.
797         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
798         (OBJS): Add options-save.o.
799         (options-save.c, options-save.o): New.
800         (options.o): Update dependencies.
801         (gcc-options.o): Remove.
802         (mostlyclean): Remove options-save.c.
803
804 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
805
806         PR debug/49032
807         * dbxout.c: Include cgraph.h.
808         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
809         and without value expr, return NULL if no varpool node exists for
810         it or if it is not needed.
811         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
812
813         PR c/49120
814         * c-decl.c (start_decl): Convert expr to void_type_node.
815
816 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
817
818         PR rtl-optimization/48826
819         * emit-rtl.c (try_split): When splitting a call that is followed
820         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
821
822 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
823
824         * cfgexpand.c (expand_debug_expr): For unused non-addressable
825         parameters passed in memory prefer using DECL_INCOMING_RTL over
826         the pseudos it will be copied into.
827
828 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
829
830         PR target/47315
831         * config/i386/i386.c (ix86_option_override_internal): Save the
832         initial options after checking vzeroupper.
833
834 2011-05-23  David Li  <davidxl@google.com>
835
836         PR tree-optimization/48988
837         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
838         Initialize has_valid_pred for each pred chain.
839
840 2011-05-23  Richard Guenther  <rguenther@suse.de>
841
842         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
843         (iterative_hash_gimple_type): Always hash type names.
844
845 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
846
847         * c-typeck.c (build_function_call_vec): Tweak call to
848         check_function_arguments.
849
850 2011-05-23  Richard Guenther  <rguenther@suse.de>
851
852         PR tree-optimization/49115
853         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
854         is not necessarily carried out, do not claim it kills the ref.
855         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
856
857 2011-05-23  Richard Guenther  <rguenther@suse.de>
858
859         PR middle-end/15419
860         * builtins.c (fold_builtin_memory_op): Be less restrictive about
861         what pointer types we accept for folding.
862
863 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
864
865         * gthr-gnat.c: Remove.
866         * gthr-gnat.h: Remove.
867         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
868         * config/t-freebsd (LIB2ADDEH): Likewise.
869         * config/t-linux (LIB2ADDEH): Likewise.
870         * config/t-sol2 (LIB2ADDEH): Likewise.
871         * config/ia64/t-vms (LIB2ADDEH): Likewise.
872         * configure.ac (target_thread_file): Remove gnat handling.
873         * configure: Regenerate.
874         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
875
876 2011-05-23  Tristan Gingold  <gingold@adacore.com>
877             Eric Botcazou  <ebotcazou@adacore.com>
878
879         * gcov.c (create_file_names): If no object directory is specified,
880         keep the directory of the file.
881
882 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
883
884         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
885         * configure: Regenerate.
886
887 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
888
889         PR middle-end/48973
890         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
891         failed and the comparison has a single bit signed type, use
892         constm1_rtx instead of const1_rtx for true value.
893         (do_store_flag): If ops->type is single bit signed type, disable
894         signel bit test optimization and pass -1 instead of 1 as last
895         parameter to emit_store_flag_force.
896
897 2011-05-23  Tom de Vries  <tom@codesourcery.com>
898
899         PR target/45098
900         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
901         function.
902         (infer_loop_bounds_from_undefined): Use new function.
903
904 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
905
906         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
907         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
908         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
909         and -O0 otherwise.
910         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
911
912 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
913
914         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
915         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
916         returns true.
917
918 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
919
920         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
921
922 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
923
924         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
925         UNSPEC_MOVE_PIC pattern.
926
927 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
928
929         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
930         (sparc-*-rtems*): Likewise.
931         (sparc64-*-elf*): Likewise.
932         (sparc64-*-rtems*): Likewise.
933         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
934         * config/sparc/t-crtin: New file.
935         * config/sparc/t-sol2 (crti.o): Delete rule.
936         (crtn.o): Likewise.
937         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
938         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
939         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
940         (ENDFILE_SPEC): Add crtn.o.
941
942 2011-05-22  Tom de Vries  <tom@codesourcery.com>
943
944         PR middle-end/48689
945         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
946         CODE_CONTAINS_STRUCT (TS_COMMON).
947
948 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
949
950         PR middle-end/49029
951         * expmed.c (extract_fixed_bit_field): Test whether target can be used
952         only after deciding which mode to use.
953
954 2011-05-22  Tom de Vries  <tom@codesourcery.com>
955
956         PR target/45098
957         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
958         for call to get_shiftadd_cost.
959
960 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
961
962         PR target/49104
963         * config/i386/cpuid.h (bit_MMXEXT): New define.
964
965 2011-05-22  Nick Clifton  <nickc@redhat.com>
966
967         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
968         initialisation of non-existant args[2] element.  Use args[] array
969         not arg[] array to pass arguments to build_function_type_list.
970
971 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
972
973         PR tree-optimization/49087
974         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
975
976 2011-05-21  Jason Merrill  <jason@redhat.com>
977
978         PR c++/49092
979         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
980         static storage duration.
981
982 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
983
984         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
985         frame pointer.
986
987 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
988
989         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
990         false if there are call-saved registers here...
991         (sparc_can_use_return_insn_p): ...but here instead.
992         (save_or_restore_regs): Fix thinko.
993         (sparc_expand_prologue): Use current_function_is_leaf.
994         (sparc_frame_pointer_required): Likewise.
995
996 2011-05-21  Nick Clifton  <nickc@redhat.com>
997
998         PR target/49098
999         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1000
1001 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1002
1003         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1004         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1005
1006 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1007
1008         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1009         * optc-gen.awk: Move common code to opt-read.awk.
1010         * opth-gen.awk: Likewise.
1011         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1012
1013 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1014
1015         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1016
1017 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1018
1019         PR target/45098
1020         * tree-ssa-loop-ivopts.c: Include expmed.h.
1021         (get_shiftadd_cost): New function.
1022         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1023
1024 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1025
1026         PR bootstrap/49086
1027         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1028         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1029
1030 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1031
1032         * Makefile.in: Update comment referring to $(OBJS-common).
1033
1034 2011-05-20  Ian Lance Taylor  <iant@google.com>
1035
1036         * godump.c (go_output_typedef): Put enum constants in the macro
1037         hash table to avoid duplicate Go const definitions.
1038
1039 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1040
1041         * Makefile.in (LIBDEPS): Add libcommon.a.
1042         (LIBS): Likewise.
1043         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1044         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1045         pretty-print.o and version.o.
1046         (OBJS-libcommon): New.
1047         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1048         (BACKEND): Add libcommon.a.
1049         (MOSTLYCLEANFILES): Likewise.
1050         (libcommon.a): New.
1051         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1052         (cpp$(exeext)): Likewise.
1053         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1054         pretty-print.o and input.o.
1055         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1056         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1057         (errors.o): Remove.
1058         (mips-tfile): Don't explicitly use version.o.
1059         (mips-tdump): Likewise.
1060         (gcov.o): Depend on $(DIAGNOSTIC_H).
1061         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1062         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1063         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1064         * gcov-dump.c: Include intl.h and diagnostic.h.
1065         (main): Initialize diagnostics.
1066         * gcov.c: Include diagnostic.h.
1067         (fnotice): Remove.
1068         (main): Initialize diagnostics.
1069         * lto-wrapper.c: Include diagnostic.h.
1070         (main): Initialize diagnostics.
1071
1072 2011-05-20  Michael Matz  <matz@suse.de>
1073
1074         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1075
1076 2011-05-20  Michael Matz  <matz@suse.de>
1077             Richard Guenther  <rguenther@suse.de>
1078
1079         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1080         use lto_streamer_cache_append directly instead of returning a VEC.
1081         (preload_common_node): Remove.
1082         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1083         track seen nodes.
1084         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1085
1086 2011-05-20  Richard Guenther  <rguenther@suse.de>
1087
1088         PR tree-optimization/49079
1089         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1090         MEM_REFs correctly for the trailing array access detection.
1091         Special case constants the same way as decls for overall size
1092         constraining.
1093
1094 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1097         argument expansion.
1098
1099 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1100
1101         PR tree-optimization/49073
1102         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1103         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1104         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1105
1106 2011-05-20  Richard Guenther  <rguenther@suse.de>
1107
1108         PR middle-end/48849
1109         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1110         of pointer types the same way the middle-end does.
1111
1112 2011-05-20  Richard Guenther  <rguenther@suse.de>
1113
1114         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1115         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1116
1117 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1118
1119         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1120         (fma4_fmaddsub): Likewise
1121
1122 2011-05-19  Jan Hubicka  <jh@suse.cz>
1123
1124         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1125         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1126         (type_pair_cache): New static var.
1127         (lookup_type_pair): Use fixed sized custom hash; make inline.
1128         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1129         calls of lookup_type_pair.
1130         (print_gimple_types_stats): Remove cache stats.
1131         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1132         and gtc_ob.
1133
1134 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1135
1136         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1137         when TARGET_RDRND is active.
1138         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1139         Generate dummy SImode target register when target is NULL.
1140
1141 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1142
1143         * config/arm/arm-fpus.def: New.
1144         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1145         arm-fpus.def.
1146         * config/arm/arm-tables.opt: Regenerate.
1147         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1148         (arm_option_override): Don't decode FPU name to string here.
1149         * config/arm/arm.opt (mfpu=): Use Enum.
1150         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1151         Update dependencies.
1152
1153 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1154
1155         * collect2.c: Include diagnostic.h.
1156         (fatal_perror, fatal, error, fancy_abort): Remove.
1157         (main): Set progname.  Call xmalloc_set_program_name and
1158         diagnostic_initialize.
1159         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1160         scan_libraries, resolve_lib_name): Call fatal_error instead of
1161         fatal and fatal_perror.
1162         * collect2.h (error, fatal, fatal_perror): Don't declare.
1163         * tlink.c: Include diagnostic-core.h.
1164         (recompile_files): Call fatal_error instead of fatal_perror.
1165         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1166         pretty-print.o and input.o.
1167         (collect2.o, tlink.o): Update dependencies.
1168
1169 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1170
1171         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1172
1173 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1174
1175         PR target/40483
1176         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1177         COMDAT group syntax, both SPARC and x86 variants.
1178         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1179         * configure: Regenerate.
1180         * config/sol2.h (TARGET_SOLARIS): Define.
1181         (PUSHSECTION_FORMAT): Remove.
1182         (SECTION_NAME_FORMAT): Define.
1183         * config/sol2.c: Include hashtab.h.
1184         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1185         expansion, using SECTION_NAME_FORMAT.
1186         (solaris_comdat_htab): New variable.
1187         (struct comdat_entry): Define.
1188         (comdat_hash): New function.
1189         (comdat_eq): New function.
1190         (solaris_elf_asm_comdat_section): New function.
1191         (solaris_define_comdat_signature): New function.
1192         (solaris_code_end): New function.
1193         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1194         (solaris_code_end): Declare.
1195         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1196         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1197         solaris_code_end.
1198         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1199         Remove ATTRIBUTE_UNUSED.
1200         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1201         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1202         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1203         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1204         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1205         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1206         (PUSHSECTION_FORMAT): Remove.
1207         (SECTION_NAME_FORMAT): Redefine.
1208
1209 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1210
1211         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1212         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1213         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1214
1215 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1216             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1217
1218         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1219
1220 2011-05-19  Richard Guenther  <rguenther@suse.de>
1221
1222         PR middle-end/48985
1223         * tree-object-size.c (addr_object_size): If the pointed-to
1224         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1225
1226 2011-05-19  Richard Guenther  <rguenther@suse.de>
1227
1228         * gimple.c (gimple_types_compatible_p_1): Compare names of
1229         the types themselves.
1230         (iterative_hash_gimple_type): And hash them that way.
1231         (gimple_register_type_1): If we register a main variant properly
1232         initialize the leader to ourselves.
1233
1234 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1235
1236         PR target/45098
1237         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1238         get_loop_invariant_expr_id.
1239         (get_loop_invariant_expr_id): Use get_expr_id.
1240         (parm_decl_cost): New function.
1241         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1242         Improve bound cost estimation.  Use different inv_expr_id for elim and
1243         express cases.
1244
1245 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1246
1247         PR target/45098
1248         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1249         cost_base.cost == 0.
1250
1251 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1252
1253         PR target/49002
1254         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1255         Properly handle load cast.
1256
1257 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1258
1259         PR tree-optimization/49039
1260         * tree-vrp.c (extract_range_from_binary_expr): For
1261         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1262         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1263
1264 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1265
1266         PR target/45098
1267         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1268
1269 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1270
1271         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1272         (*tls_global_dynamic_64): Ditto.
1273         (*tls_local_dynamic_base_32_gnu): Ditto.
1274         (*tls_local_dynamic_base_64): Ditto.
1275         (tls_initial_exec_64_sun): Ditto.
1276
1277 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1278
1279         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1280         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1281         bf592-none.
1282         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1283         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1284         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1285         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1286         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1287         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1288         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1289
1290 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1291
1292         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1293         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1294         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1295         target_thread_pointer, arm_structure_size_boundary, struct
1296         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1297         struct abi_name, arm_all_abis): Remove.
1298         (arm_option_override) Don't process most enumerated option values here.
1299         Don't process target_fpe_name here.  Work with integer not string for
1300         structure size boundary; use separate diagnostics for each case.
1301         * config/arm/arm.h (enum float_abi_type, enum
1302         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1303         to arm-opts.h.
1304         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1305         arm_structure_size_boundary): Remove.
1306         * config/arm/arm.opt (mabi=): Use Enum and Init.
1307         (arm_abi_type): New Enum and EnumValue entries.
1308         (mfloat-abi=): Use Enum and Init.
1309         (float_abi_type): New Enum and EnumValue entries.
1310         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1311         (mfp16-format=): Use Enum and Init.
1312         (arm_fp16_format_type): New Enum and EnumValue entries.
1313         (mstructure-size-boundary=): Use UInteger and Init.
1314         (mtp=): Use Enum and Init.
1315         (arm_tp_type): New Enum and EnumValue entries.
1316
1317 2011-05-18  Richard Guenther  <rguenther@suse.de>
1318
1319         PR tree-optimization/49018
1320         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1321         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1322         gimple_has_side_effects.
1323
1324 2011-05-18  Richard Guenther  <rguenther@suse.de>
1325
1326         * gimple.c (gimple_register_type_1): New function, split out from ...
1327         (gimple_register_type): ... here.  Avoid infinite recursion.
1328
1329 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1330
1331         PR tree-optimization/41881
1332         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1333         reduction_chains along with a macro for its access.
1334         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1335         (destroy_loop_vec_info): Free reduction chains.
1336         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1337         (vect_is_slp_reduction): New function.
1338         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1339         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1340         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1341         definition types for reduction chains.
1342         (vect_supported_load_permutation_p): Don't allow permutations for
1343         reduction chains.
1344         (vect_analyze_slp_instance): Support reduction chains.
1345         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1346         (vect_get_constant_vectors):  Handle reduction chains.
1347         (vect_schedule_slp_instance): Mark the first statement of the
1348         reduction chain as reduction.
1349
1350 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1351
1352         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1353         names for group elements access.
1354         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1355         reduction chains as well.  Remove data reference and interleaving
1356         related words from the fields names.
1357         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1358         elements access.
1359         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1360         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1361         vect_update_interleaving_chain, vect_same_range_drs,
1362         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1363         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1364         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1365         vect_analyze_group_access, vect_analyze_data_ref_access,
1366         vect_create_data_ref_ptr, vect_transform_strided_load,
1367         vect_record_strided_load_vectors): Likewise.
1368         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1369         vect_model_load_cost, vectorizable_store, vectorizable_load,
1370         vect_remove_stores, new_stmt_vec_info): Likewise.
1371         * tree-vect-slp.c (vect_build_slp_tree,
1372         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1373
1374 2011-05-18  Richard Guenther  <rguenther@suse.de>
1375
1376         PR middle-end/48989
1377         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1378         operand verification.
1379         (verify_gimple_assign_binary): Likewise.
1380         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1381         to non-1-precision BOOLEAN_TYPEs.
1382
1383 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1384
1385         PR target/45098
1386         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1387
1388 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1389
1390         PR tree-optimization/49000
1391         * tree-ssa.c (execute_update_addresses_taken): Call
1392         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1393         be rewritten and decl has been marked for renaming, reset
1394         the debug stmt.
1395
1396 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1399         enum_opts_set when testing if attributes have set -mfpmath=.
1400
1401 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1402
1403         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1404
1405 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1406
1407         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1408         info->entry with 0
1409         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1410         id.transform_lang_insert_block with NULL.
1411
1412 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1413
1414         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1415         (output_fp_compare): Change args 3 and 4 to bool.
1416         (ix86_expand_call): Change arg 6 to bool.
1417         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1418         (ix86_attr_length_vex_default): Change arg 3 to bool.
1419         * config/i386/i386.md: Update all uses.
1420         * config/i386/i386.c: Ditto.
1421         (ix86_flags_dependent): Change return type to bool.
1422
1423 2011-05-17  Richard Guenther  <rguenther@suse.de>
1424
1425         * gimple.c (type_hash_pair_compare): Fix comparison.
1426
1427 2011-05-17  Richard Guenther  <rguenther@suse.de>
1428
1429         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1430         case some more, fix final hash value of the non-singleton case.
1431
1432 2011-05-17  Richard Guenther  <rguenther@suse.de>
1433
1434         PR bootstrap/49013
1435         Revert
1436         2011-05-16  Richard Guenther  <rguenther@suse.de>
1437
1438         * gimple.c (gimple_types_compatible_p_1): Use names of the
1439         type itself, not its main variant.
1440         (iterative_hash_gimple_type): Likewise.
1441
1442 2011-05-17  Richard Guenther  <rguenther@suse.de>
1443
1444         * gimple.c (gimple_register_canonical_type): Use the main-variant
1445         leader for computing the canonical type.
1446
1447 2011-05-17  Nick Clifton  <nickc@redhat.com>
1448
1449         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1450         moves.
1451
1452         * config/rx/rx.md: Add peephole to remove redundant extensions
1453         after loads.
1454         (bitset_in_memory): Use rx_restricted_mem_operand.
1455         (bitinvert_in_memory): Likewise.
1456         (bitclr_in_memory): Likewise.
1457
1458 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1459             Nick Clifton  <nickc@redhat.com>
1460
1461         * config/rx/rx.md: Add peepholes to match a register move followed
1462         by a comparison of the moved register.  Replace these with an
1463         addition of zero that does both actions in one instruction.
1464
1465 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1466
1467         PR target/48986
1468         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1469         predicate to allow CONST_INT.
1470         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1471
1472 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1473
1474         * opts-common.c (opt_enum_arg_to_value): New.
1475         * opts.h (opt_enum_arg_to_value): Declare.
1476         * config/i386/i386.opt (fpmath): Remove.
1477         (mfpmath=): Use Enum, Init and Save.
1478         (fpmath_unit): New Enum and EnumValue entries.
1479         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1480         name for function fpmath state.
1481         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1482         * config/i386/i386.c: Include diagnostic.h.
1483         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1484         (ix86_target_string): Take enum fpmath_unit value instead of string.
1485         (ix86_debug_options): Update call to ix86_target_string.
1486         (ix86_option_override_internal): Don't process fpmath strings here.
1487         (x86_function_specific_save, ix86_function_specific_restore):
1488         Don't handle fpmath state specially.
1489         (ix86_function_specific_print): Pass fpmath state to
1490         ix86_target_string instead of printing in this function.
1491         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1492         Handle enum attributes.
1493         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1494         (ix86_valid_target_attribute_tree): Update option_strings
1495         handling.  Handle fpmath as enum option.
1496         (ix86_can_inline_p): Update field names for function fpmath state.
1497         (ix86_expand_builtin): Update call to ix86_target_string.
1498         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1499         (ix86_fpmath): Remove.
1500         * config/i386/t-i386 (i386.o): Update dependencies.
1501
1502 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1503
1504         PR preprocessor/48677
1505         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1506         from decoded_options[0], not from itself.
1507
1508 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1509
1510         * config/i386/constraints.md (z): New constraint.
1511         * config/i386/i386.c (c): New mode attribute.
1512         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1513         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1514         constraint for operand 0.
1515         (*call_vzeroupper): Ditto.
1516         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1517         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1518         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1519         Use "lzm" constraint for operand 0.
1520         (*call_pop_vzeroupper): Ditto.
1521         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1522         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1523         constraint for operand 0.
1524         (*sibcall_vzeroupper): Ditto.
1525         (*sibcall_rex64_ms_sysv): Ditto.
1526         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1527         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1528         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1529         (*sibcall_pop_vzeroupper): Ditto.
1530         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1531         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1532         mode iterator.  Use "<c>zm" constraint for operand 1.
1533         (*call_value_vzeroupper): Ditto.
1534         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1535         for operand 1.
1536         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1537         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1538         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1539         (*call_value_pop_vzeroupper): Ditto.
1540         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1541         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1542         mode iterator.  Use "Uz" constraint for operand 1.
1543         (*sibcall_value_vzeroupper): Ditto.
1544         (*sibcall_value_rex64_ms_sysv): Ditto.
1545         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1546         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1547         constraint for operand 1.
1548         (*sibcall_value_pop_vzeroupper): Ditto.
1549         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1550         and "z" constraint for operand 2.
1551         (*tls_global_dynamic_32_gnu): Ditto.
1552         (*tls_local_dynamic_base_32_gnu): Ditto.
1553         (*tls_local_dynamic_base_64): Ditto.
1554         (*tls_local_dynamic_32_once): Ditto.
1555         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1556         Update all callers.
1557         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1558
1559 2011-05-16  Richard Guenther  <rguenther@suse.de>
1560
1561         * gimple.c (gimple_types_compatible_p_1): Use names of the
1562         type itself, not its main variant.
1563         (iterative_hash_gimple_type): Likewise.
1564
1565 2011-05-16  Richard Guenther  <rguenther@suse.de>
1566
1567         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1568         always visit pointer target and function result and argument types.
1569
1570 2011-05-16  Jason Merrill  <jason@redhat.com>
1571
1572         PR c++/48999
1573         * tree-inline.c (copy_statement_list): Put back recursion.
1574
1575 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1576
1577         PR target/27663
1578         PR target/41076
1579         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1580         * config/avr/avr.md ("*ior<mode>qi.byte0",
1581         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1582
1583 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1584
1585         PR target/45099
1586         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1587         register is needed for a function argument.
1588
1589 2011-05-16  Richard Guenther  <rguenther@suse.de>
1590
1591         * gimple.c (struct type_hash_pair): New type.
1592         (type_hash_pair_compare): New function.
1593         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1594
1595 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1596
1597         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1598
1599 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1600
1601         * config/i386/i386.md (floating point move splitters): Fix
1602         usage of standard_80387_constant_p.
1603         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1604
1605 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1606
1607         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1608
1609 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1610
1611         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1612         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1613         (tree_ssa_lim_finalize): Likewise.
1614
1615 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1616
1617         * config/i386/constraint.md (Yd, Yx): New register constraints.
1618         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1619         Yd conditional register constraint.
1620         (*movtf_internal): Use standard_sse_constant_opcode.
1621         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1622         Yx conditional register constraint.
1623         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1624         Yd conditional register constraint.  Use standard_sse_constant_p to
1625         check for valid SSE constants and call standard_sse_constant_opcode to
1626         output SSE insn.
1627         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1628         constants and call standard_sse_constant_opcode to output SSE insn.
1629         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1630         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1631         optimize_size is set.
1632         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1633
1634 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1635
1636         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1637
1638 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1639
1640         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1641         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1642         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1643         (evaluate_conditions_for_ipcp_clone): Removed.
1644         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1645         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1646         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1647
1648 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1649
1650         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1651         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1652         lieu of MAY_HAVE_DEBUG_STMTS.
1653         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1654         debug statements if !MAY_HAVE_DEBUG_STMTS.
1655
1656 2011-05-13  Martin Thuresson  <martint@google.com>
1657
1658         PR gcov-profile/47793
1659         * libgcov.c (gcov_exit): Support relative profile paths.
1660         * doc/invoke.texi (-fprofile-dir): Update for above change.
1661
1662 2011-05-13  Richard Guenther  <rguenther@suse.de>
1663
1664         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1665         type-pair caching, do not compare hashes.
1666
1667 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1668
1669         PR middle-end/48965
1670         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1671         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1672
1673 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1674
1675         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1676         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1677         compatible type for TRUTH_NOT_EXPR.
1678
1679 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1680
1681         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1682         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1683         can_create_pseudo_p ().
1684
1685 2011-05-13  Richard Guenther  <rguenther@suse.de>
1686
1687         PR lto/48978
1688         * gimple.c (iterative_hash_gimple_type): Revert change in
1689         pointer target and function result and argument hashing.
1690
1691 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1692
1693         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1694         (*movxf_internal_nointeger): Ditto.
1695         (*movdf_internal_rex64): Ditto.
1696         (*movdf_internal): Ditto.
1697         (*movdf_internal_nointeger): Ditto.
1698         (*movsf_internal): Ditto.
1699         (sincos splitters): Use can_create_pseudo ().
1700
1701 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1702
1703         * config/i386/i386-opts.h: New.
1704         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1705         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1706         ix86_section_threshold): Remove.
1707         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1708         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1709         OPT_mbranch_cost_.
1710         (ix86_option_override_internal): Don't decode strings for options
1711         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1712         __attribute__ uses in remaining diagnostics for options with
1713         string arguments.  Don't check for integer arguments being negative.
1714         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1715         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1716         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1717         ix86_branch_cost, ix86_section_threshold): Remove.
1718         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1719         HeaderInclude.
1720         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1721         but not Var.
1722         (masm=): Use Enum and Init.
1723         (asm_dialect): New Enum and EnumValue entries.
1724         (mbranch-cost=): Use UInteger.
1725         (mlarge-data-threshold=): Use UInteger and Init.
1726         (mcmodel=): Use Enum and Init.
1727         (cmodel): New Enum and EnumValue entries.
1728         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1729         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1730         mregparm=): Use UInteger.
1731         (mstringop-strategy=): Use Enum and Init.
1732         (stringop_alg): New Enum and EnumValue entries.
1733         (mtls-dialect=): Use Enum and Init.
1734         (tls_dialect): New Enum and EnumValue entries.
1735         (mabi=): Use Enum and Init.
1736         (calling_abi): New Enum and EnumValue entries.
1737         (mveclibabi=): Use Enum and Init.
1738         (ix86_veclibabi): New Enum and EnumValue entries.
1739
1740 2011-05-13  Nick Clifton  <nickc@redhat.com>
1741
1742         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1743         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1744
1745 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1746
1747         PR middle-end/48984
1748         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1749         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1750         (gimple_boolify): Check for cast for boolean_type_node instead for
1751         BOOLEAN_TYPE.
1752
1753 2011-05-13  Richard Guenther  <rguenther@suse.de>
1754
1755         PR tree-optimization/48172
1756         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1757         multiplying by number of iterations for equal step.
1758         (vect_create_cond_for_alias_checks): Likewise.
1759
1760 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1761
1762         * configure.ac: Use AS_HELP_STRING throughout.
1763         * configure: Regenerate.
1764
1765 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1766
1767         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1768         (ix86_emit_restore_regs_using_mov): Likewise.
1769         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1770
1771 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1772
1773         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1774         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1775         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1776         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1777         RTX_OK_FOR_OLO10_P): ...here.
1778         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1779         SYMBOLIC_CONST.
1780
1781 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1782
1783         * gimplify.c (gimple_boolify): Re-boolify expression
1784         arguments even if expression type is of kind BOOLEAN_TYPE.
1785         (gimplify_boolean_expr): Removed.
1786         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1787         and XOR. Additional take care that we keep expression's type.
1788         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1789         of TRUTH_AND|OR|XOR_EXPR.
1790
1791 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR tree-optimization/48975
1794         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1795         on all bbs here and free and clear ifc_bbs at the end.
1796
1797 2011-05-12  Richard Guenther  <rguenther@suse.de>
1798
1799         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1800         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1801         until after simple checks.
1802         (gimple_types_compatible_p): Likewise.
1803         (iterative_hash_gimple_type): Always hash pointer targets
1804         and function return and argument types.
1805         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1806         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1807         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1808         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1809         completely in the simple compare section.
1810         (gimple_register_canonical_type): Query the cache again after
1811         registering.
1812
1813 2011-05-12  Richard Guenther  <rguenther@suse.de>
1814
1815         PR tree-optimization/48172
1816         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1817         the number of iterations from the segment size calculation.
1818         (vect_create_cond_for_alias_checks): Adjust.
1819
1820 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1821
1822         PR debug/48967
1823         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1824         if validate_subreg fails.
1825
1826 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1827
1828         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1829         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1830         early.
1831
1832 2011-05-12  DJ Delorie  <dj@redhat.com>
1833
1834         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1835         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1836         created builtin into rx_builtins array.
1837         (rx_builtin_decl): New function.
1838         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1839
1840 2011-05-12  DJ Delorie  <dj@redhat.com>
1841             Nick Clifton  <nickc@redhat.com>
1842
1843         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1844         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1845         (rx_is_legitimate_address): Add pre-decrement and post-increment
1846         addressing in HImode and QImode.  Fix test for out of range
1847         REG+INT addressing.
1848         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1849         (rx_align_for_label): Test label before extracting its usage count.
1850         (rx_adjust_insn_lengths): Fix selection of insn codes.
1851         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1852
1853 2011-05-11  Jason Merrill  <jason@redhat.com>
1854
1855         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1856
1857 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1858
1859         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1860         reindent the subsequent block.
1861
1862 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1863             Paul Pluzhnikov  <ppluzhnikov@google.com>
1864
1865         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1866         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1867         * config.in: Add LINKER_HASH_STYLE.
1868         * configure.ac: Add --with-linker-hash-style.
1869         * configure: Regenerate.
1870
1871 2011-05-11  Richard Guenther  <rguenther@suse.de>
1872
1873         PR middle-end/48964
1874         * gimple.c (iterative_hash_canonical_type): Fix typo.
1875
1876 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
1877
1878         * config/i386/i386.c (legitimize_tls_address)
1879         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1880         expanders directly for TARGET_GNU2_TLS.  Determine pic and
1881         __tls_get_addr symbol reference here.  Update call to
1882         gen_tls_global_dynamic_{32,64} for added arguments.
1883         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1884         expanders directly for TARGET_GNU2_TLS.  Determine
1885         __tls_get_addr symbol reference here.  Update call to
1886         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
1887         unique UNSPEC REG_EQUIV to libcall block.
1888         (ix86_tls_get_addr): Declare static.
1889         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1890         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1891         Do not determine pic and __tls_get_addr symbol reference here. Do not
1892         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1893         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1894         (tls_global_dynamic_64): Add operand 2.  Do not determine
1895         __tls_get_addr symbol reference here.  Do not call
1896         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1897         (tls_local_dynamic_base64): Ditto for operand 1.
1898
1899 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1900
1901         * function.c (expand_function_start): Initialize stack_check_probe_note
1902         only if the generic stack checking mechanism is used.
1903
1904 2011-05-11  Richard Guenther  <rguenther@suse.de>
1905
1906         PR tree-optimization/15256
1907         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1908         (A & B) | C, combine (A op CST1) op CST2.
1909         (tree_ssa_forward_propagate_single_use_vars): Only bother to
1910         visit assigns that have uses.
1911
1912 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1913
1914         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1915         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1916         (unpack_ts_type_common_value_fields): ...this.  Update comment.
1917         (unpack_value_fields): Adjust for renaming.
1918         (lto_input_ts_type_tree_pointers): Split into...
1919         (lto_input_ts_type_common_tree_pointer): ...this and...
1920         (lto_input_ts_type_non_common_tree_pointers): ...this.
1921         (lto_input_tree_pointers): Adjust for above split.
1922         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1923         (pack_ts_type_common_value_fields): ...this.  Update comment.
1924         (lto_output_ts_type_tree_pointers): Split into...
1925         (lto_output_ts_type_common_tree_pointers): ...this and...
1926         (lto_output_ts_type_non_common_tree_pointers): ...this.
1927         (lto_output_tree_pointers): Adjust for above split.
1928         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1929         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1930         * stor-layout.c (vector_type_mode): Adjust location of mode field.
1931         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1932         Define.
1933         (struct tree_type): Split into...
1934         (struct tree_type_common: ...this and...
1935         (struct tree_type_with_lang_specific): ...this and...
1936         (struct tree_type_non_common): ...this.  Adjust accessor macros
1937         accordingly.
1938         (TYPE_VALUES_RAW): Define.
1939         (union tree_node): Update for above changes.
1940         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1941         TS_TYPE_NON_COMMON.
1942         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1943         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1944         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1945         * treestructu.def (TS_TYPE): Remove.
1946         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1947         Define.
1948
1949 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
1950
1951         PR debug/48159
1952         * tree-ssa.c (reset_debug_uses): New function.
1953         * tree-flow.h (reset_debug_uses): New prototype.
1954         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1955         * tree-loop-distribution.c (generate_loops_for_partition): Call
1956         reset_debug_uses on the stmts that will be removed.  Keep around
1957         all debug stmts, don't count them as bits in partition bitmap.
1958         (generate_builtin): Don't count debug stmts or labels as bits in
1959         partition bitmap.
1960
1961 2011-05-11  Richard Guenther  <rguenther@suse.de>
1962
1963         * gimple.c (gimple_type_hash_1): Merge with ...
1964         (gimple_type_hash): ... this.
1965         (gtc_visit): Remove mode parameter and simplify accordingly.
1966         (gimple_types_compatible_p_1): Likewise.
1967         (gimple_types_compatible_p): Likewise.
1968         (iterative_hash_gimple_type): Likewise.
1969         (visit): Likewise.
1970         (gimple_type_eq): Adjust.
1971
1972 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1973
1974         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1975         enters the branch create an anti edge in the opposite direction
1976         to prevent the creation of reg-moves.
1977         * modulo-sched.c: Adjust comment to reflect the fact we are
1978         scheduling closing branch.
1979         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1980         (stage_count): New field in struct partial_schedule.
1981         (calculate_stage_count): New function.
1982         (normalize_sched_times): Rename to reset_sched_times and handle
1983         incrementing the sched time of the nodes by a constant value
1984         passed as parameter.
1985         (duplicate_insns_of_cycles): Skip closing branch.
1986         (sms_schedule_by_order): Schedule closing branch.
1987         (ps_insn_find_column): Handle closing branch.
1988         (sms_schedule): Call reset_sched_times and adjust the code to
1989         support scheduling of the closing branch.
1990         (ps_insert_empty_row): Update calls to normalize_sched_times
1991         and rotate_partial_schedule functions.
1992
1993 2011-05-11  Richard Guenther  <rguenther@suse.de>
1994
1995         PR middle-end/48953
1996         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1997
1998 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1999
2000         * opts.c (finish_options): Move warning settings from process_options.
2001         * toplev.c (process_options): Move warning settings to finish_options.
2002
2003 2011-05-11  Richard Guenther  <rguenther@suse.de>
2004
2005         PR tree-optimization/18041
2006         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2007         (simplify_bitwise_binary): ... this.  Handle operand conversions
2008         by applying them to the result instead.
2009         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2010
2011 2011-05-11  Richard Guenther  <rguenther@suse.de>
2012
2013         * gimple.c (gimple_canonical_types_compatible_p): Split out
2014         from gimple_types_compatible_p and friends.  Do not recurse
2015         to pointed-to types.
2016         (gimple_canonical_type_eq): Use it.
2017         (iterative_hash_canonical_type): Split out from
2018         iterative_hash_gimple_type and friends.  Do not recurse
2019         to pointed-to types.
2020         (gimple_canonical_type_hash): Use it, allocate the hash here.
2021
2022 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2023
2024         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2025         recognizing doloop.
2026
2027 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2028
2029         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2030         instead of PREV_INSN.
2031
2032 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2033
2034         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2035         * loop-doloop.c (doloop_condition_get): Likewise.
2036         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2037         (doloop_end): New.
2038         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2039
2040 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2041
2042         * tree.def (CASE_LABEL_EXPR): Add an operand.
2043         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2044
2045 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2046
2047         * c-decl.c (c_override_global_bindings_to_false): Remove.
2048         (global_bindings_p): Don't check
2049         c_override_global_bindings_to_false.
2050         * c-tree.h (c_override_global_bindings_to_false): Remove.
2051         * c-typeck.c (composite_type): Don't set
2052         c_override_global_bindings_to_false.
2053
2054 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2055
2056         PR target/48857, 48495
2057         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2058         (VSX_MODE): Ditto.
2059         (VSX_MOVE_MODE): Ditto.
2060         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2061         VSX vector types.  Add V2DImode.
2062         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2063         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2064         (MODES_TIEABLE_P): Ditto.
2065
2066         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2067         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2068         VSX_VECTOR_MODE.
2069         (init_cumulative_args): Ditto.
2070         (rs6000_function_arg_boundary): Ditto.
2071         (rs6000_function_arg_advance_1): Ditto.
2072         (rs6000_function_arg): Ditto.
2073         (rs6000_function_ok_for_sibcall): Ditto.
2074         (emit_frame_save): Ditto.
2075         (rs6000_function_value): Ditto.
2076         (rs6000_libcall_value): Ditto.
2077
2078 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2079
2080         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2081         i386/darwin-lib.h to $libgcc_tm_file.
2082         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2083
2084 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2085
2086         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2087
2088 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2089
2090         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2091         * config/rs6000/rs6000-tables.opt: New file (generated).
2092         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2093         rs6000/rs6000-tables.opt to extra_options.
2094         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2095         * config/rs6000/rs6000.c (rs6000_select): Remove.
2096         (processor_target_table): Move contents to rs6000-cpus.def.
2097         (darwin_rs6000_override_options): Check
2098         global_options_set.x_rs6000_cpu_index instead of
2099         rs6000_select[1].string.
2100         (rs6000_option_override_internal): Likewise.
2101         (rs6000_handle_option): Don't assert that global structures are in
2102         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2103         (rs6000_default_cpu): New variable.
2104         (rs6000_file_start): Set it instead of local default_cpu.  Check
2105         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2106         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2107         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2108         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2109         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2110         rs6000_select): Remove.
2111         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2112         Remove.
2113         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2114         * config/rs6000/t-rs6000
2115         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2116         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2117         global_options_set.x_rs6000_cpu_index instead of
2118         rs6000_select[1].string.
2119         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2120         global_options_set.x_rs6000_cpu_index instead of
2121         rs6000_select[1].string.
2122
2123 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2124
2125         * config.gcc (libgcc_tm_file): Define instead of including files
2126         from ../../libgcc/config/ in tm_file.
2127         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2128         * configure: Regenerate.
2129         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2130         libgcc_tm.h, cs-libgcc_tm.h): New.
2131         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2132         (clean): Remove libgcc_tm.h.
2133         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2134         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2135         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2136
2137 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2138
2139         PR target/48896
2140         * config/avr/avr.c (avr_ret_register): Return unsigned int
2141         instead of int.
2142         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2143         it to avr_libcall_value.
2144         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2145         expand_expr.
2146         (avr_expand_binop_builtin): Ditto.
2147         (avr_expand_unop_builtin): Ditto.
2148
2149 2011-05-10  DJ Delorie  <dj@redhat.com>
2150
2151         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2152         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2153         * config/rx/rx.c (rx_align_for_label): Add label and
2154         uses_threshold parameters.  Do not align when the label is not
2155         used enough.
2156         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2157
2158 2011-05-10  Richard Guenther  <rguenther@suse.de>
2159
2160         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2161         a series of conversions and apply foldings similar to what
2162         fold-const does.
2163         (tree_ssa_forward_propagate_single_use_vars): Call it.
2164
2165 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2166
2167         PR tree-optimization/48611
2168         PR tree-optimization/48794
2169         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2170         referenced from RESX or EH_DISPATCH arguments.
2171
2172         PR debug/48928
2173         * dfp.c (decimal_to_decnumber): Handle conversion from
2174         dconst{1,2,m1,half}.
2175
2176 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2177
2178         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2179         for !flag_prefer_avx128.
2180         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2181
2182 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2183
2184         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2185         (fold_ternary_loc): Use expr_location_or.
2186
2187 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2188
2189         PR debug/48853
2190         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2191         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2192         Pmode and mem_mode is not VOIDmode.
2193
2194 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2195
2196         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2197         TYPE_QUAL_RESTRICT): Convert to enum.
2198
2199 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2200
2201         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2202         (const_pow2_1_to_8_operand): Ditto.
2203         (const_pow2_1_to_128_operand): Ditto.
2204         (const_pow2_1_to_32768_operand): Ditto.
2205         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2206         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2207         in insn constraint to check integer value of operand 3.
2208         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2209
2210         (PINSR_MODE): New mode iterator.
2211         (sse2p4_1): New mode attribute.
2212         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2213         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2214         iterator.  Use const_int_operand instead of
2215         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2216         exact_log2 in insn constraint to check integer value of operand 3.
2217
2218 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2219
2220         * config/i386/sse.md (blendbits): Remove mode attribute.
2221         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2222         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2223         Check integer value of operand 3 in insn constraint.
2224
2225 2011-05-09  Richard Guenther  <rguenther@suse.de>
2226
2227         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2228         for diagnostics.
2229         (lto_symtab_merge): Likewise.  Do not register types here.
2230         (lto_symtab_merge_decls_2): Likewise.
2231         (lto_symtab_merge_decls_1): Likewise.
2232         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2233         * gimple.c (enum gtc_mode): Declare.
2234         (gimple_types_compatible_p): Make static.
2235
2236 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2237
2238         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2239         temporary register to match Pmode.
2240
2241 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2242
2243         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2244         and *vec_concatv4si_1_avx.
2245
2246 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2247
2248         PR rtl-optimization/48927
2249         * ira-conflicts.c (commutative_constraint_p): Use
2250         recog_data.alternative_enabled_p to disable alternatives where
2251         "enabled" attribute is false.
2252         (get_dup_num): Ditto.
2253         * ira-lives.c (single_reg_class): Ditto.
2254         (ira_implicitly_set_insn_hard_regs): Ditto.
2255
2256 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2257
2258         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2259         (dataflow_set_preserve_mem_locs): Likewise.
2260
2261 2011-05-09  Philipp Thomas  <pth@suse.de>
2262
2263         * config/mep/mep.c (mep_validate_vliw): Syntax description
2264         should not be translated.
2265
2266 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2267
2268         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2269         * config/mips/mips-tables.opt: New file (generated).
2270         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2271         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2272         MIPS_ARCH_OPTION_NATIVE): Define.
2273         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2274         mips-cpus.def.
2275         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2276         mips_parse_cpu): Remove.
2277         (mips_cpu_info_from_opt, mips_default_arch): New.
2278         (mips_handle_option): Don't assert that global structures are in
2279         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2280         (mips_option_override): Use new variables and functions to set
2281         state of these options.  Use strcmp to check for individual CPU names.
2282         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2283         definition.
2284         * config/mips/mips.opt (march=): Use ToLower and Enum.
2285         (mips): Use ToLower, Enum and Var.
2286         (mtune=): Use ToLower and Enum.
2287         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2288
2289 2011-05-08  Jan Hubicka  <jh@suse.cz>
2290
2291         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2292         Arrange type pairs to be UID ordered.
2293         (gimple_lookup_type_leader): Make inline.
2294
2295 2011-05-09  Nick Clifton  <nickc@redhat.com>
2296
2297         PR target/48899
2298         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2299         PROCESSOR_DEFAULT.
2300
2301         PR target/48897
2302         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2303         variable 's'.
2304
2305 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2306
2307         * combine.c (simplify_comparison): Abstract out parts into...
2308         (simplify_compare_const): ... new function.
2309         (try_combine): Generalize parallel arithmetic/compare combining
2310         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2311
2312 2011-05-08  Jan Hubicka  <jh@suse.cz>
2313
2314         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2315         (cgraph_create_virtual_clone): Call hooks once virtual clone
2316         is finished.
2317         * cgraph.h (cgraph_clone_node): Update prototype.
2318         * ipa-cp.c (ipcp_estimate_growth): Use
2319         estimate_ipcp_clone_size_and_time.
2320         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2321         * lto-cgraph.c (input_node): Update.
2322         * ipa-inline.c (recursive_inlining): Update.
2323         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2324         (evaluate_conditions_for_known_args): Break out from ...
2325         (evaluate_conditions_for_edge): ... here.
2326         (evaluate_conditions_for_ipcp_clone): New function.
2327         (inline_node_duplication_hook): Update clone summary based
2328         on parameter map.
2329         (estimate_callee_size_and_time): Rename to ...
2330         (estimate_node_size_and_time): take NODE instead of EDGE;
2331         take POSSIBLE_TRUTHS as argument.
2332         (estimate_callee_size_and_time): Update.
2333         (estimate_ipcp_clone_size_and_time): New function.
2334         (do_estimate_edge_time): Update.
2335
2336 2011-05-08  Richard Guenther  <rguenther@suse.de>
2337
2338         PR middle-end/48908
2339         PR middle-end/48905
2340         * expmed.c (expand_shift_1): Compute adjusted constant shift
2341         amount manually.
2342
2343 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2344
2345         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2346
2347 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2348
2349         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2350
2351 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2352
2353         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2354
2355 2011-05-07  Jan Hubicka  <jh@suse.cz>
2356
2357         * ipa-inline-transform.c (inline_call): Account when program size
2358         decreases.
2359         * ipa-inline.c (relative_time_benefit): New function.
2360         (edge_badness): Reorganize to be power 2 based; fix thinko when
2361         computing badness for negative growth; update comments to match
2362         reality; better dumps.
2363
2364 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2367         type to bool and adjust comment.
2368         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2369         (fold_mathfn_compare): Remove calls to global_bindings_p.
2370         (fold_inf_compare): Likewise.
2371         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2372         * c-tree.h (global_bindings_p): Adjust prototype.
2373         * c-decl.c (global_bindings_p): Return bool and simplify.
2374
2375 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2376
2377         PR tree-optimization/48837
2378         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2379         when accumulator transformation is performed.
2380
2381 2011-05-06  Jan Hubicka  <jh@suse.cz>
2382
2383         * i386.h (ix86_tune_indices): Add
2384         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2385         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2386         * i386.c (initial_ix86_tune_features): Add
2387         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2388         (software_prefetching_beneficial_p): Remove predicate.
2389         (ix86_option_override_internal): Use new macro.
2390
2391 2011-05-06  Jan Hubicka  <jh@suse.cz>
2392
2393         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2394
2395 2011-05-06  Jan Hubicka  <jh@suse.cz>
2396
2397         * cgraph.c (cgraph_add_thunk): Create real function node instead
2398         of alias node; finalize it and mark needed/reachale; arrange visibility
2399         to be right and add it into the corresponding same comdat group list.
2400         (dump_cgraph_node): Dump thunks.
2401         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2402         cgraph_function_with_gimple_body_p,
2403         cgraph_first_function_with_gimple_body,
2404         cgraph_next_function_with_gimple_body): New functions.
2405         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2406         New macros.
2407         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2408         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2409         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2410         devirtualization when optimizing.
2411         (verify_cgraph_node): Verify thunks.
2412         (cgraph_analyze_function): Analyze thunks.
2413         (cgraph_mark_functions_to_output): Output thunks only in combination
2414         with function they are assigned to.
2415         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2416         alias into normal node.
2417         (assemble_thunks): New functoin.
2418         (cgraph_expand_function): Use it.
2419         * lto-cgraph.c (lto_output_node): Stream thunks.
2420         (input_overwrite_node): Stream in thunks.
2421         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2422         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2423         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2424         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2425         (inline_analyze_function): Do not care about thunk jump functions.
2426         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2427         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2428         cgraph_function_with_gimple_body_p.
2429         * passes.c (do_per_function_toporder): Use
2430         cgraph_function_with_gimple_body_p.
2431         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2432         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2433         (function_called_by_processed_nodes_p): Likewise.
2434
2435 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2436
2437         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2438         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2439         entries.
2440         (mabi=): Replace with separate entries for mabi=altivec,
2441         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2442         mabi=ieeelongdouble and mabi=ibmlongdouble.
2443         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2444         check for -mabi=spe without SPE ABI support here.
2445         (rs6000_handle_option): Replace OPT_mabi_ handling with
2446         OPT_mabi_altivec and OPT_mabi_spe handling.
2447
2448 2011-05-06  Cary Coutant  <ccoutant@google.com>
2449
2450         * dwarf2out.c (contains_subprogram_definition): New function.
2451         (should_move_die_to_comdat): Call it.
2452
2453 2011-05-06  Jeff Law  <law@redhat.com>
2454
2455         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2456         remove_ctrl_stmt_and_useless_edges.
2457         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2458         (fixup_template_block, thread_single_edge): Likewise.
2459         (mark_threaded_blocks): Use THREAD_TARGET.
2460
2461 2011-05-06  Alan Modra  <amodra@gmail.com>
2462
2463         PR target/48900
2464         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2465         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2466
2467 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2468
2469         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2470         constraint modifier to "r".
2471
2472 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2473
2474         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2475         fall through for OPT_mcmodel_.
2476
2477 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2478
2479         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2480         instruction sizes.
2481         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2482
2483 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2484
2485         PR target/47930
2486         * config/arm/arm.opt (marm): Document it.
2487         (mthumb): Reject negative variant.
2488
2489 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2490
2491         PR target/48898
2492         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2493         Fix typo in "ccvt" variable name.
2494
2495 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2496
2497         PR target/48895
2498         * config/vms/vms-ar.c (main): Remove cwd variable.
2499
2500 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2501
2502         PR debug/48902
2503         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2504
2505 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2506
2507         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2508         * gimplify.c (gimplify_switch_expr): Likewise.
2509         * omp-low.c (expand_omp_sections): Likewise.
2510         * tree-eh.c (lower_try_finally_switch): Likewise.
2511         (lower_eh_dispatch): Likewise.
2512         * tree.h (build_case_label): Declare.
2513         * tree.c (build_case_label): Define.
2514
2515 2011-05-05  Jason Merrill  <jason@redhat.com>
2516
2517         PR c++/40975
2518         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2519         (copy_statement_list): Don't recurse.
2520         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2521         STATEMENT_LIST.
2522
2523 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2524
2525         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2526         through from -mfpu= handling.
2527         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2528
2529 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2530
2531         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2532         POST_MODIFY.
2533
2534 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2535
2536         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2537         for 11.31.
2538         (hppa[12]*-*-hpux11*): Ditto.
2539         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2540         * config/ia64/hpux-unix2003.h: New.
2541         * config/pa/pa-hpux1131.opt: New.
2542         * config/pa/pa-hpux1131.h: New.
2543         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2544         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2545         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2546
2547 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2548
2549         PR debug/48853
2550         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2551         instead of mode as 3rd argument to recursive call.
2552         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2553         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2554         VOIDmode.
2555         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2556         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2557         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2558         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2559
2560 2011-05-05  Julian Brown  <julian@codesourcery.com>
2561
2562         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2563         parenthesis in D-register case.
2564
2565 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2566
2567         * opt-functions.awk (var_type_struct): Handle Enum options.
2568         * optc-gen.awk: Don't check range of variables of character type.
2569         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2570         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2571         rs6000_sdata_name, rs6000_explicit_options): Remove.
2572         (rs6000_option_override_internal): Check for -malign-power here.
2573         Use global_options_set instead of rs6000_explicit_options.
2574         (rs6000_parse_fpu_option): Remove.
2575         (rs6000_handle_option): Access variables via opts and opts_set
2576         pointers.  Use error_at and warning_at.  Add fall-through
2577         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2578         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2579         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2580         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2581         here.  Don't use rs6000_parse_fpu_option.
2582         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2583         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2584         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2585         (mrecip=): Use Var.
2586         (mspe): Use Var and Save.
2587         (mtraceback=): Use Enum and Var.
2588         (rs6000_traceback_type): New Enum and EnumValue entries.
2589         (mfloat-gprs=): Use Enum, Var and Save.
2590         (rs6000_float_gprs): New Enum and EnumValue entries.
2591         (mlong-double-): use Var and Save.
2592         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2593         (malign-): Use Enum and Var.
2594         (rs6000_alignment_flags): New Enum and EnumValue entries.
2595         (mfpu=): Use Enum.
2596         (fpu_type_t): New Enum and EnumValue entries.
2597         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2598         global_options_set instead of rs6000_explicit_options.
2599         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2600         global_options_set instead of rs6000_explicit_options.
2601         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2602         global_options_set instead of rs6000_explicit_options.
2603         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2604         global_options_set instead of rs6000_explicit_options.
2605         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2606         global_options_set instead of rs6000_explicit_options.
2607         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2608         global_options_set instead of rs6000_explicit_options.
2609         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2610         definition.
2611         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2612         global_options_set instead of rs6000_explicit_options.
2613         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2614         (rs6000_cmodel): New Enum and EnumValue entries.
2615         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2616         global_options_set instead of rs6000_explicit_options.
2617         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2618         (mtls-size=): Use Enum and Var.
2619         (rs6000_tls_size): New Enum and EnumValue entries.
2620
2621 2011-05-05  Michael Matz  <matz@suse.de>
2622
2623         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2624         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2625         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2626         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2627         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2628         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2629         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2630         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2631         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2632         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2633         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2634         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2635         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2636         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2637         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2638         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2639
2640 2011-05-05  Richard Guenther  <rguenther@suse.de>
2641
2642         * expmed.c (expand_variable_shift): Rename to ...
2643         (expand_shift_1): ... this.  Take an expanded shift amount.
2644         For rotates recurse directly not building trees for the shift amount.
2645         (expand_variable_shift): Wrap around expand_shift_1.
2646         (expand_shift): Adjust.
2647
2648 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2649
2650         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2651
2652 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2653
2654         * tree.h (get_pending_sizes): Remove prototype.
2655         (put_pending_size): Likewise.
2656         (put_pending_sizes): Likewise.
2657         * stor-layout.c (pending_sizes): Delete.
2658         (get_pending_sizes): Likewise.
2659         (put_pending_size): Likewise.
2660         (put_pending_sizes): Likewise.
2661         (variable_size): Do not call put_pending_size and tidy up.
2662         * function.h (struct function): Remove dont_save_pending_sizes_p.
2663         * lto-streamer-in.c (input_function): Do not stream it.
2664         * lto-streamer-out.c (output_function): Likewise.
2665         * tree-inline.c (initialize_cfun): Do not copy it.
2666         * c-decl.c (store_parm_decls): Do not set it.
2667         * omp-low.c (create_task_copyfn): Likewise.
2668         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2669
2670 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2671
2672         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2673         conditions.
2674         (*movdf_internal): Ditto.
2675         (*movdf_internal_nointeger): Ditto.
2676         (*movsf_internal): Ditto.
2677
2678 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2679
2680         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2681         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2682         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2683         (c_variable_size): Remove.
2684         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2685         call put_pending_sizes.
2686         (get_parm_info): Add parameter expr.  Use it to set
2687         arg_info->pending_sizes.
2688         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2689         get_pending_sizes.
2690         * c-parser.c (c_parser_parms_declarator): Update call to
2691         c_parser_parms_list_declarator.
2692         (c_parser_parms_list_declarator): Take parameter expr.  Update
2693         call to push_parm_decl.  Update recursive call.  Don't call
2694         get_pending_sizes.  Update calls to get_parm_info.
2695         (c_parser_objc_method_definition): Update calls to
2696         c_parser_objc_method_decl and objc_start_method_definition.
2697         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2698         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2699         grokparm.
2700         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2701         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2702         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2703
2704 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2705
2706         PR pch/45979
2707         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2708         __ARM_EABI__ hosts.
2709
2710 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2711
2712         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2713         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2714         (spu_output_mi_thunk): New function.
2715
2716 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2717
2718         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2719         targetm.asm_out.print_operand.
2720         * config/sol2.c: Include target.h.
2721
2722 2011-05-04  Jan Hubicka  <jh@suse.cz>
2723
2724         * ipa-inline.c (reset_edge_caches): New function.
2725         (update_caller_keys): Add check_inlinablity_for; do not
2726         reset edge caches; remove now unnecesary loop.
2727         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2728         (update_all_callee_keys): Likewise.
2729         (inline_small_functions): Sanity check cache; update code
2730         recomputing it.
2731
2732 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2733
2734         PR rtl-optimization/47612
2735         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2736         as the last insn of the sequence to be moved.
2737
2738 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2739
2740         PR fortran/48864
2741         * doc/invoke.texi (Ofast): Document that it
2742         enables Fortran's -fno-protect-parens.
2743
2744 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2745
2746         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2747
2748 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2749
2750         * stor-layout.c (variable_size): Do not issue errors.
2751
2752 2011-05-04  Richard Guenther  <rguenther@suse.de>
2753
2754         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2755         for array-ref indices.
2756         (tree_coverage_counter_addr): Likewise.
2757         (build_fn_info_type): Use size_int for index types.
2758         (build_gcov_info): Likewise.
2759
2760 2011-05-04  Richard Guenther  <rguenther@suse.de>
2761
2762         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2763         to build_int_cst.
2764         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2765         for constructor indices.
2766         (push_init_level): Likewise.
2767
2768 2011-05-04  Richard Guenther  <rguenther@suse.de>
2769
2770         * explow.c (promote_mode): Move variable declarations before code.
2771
2772 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2773
2774         * tree.h (build_function_type_array): Declare.
2775         (build_varargs_function_type_array): Declare.
2776         (build_function_type_vec, build_varargs_function_type_vec): Define.
2777         * tree.c (build_function_type_array_1): New function.
2778         (build_function_type_array): New function.
2779         (build_varargs_function_type_array): New function.
2780
2781 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2782
2783         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2784         before setting STMT_VINFO_TYPE.
2785
2786 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2787
2788         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2789         instead of spu_pass_by_reference.
2790
2791 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2792
2793         * calls.c (emit_library_call_value_1): Invoke
2794         promote_function_mode hook on libcall arguments.
2795         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2796         argument being NULL.
2797         * targhooks.c (default_promote_function_mode): Lisewise.
2798         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2799         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2800
2801         * doc/tm.texi: Document that TYPE argument might be NULL.
2802
2803 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2804
2805         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2806
2807 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2808
2809         From Bernd Schmidt
2810         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2811
2812 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2813
2814         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2815         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2816         Move ...
2817         * mips-tfile.c: ... here.
2818         Don't include coretypes.h, tm.h, filenames.h.
2819         (saber_stop): Remove definition and all calls.
2820         [__SABER__]: Remove.
2821         (__LINE__): Remove default.
2822         (Size_t, Ptrdiff_t): Remove definitions.
2823         Replace by size_t, ptrdiff_t.
2824         [!MIPS_DEBUGGING_INFO]: Remove.
2825         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2826         (progname): Add const.
2827         (STATIC): Remove.
2828         Replace all uses by static.
2829         (ALIGN_SYMTABLE_OFFSET): Remove default.
2830         * mips-tdump.c: Don't include coretypes.h, tm.h.
2831         Remove !MIPS_IS_STAB guard.
2832         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2833         $(TM_H), filenames.h dependencies.
2834         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2835
2836 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2837
2838         From Jie Zhang
2839         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2840         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2841
2842 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2843
2844         From Bernd Schmidt
2845         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2846         account and save/restore RETS.
2847         (PROFILE_BEFORE_PROLOGUE): Define.
2848         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2849         the push insn to use predecrement.
2850
2851 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2852
2853         From Jie Zhang
2854         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2855
2856 2011-05-04  Nick Clifton  <nickc@redhat.com>
2857
2858         * config/mn10300/mn10300.c: Include cfgloop.h.
2859         (DUMP): New macro.
2860         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2861         Lcc or a FLcc insn into the instruction stream.
2862         (mn10300_block_contains_call): New function.  Returns true if the
2863         given basic block contains a CALL insn.
2864         (mn10300_loop_contains_call_insn): New function.  Returns true if
2865         the given loop contains a CALL insn.
2866         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2867         to use the SETLB and Lcc or FLcc insns.
2868         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2869         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2870         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
2871         disable the SETLB optimization.
2872         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2873         __SETLB__ or __NO_SETLB__.
2874         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2875         (movsf_internal): Handle MDR register.
2876         (cmpsi): Make visible.
2877         (setlb): New pattern.
2878         (Lcc): New pattern.
2879         (FLcc): New pattern.
2880
2881 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2882
2883         PR target/48860
2884         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2885         for reg<->xmm moves.
2886         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2887         (vec_concatv2di_rex64_sse): Ditto.
2888         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2889         (*vec_extractv2di_1_rex64): Ditto.
2890
2891         Revert:
2892         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2893
2894         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2895         reg<->xmm moves.
2896         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2897
2898 2011-05-04  Richard Guenther  <rguenther@suse.de>
2899
2900         * tree.h (int_const_binop): Remove notrunc argument.
2901         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
2902         create integer constants that are properly truncated.
2903         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2904         (const_binop): Remove zero notrunc argument to int_const_binop.
2905         (size_binop_loc): Likewise.
2906         (fold_div_compare): Likewise.
2907         (maybe_canonicalize_comparison_1): Likewise.
2908         (fold_comparison): Likewise.
2909         (fold_binary_loc): Likewise.
2910         (multiple_of_p): Likewise.
2911         * expr.c (store_constructor): Likewise.
2912         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2913         (maybe_fold_stmt_addition): Likewise.
2914         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2915         * stor-layout.c (layout_type): Likewise.
2916         * tree-data-ref.c (tree_fold_divides_p): Likewise.
2917         * tree-sra.c (build_ref_for_offset): Likewise.
2918         (build_user_friendly_ref_for_offset): Likewise.
2919         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2920         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2921         * tree-ssa-loop-niter.c (inverse): Likewise.
2922         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2923         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2924         * tree-switch-conversion.c (check_range): Likewise.
2925         (build_constructors): Likewise.
2926         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2927         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2928         (extract_range_from_assert): Likewise.
2929         (vrp_int_const_binop): Likewise.
2930         (extract_range_from_binary_expr): Likewise.
2931         (extract_range_from_unary_expr): Likewise.
2932         (check_array_ref): Likewise.
2933         (find_case_label_range): Likewise.
2934         (simplify_div_or_mod_using_ranges): Likewise.
2935         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2936         comparing case labels for merging.
2937
2938 2011-05-03  Mark Wielaard  <mjw@redhat.com>
2939
2940         * dwarf2out.c (debug_str_hash_forced): Removed.
2941         (gen_label_for_indirect_string): Removed.
2942         (get_debug_string_label): Removed.
2943         (AT_string_form): Generate label directly.
2944         (output_indirect_string): Test indirect_string_node for
2945         DW_FORM_strp instead of checking label and refcount.
2946         (prune_indirect_string): Removed.
2947         (prune_unused_types): Don't check debug_str_hash_forced or
2948         call prune_indirect_string.
2949
2950 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2951
2952         PR other/48093
2953         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2954
2955 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2956
2957         PR debug/47994
2958         PR debug/47919
2959         * combine.c (try_combine): Skip debug insns at m_split tests.
2960
2961 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2962
2963         PR42288
2964         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2965         when info_section_emitted.
2966
2967 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2968
2969         * config/mips/mips-opts.h: New.
2970         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2971         to mips-opts.h.
2972         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2973         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2974         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2975         via opts pointer.
2976         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2977         mips-opts.h.
2978         (mips_abi, mips_code_readable): Don't declare.
2979         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2980         (mabi=): Use Enum and Var.
2981         (mips_abi): New Enum and EnumValue entries.
2982         (mcode-readable=): Use Enum and Var.
2983         (mips_code_readable_setting): New Enum and EnumValue entries.
2984         (mr10k-cache-barrier=): Use Enum and Var.
2985         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2986
2987 2011-05-03  Jan Hubicka  <jh@suse.cz>
2988
2989         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2990         replace hash by pointer map.
2991         (cgraph_node_set_element_def, cgraph_node_set_element,
2992         const_cgraph_node_set_element, varpool_node_set_element_def,
2993         varpool_node_set_element, const_varpool_node_set_element): Remove.
2994         (free_cgraph_node_set, free_varpool_node_set): New function.
2995         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2996         * tree-emutls.c: Free varpool node set.
2997         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2998         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2999         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3000         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3001         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3002         Move here from ipa.c; implement using pointer_map
3003         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3004         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3005         debug_cgraph_node_set, varpool_node_set_new,
3006         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3007         dump_varpool_node_set, debug_varpool_node_set):
3008         Move to ipa-uitls.c.
3009         * passes.c (ipa_write_summaries): Update.
3010
3011 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3012
3013         From Mike Frysinger:
3014         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3015         bf542/bf544/bf547/bf548/bf549.
3016
3017 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3018
3019         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3020
3021 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3022
3023         From Bernd Schmidt:
3024         * config/bfin/bfin.md (MOVCC): New mode_macro.
3025         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3026         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3027         comments from generated assembly.
3028
3029 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3030
3031         From Bernd Schmidt
3032         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3033         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3034         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3035         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3036         * config/bfin/lib1funcs.asm (___muldi3): New function.
3037
3038 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3039
3040         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3041         build_function_type_list instead of build_function_type.
3042         Rearrange initialization of `args' to do so.
3043
3044 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3045
3046         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3047         instead of build_function_type.
3048
3049 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3050
3051         * config/rs6000/rs6000.c (spe_init_builtins): Call
3052         build_function_type_list instead of build_function_type.
3053         (paired_init_builtins, altivec_init_builtins): Likewise.
3054         (builtin_function_type): Likewise.
3055
3056 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3057
3058         * config/sh/sh.c (sh_media_init_builtins): Call
3059         build_function_type_list instead of build_function_type.
3060
3061 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3062
3063         * config/sparc/sparc.c (sparc_file_end): Call
3064         build_function_type_list instead of build_function_type.
3065
3066 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3067
3068         * config/alpha/alpha.c (alpha_init_builtins): Call
3069         build_function_type_list instead of build_function_type.
3070
3071 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3072
3073         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3074         build_function_type_list instead of build_function_type.
3075
3076 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3077
3078         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3079         build_function_type_list instead of build_function_type.
3080         Delete `endlink' variable.
3081
3082 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3083
3084         * config/avr/avr.c (avr_init_builtins): Call
3085         build_function_type_list instead of build_function_type.
3086
3087 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3088
3089         * config/picochip/picochip.c (picochip_init_builtins): Call
3090         build_function_type_list instead of build_function_type.
3091         Delete `endlink' variable.
3092
3093 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3094
3095         * config/bfin/bfin.c (bfin_init_builtins): Call
3096         build_function_type_list instead of build_function_type.
3097
3098 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3099
3100         From Bernd Schmidt
3101         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3102         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3103
3104 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3105
3106         From Jie Zhang:
3107         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3108         libbffastfp overrides libgcc when -mfast-fp.
3109
3110 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3111
3112         Originally from Bernd Schmidt
3113         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3114         * config/bfin/bfin.c (override_options): Test it and error if
3115         TARGET_FDPIC.
3116
3117 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3118
3119         Originally From Bernd Schmidt
3120         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3121         FD-PIC.
3122
3123 2011-05-03  Jeff Law  <law@redhat.com>
3124
3125         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3126         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3127         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3128         than accessing AUX field directly.  Free the AUX field before
3129         clearing it.
3130         (thread_block, thread_through_loop_header): Likewise.
3131         (thread_single_edge, mark_threaded_blocks): Likewise.
3132         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3133         (register_jump_thread): Do not attempt to thread to a NULL edge.
3134
3135 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3136
3137         * function.c (init_function_start): Call decide_function_section.
3138         * varasm.c (decide_function_section): New function.
3139         (assemble_start_function): When not using
3140         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3141         or first_function_block_is_cold.
3142         * rtl.h (decide_function_section): Declare.
3143
3144 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3145             Jakub Jelinek  <jakub@redhat.com>
3146
3147         PR target/48774
3148         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3149         only succeed if req_mode is the same as set_mode.
3150
3151 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3152
3153         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3154         * genemit.c (gen_exp): Handle RETURN.
3155         * emit-rtl.c (verify_rtx_sharing): Likewise.
3156         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3157         * rtl.c (copy_rtx): RETURN is shared.
3158         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3159         (ret_rtx): New.
3160         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3161         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3162         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3163         * config/cris/cris.c (cris_expand_return): Likewise.
3164         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3165         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3166         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3167         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3168         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3169         Likewise.
3170         * config/v850/v850.c (expand_epilogue): Likewise.
3171         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3172         * config/arm/arm.md (epilogue): Likewise.
3173         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3174         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3175         variable to ret_reg.
3176
3177 2011-05-03  Richard Guenther  <rguenther@suse.de>
3178
3179         PR lto/48846
3180         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3181         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3182         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3183
3184 2011-05-03  Richard Guenther  <rguenther@suse.de>
3185
3186         * c-decl.c (grokdeclarator): Instead of looking at
3187         TREE_OVERFLOW check if the constant fits in the index type.
3188
3189 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3190
3191         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3192         (vec_store_lanes<mode><mode>): Likewise.
3193
3194 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3195
3196         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3197         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3198         convert_optab_index values.
3199         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3200         * genopinit.c (optabs): Initialize the new optabs.
3201         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3202         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3203         (expand_STORE_LANES): New functions.
3204         * tree.h (build_array_type_nelts): Declare.
3205         * tree.c (build_array_type_nelts): New function.
3206         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3207         (vect_model_load_cost): Likewise.
3208         (vect_store_lanes_supported, vect_load_lanes_supported)
3209         (vect_record_strided_load_vectors): Declare.
3210         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3211         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3212         (vect_transform_strided_load): Split out statement recording into...
3213         (vect_record_strided_load_vectors): ...this new function.
3214         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3215         (write_vector_array, create_array_ref): New functions.
3216         (vect_model_store_cost): Add store_lanes_p argument.
3217         (vect_model_load_cost): Add load_lanes_p argument.
3218         (vectorizable_store): Try to use store-lanes functions for
3219         interleaved stores.
3220         (vectorizable_load): Likewise load-lanes and loads.
3221         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3222         to vect_model_store_cost.
3223         (vect_build_slp_tree): Likewise vect_model_load_cost.
3224
3225 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3226
3227         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3228         * hooks.c (hook_bool_mode_uhwi_false): New function.
3229         * target.def (array_mode_supported_p): New hook.
3230         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3231         * doc/tm.texi: Regenerate.
3232         * stor-layout.c (mode_for_array): New function.
3233         (layout_type): Use it.
3234         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3235         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3236
3237 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3238
3239         PR target/48723
3240         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3241         for -fstack-check if the size to allocate is negative.
3242
3243 2011-05-02  Lawrence Crowl  <crowl@google.com>
3244
3245         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3246         (timevar_cond_start): New for starting a timer only when it is not
3247         already running.
3248         (timevar_cond_stop): New for stopping a timer when it was not already
3249         running.
3250
3251         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3252         (timevar_cond_start): New as above.
3253         (timevar_cond_stop): New as above.
3254
3255         * timevar.def: Add start/stop timers for compiler phases,
3256         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3257         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3258         and TV_PHASE_FINALIZE.
3259         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3260         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3261         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3262         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3263         Make unused TV_OVERLOAD into a start/stop timer.
3264
3265         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3266         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3267         to indicate that they are start/stop timers.
3268
3269         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3270         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3271         Move initialization to do_compile.
3272         (do_compile): Add initialization from above.
3273         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3274
3275         * c-decl.c (c_write_global_declarations): Add start/stop of
3276         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3277
3278         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3279         or TV_PARSE_INLINE, as appropriate.
3280         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3281         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3282
3283 2011-05-02  Jason Merrill  <jason@redhat.com>
3284
3285         PR c++/40975
3286         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3287
3288 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3289
3290         PR c/35445
3291         * c-decl.c (finish_decl): Only create a composite if the types are
3292         compatible.
3293
3294 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3295
3296         * config/fr30/fr30-protos.h (Mmode): Don't define.
3297         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3298         definition where used.
3299         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3300         define.  Expand definitions where used.
3301         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3302         Expand definitions where used.
3303         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3304         rx_function_arg, rx_function_arg_advance,
3305         rx_function_arg_boundary): Expand definitions of those macros.
3306         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3307         definition where used.
3308
3309 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3310
3311         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3312         reg<->xmm moves.
3313         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3314         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3315         with *movv2sf_internal_rex64_avx.
3316         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3317         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3318         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3319         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3320         "vex" in "prefix" attribute calculation.
3321         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3322
3323 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3324
3325         PR target/47951
3326         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3327         inputs match the output.
3328
3329 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3330
3331         PR target/47955
3332         * config/m68k/m68k.c (m68k_expand_prologue): Set
3333         current_function_static_stack_size.
3334
3335 2011-05-02   Jan Hubicka  <jh@suse.cz>
3336
3337         * lto-streamer.c (lto_streamer_cache_insert_1,
3338         lto_streamer_cache_lookup, lto_streamer_cache_create,
3339         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3340         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3341
3342 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3343
3344         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3345         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3346         config/m68k/t-opts: New files.
3347         * config/m68k/m68k-tables.opt: New file (generated).
3348         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3349         extra_options and m68k/t-opts to tmake_file.
3350         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3351         (all_isas): Initialize using m68k-isas.def.
3352         (all_microarchs): Initialize using m68k-microarchs.def.
3353         (m68k_find_selection): Remove.
3354         (m68k_handle_option): Don't assert that global structures are in
3355         use.  Use error_at.  Access variables via opts pointer.  Don't
3356         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3357         directly for -m68020-40 and -m68020-60.
3358         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3359         m68k_tune_entry here.
3360         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3361         to m68k-opts.h.
3362         (m68k_library_id_string): Remove declaration.
3363         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3364         (m68k_library_id_string): New Variable.
3365         (march=, mcpu=, mtune=): Use Enum and Var.
3366
3367 2011-05-02  Richard Guenther  <rguenther@suse.de>
3368
3369         * varasm.c (output_constructor_regular_field): Compute zero-based
3370         index with double-ints.  Make sure to ICE instead of producing
3371         wrong code.
3372         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3373         in asserts.  Properly use a signed type.
3374
3375 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3376
3377         * config/i386/sse.md (V): New mode iterator.
3378         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3379         TARGET_SSE2.
3380         (V_256): Rename from AVX256MODE.
3381         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3382         condition to all users.
3383         (VF1): Ditto.
3384         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3385         condition to all users.
3386         (VF_128): Make V4SF mode unconditional.
3387         (VF_256): Rename from AVX256MODEF2P.
3388         (VI4F_128): Rename from SSEMODE4S.
3389         (VI8F_128): Rename from SSEMODE2D.
3390         (VI4F_256): Rename from AVX256MODE8P.
3391         (VI8F_256): Rename from AVX256MODE4P.
3392         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3393         (ssescalarmodesuffix): Remove SF and DF modes.
3394         (SSEMODE124): Remove.
3395         (SSEMODE1248): Ditto.
3396         (SSEMODEF2P): Ditto.
3397         (AVXMODEF2P): Ditto.
3398         (AVXMODEFDP): Ditto.
3399         (AVXMODEFSP): Ditto.
3400         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3401         unconditional.
3402         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3403         unconditional.
3404         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3405         xop_pcmov_<mode>256.  Use V mode iterator.
3406
3407         Adjust RTX patterns globally for renamed mode attributes.
3408
3409 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3410
3411         * haifa-sched.c (sched_emit_insn): Emit insn before first
3412         non-scheduled insn.  Inform back-end about new insn.  Add
3413         new insn to scheduled_insns list.
3414
3415 2011-05-02  Richard Guenther  <rguenther@suse.de>
3416
3417         PR tree-optimization/48822
3418         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3419         (process_scc): Indicate which iteration we start.
3420
3421 2011-05-02  Jan Hubicka  <jh@suse.cz>
3422
3423         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3424         (lto_section_overrun): New.
3425         * lto-section-out.c (append_block): Rename to ...
3426         (lto_append_block): ... this one; export.
3427         (lto_output_1_stream): Move lto lto-streamer.h
3428         (lto_output_data_stream): Update.
3429         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3430         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3431         functions.
3432
3433 2011-05-02  Richard Guenther  <rguenther@suse.de>
3434
3435         * tree.c (tree_code_counts): New global array.
3436         (record_node_allocation_statistics): Count individual tree codes.
3437         (dump_tree_statistics): Dump individual code stats.
3438
3439 2011-05-01  Jan Hubicka  <jh@suse.cz>
3440
3441         * ipa-inline.c (caller_growth_limits): Fix thinko when
3442         looking for largest stack frame.
3443         * ipa-inline.h (dump_inline_summary): Declare.
3444         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3445         on stack usage.
3446         (dump_inline_summary): Export.
3447         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3448
3449 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3450
3451         * reginfo.c (memory_move_cost): Change rclass argument type form
3452         'enum reg_class' to reg_class_t.
3453         * reload.h (memory_move_cost): Update prototype.
3454         * postreload.c reload_cse_simplify_set): Change type dclass var to
3455         reg_class_t.
3456         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3457         Update prototype.
3458         (ira_allocate_and_set_costs): Change aclass argument type form
3459         'enum reg_class' to reg_class_t.
3460         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3461         Change aclass argument type to reg_class_t.
3462         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3463         to reg_class_t.
3464         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3465         memory_move_cost call.
3466
3467         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3468         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3469         Change type tmp var to reg_class_t.
3470
3471 2011-04-30  Jan Hubicka  <jh@suse.cz>
3472
3473         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3474         inlining into function with flatten attribute.
3475         (want_inline_small_function_p): Be more realistic about inlining
3476         cold calls where callee size grows.
3477
3478 2011-04-30  Jan Hubicka  <jh@suse.cz>
3479
3480         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3481         flags.
3482
3483 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3484
3485         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3486         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3487         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3488         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3489         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3490         (print_operand): Rename to...
3491         (sparc_print_operand): ...this. Make static. Adjust
3492         sparc_print_operand function call.
3493         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3494         functions.
3495
3496 2011-04-30  Jan Hubicka  <jh@suse.cz>
3497
3498         PR middle-end/48752
3499         * ipa-inline.c (early_inliner): Disable when doing late
3500         addition of function.
3501
3502 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3503
3504         * dwarf2out.c (get_address_mode): New inline.
3505         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3506         if not dwarf_strict emit
3507         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3508         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3509         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3510         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3511         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3512         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3513         mem_loc_descriptor callers.
3514         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3515         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3516         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3517         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3518         (base_types): New variable.
3519         (get_base_type_offset, calc_base_type_die_sizes,
3520         base_type_for_mode, mark_base_types, base_type_cmp,
3521         move_marked_base_types): New functions.
3522         (calc_die_sizes): Assert that die_offset is 0 or equal to
3523         next_die_offset.
3524         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3525         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3526         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3527         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3528         (gen_subprogram_die): Don't give up on call site parameters
3529         with non-integral or large integral modes.  Adjust
3530         mem_loc_descriptor callers.
3531         (prune_unused_types): Call prune_unused_types_mark on base_types
3532         vector entries.
3533         (resolve_addr): Call mark_base_types.
3534         (dwarf2out_finish): Call move_marked_base_types.
3535
3536         PR tree-optimization/48809
3537         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3538         type.
3539         (gen_inbound_check): Don't compute index_expr - range_min in utype
3540         again, instead reuse SSA_NAME initialized in build_arrays.
3541         Remove two useless gsi_for_stmt calls.
3542
3543 2011-04-29  Jeff Law  <law@redhat.com>
3544
3545         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3546
3547 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3548
3549         * cgraph.h (cgraph_postorder): Remove declaration.
3550         * ipa-utils.h (ipa_free_postorder_info): Declare.
3551         (ipa_reverse_postorder): Likewise.
3552         * cgraphunit.c: Include ipa-utils.h.
3553         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3554         * ipa-inline.c: Include ipa-utils.h.
3555         (ipa_inline): Update call to ipa_reverse_postorder.
3556         * ipa-pure-const.c (propagate_pure_const): Update call to
3557         ipa_reduced_postorder and ipa_print_order.  Call
3558         ipa_free_postorder_info to clean up.
3559         (propagate_nothrow): Likewise.
3560         * ipa-reference.c (propagate): Removed a useless call to
3561         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3562         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3563         * ipa.c: Include ipa-utils.h.
3564         (ipa_profile): Update call to ipa_reverse_postorder.
3565         (cgraph_postorder): Moved to...
3566         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3567         (ipa_utils_print_order): Renamed to ipa_print_order.
3568         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3569         comments.
3570         (ipa_free_postorder_info): New function.
3571         * passes.c: Include ipa-utils.h.
3572         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3573         (ipa_write_summaries): Likewise.
3574         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3575         (cgraphunit.o): Likewise.
3576         (ipa.o): Likewise.
3577         (ipa-inline.o): Likewise.
3578
3579 2011-04-29  Jan Hubicka  <jh@suse.cz>
3580
3581         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3582         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3583         * ipa-inline.h (clause_t): Turn into unsigned int.
3584         * ipa-inline-analysis.c (add_clause): Do more simplification.
3585         (and_predicates): Shortcut more cases.
3586         (predicates_equal_p): Move forward; check that clauses are properly
3587         ordered.
3588         (or_predicates): Shortcut more cases.
3589         (edge_execution_predicate): Rewrite as...
3590         (set_cond_stmt_execution_predicate): ... this function; handle
3591         __builtin_constant_p.
3592         (set_switch_stmt_execution_predicate): New .
3593         (compute_bb_predicates): New.
3594         (will_be_nonconstant_predicate): Update TODO.
3595         (estimate_function_body_sizes): Use compute_bb_predicates
3596         and free them later, always try to estimate if stmt is constant.
3597         (estimate_time_after_inlining, estimate_size_after_inlining):
3598         Gracefully handle optimized out edges.
3599         (read_predicate): Fix off by one error.
3600
3601 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3602
3603         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3604
3605 2011-04-27  Xinliang David Li  <davidxl@google.com>
3606
3607         * tree-profile.c (init_ic_make_global_vars): Set
3608         tls attribute on ic vars.
3609         * coverage.c (coverage_end_function): Initialize
3610         function_list with zero.
3611
3612 2011-04-29  Richard Guenther  <rguenther@suse.de>
3613
3614         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3615         for the type of the result.
3616         (fold_builtin_isascii): Likewise.
3617         (fold_builtin_toascii): Use integer_type_node where appropriate.
3618         (fold_builtin_logb): Likewise.
3619         (fold_builtin_frexp): Likewise.
3620         (fold_builtin_strstr): Likewise.
3621         (fold_builtin_strpbrk): Likewise.
3622         (fold_builtin_fputs): Likewise.
3623         (fold_builtin_sprintf): Likewise.
3624         (fold_builtin_snprintf): Likewise.
3625         (fold_builtin_printf): Likewise.
3626         (do_mpfr_remquo): Use a proper type for the assigned constant.
3627         (do_mpfr_lgamma_r): Likewise.
3628         * dwarf2out.c (resolve_one_addr): Use size_int.
3629         * except.c (init_eh): Likewise.
3630         (assign_filter_values): Use integer_type_node for filter values.
3631         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3632         indices.
3633         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3634         for EH region numbers.
3635         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3636         for the shift amount.
3637
3638 2011-04-29  Richard Guenther  <rguenther@suse.de>
3639
3640         * expr.h (expand_shift): Rename to ...
3641         (expand_variable_shift): ... this.
3642         (expand_shift): Take a constant shift amount.
3643         * expmed.c (expand_shift): Rename to ...
3644         (expand_variable_shift): ... this.
3645         (expand_shift): New wrapper around expand_variable_shift.
3646         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3647         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3648         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3649         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3650         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3651         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3652         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3653         emit_store_flag_1, emit_store_flag): Likewise.
3654         * builtins.c (expand_builtin_signbit): Likewise.
3655         * calls.c (load_register_parameters): Likewise.
3656         * function.c (assign_parm_setup_block): Likewise.
3657         * lower-subreg.c (resolve_shift_zext): Likewise.
3658         * optabs.c (widen_bswap, expand_abs_nojump,
3659         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3660         * spu/spu.c (spu_expand_extv): Likewise.
3661         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3662
3663 2011-04-29  Richard Guenther  <rguenther@suse.de>
3664
3665         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3666         for the remapped region number.
3667         * predict.c (build_predict_expr): Use integer_type_node for the
3668         predict kind.
3669         * fold-const.c (fold_binary_loc): Use integer_type_node for
3670         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3671
3672 2011-04-29  Michael Matz  <matz@suse.de>
3673
3674         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3675         other trees that just builtins.
3676         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3677
3678 2011-04-29  Richard Guenther  <rguenther@suse.de>
3679
3680         * tree-nested.c (get_trampoline_type): Use size_int.
3681         (get_nl_goto_field): Likewise.
3682         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3683         for all indexes.
3684         (lower_eh_constructs_2): Likewise.
3685         (lower_resx): Likewise.
3686         (lower_eh_dispatch): Likewise.
3687         * tree-mudflap.c (mf_build_string): Use size_int.
3688         (mudflap_register_call): Use integer_type_node for the flag.
3689         (mudflap_enqueue_constant): Use size_int.
3690         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3691         instead of rebuilding it.
3692
3693 2011-04-29  Richard Guenther  <rguenther@suse.de>
3694
3695         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3696         Handle OBJ_TYPE_REF.
3697         (find_func_aliases_for_call): Use it more consistently.
3698
3699 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3700
3701         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3702         (rank_for_schedule): Use it.
3703         (schedule_block): Set it.
3704
3705 2011-04-28  David Li  <davidxl@google.com>
3706
3707         * tree.c (crc32_string): Use crc32_byte.
3708         (crc32_byte): New function.
3709         * tree.h (crc32_byte): New function.
3710         * gcov.c (read_graph_file): Handle new cfg_cksum.
3711         (read_count_file): Ditto.
3712         * profile.c (instrument_values): Ditto.
3713         (get_exec_counts): Ditto.
3714         (read_profile_edge_counts): Ditto.
3715         (compute_branch_probabilities): Ditto.
3716         (compute_value_histograms): Ditto.
3717         (branch_prob): Ditto.
3718         (end_branch_prob): Ditto.
3719         * coverage.c (read_counts_file): Ditto.
3720         (get_coverage_counts): Ditto.
3721         (tree_coverage_counter_addr): Ditto.
3722         (coverage_checksum_string): Ditto.
3723         (coverage_begin_output): Ditto.
3724         (coverage_end_function): Ditto.
3725         (build_fn_info_type): Ditto.
3726         (build_fn_info_value): Ditto.
3727         * libgcov.c (gcov_exit): Ditto.
3728         * gcov-dump.c (tag_function): Ditto.
3729         (compute_checksum): Remove.
3730
3731 2011-04-29  Alan Modra  <amodra@gmail.com>
3732
3733         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3734         unspec plus offset.  Tidy macho code.
3735
3736 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3737
3738         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3739         node instead of a decl.  Update all callers.
3740         * cgraph.h: Update declaration.
3741
3742 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3743
3744         PR tree-optimization/48765
3745         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3746         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3747         to indicate if loop aware SLP is being used.  Scan the statements
3748         and update the vectorization factor according to the type of
3749         vectorization before statement analysis.
3750         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3751         pass it to vect_analyze_loop_operations.
3752         (vectorizable_reduction): Set number of copies to 1 in case of pure
3753         SLP statement.
3754         * tree-vect-stmts.c (vectorizable_conversion,
3755         vectorizable_assignment, vectorizable_shift,
3756         vectorizable_operation, vectorizable_type_demotion,
3757         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3758         Likewise.
3759         (vectorizable_condition): Move the check that it is not SLP
3760         vectorization before the number of copies check.
3761         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3762         to vectorize the loop using SLP.
3763
3764 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3765
3766         PR middle-end/48597
3767         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3768         inline asm.
3769
3770 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3771
3772         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3773         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3774         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3775         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3776         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3777         linux*.h headers.
3778         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3779         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3780         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3781         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3782         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3783         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3784         REG_NAME.
3785         * config/i386/linux.h (REG_NAME): Don't define.
3786         * config/i386/linux64.h (REG_NAME): Don't define.
3787         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3788         Undefine before defining.
3789
3790 2011-04-28  Jan Hubicka  <jh@suse.cz>
3791
3792         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3793         nonconstant_names array.
3794         (estimate_function_body_sizes): Build nonconstant_names array; handle
3795         BUILT_IN_CONSTANT_P.
3796
3797 2011-04-28  Richard Guenther  <rguenther@suse.de>
3798
3799         PR bootstrap/48804
3800         Revert
3801         2011-04-28  Richard Guenther  <rguenther@suse.de>
3802
3803         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3804         as late as possible.
3805
3806 2011-04-28  Richard Guenther  <rguenther@suse.de>
3807
3808         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3809         (debug_constraint): Do it here.
3810         (dump_constraints): And here.
3811         (rewrite_constraints): And here.
3812         (dump_constraint_edge): Remove.
3813         (dump_constraint_graph): Rewrite to produce DOT output.
3814         (solve_constraints): Build succ graph as late as possible.
3815         Dump constraint graphs before and after solving.
3816
3817 2011-04-28  Richard Guenther  <rguenther@suse.de>
3818
3819         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3820         New function split out from ...
3821         (find_func_aliases): ... here.  Call it.
3822         (find_func_aliases_for_call): Likewise.
3823
3824 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3825
3826         * internal-fn.h (internal_fn_name_array): Declare.
3827         (internal_fn_flags_array): Likewise.
3828
3829 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3830
3831         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3832         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3833         Move from sse.md.
3834         (ssemodefsuffix): Remove.
3835         (ssevecmodesuffix): New mode attribute.
3836         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3837         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3838         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3839         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3840         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3841         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3842         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3843         ssemodesuffix mode attribute.
3844         (float splitters): Use ssevecmodesuffix mode attribute.
3845         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3846         (sseinsmode): Rename from avxvecmode.
3847         (avxsizesuffix): Rename from avxmodesuffix.
3848         (sseintvecmode): Rename from avxpermvecmode.
3849         (ssedoublevecmode): Rename from ssedoublesizemode.
3850         (ssehalfvecmode): Rename from avxhalfvecmode.
3851         (ssescalarmode): Rename from avxscalarmode.
3852         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3853         templates for ssemodesuffix mode attribute.
3854         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3855         mode attribute.
3856
3857         Adjust RTX patterns globally for renamed mode attributes.
3858
3859 2011-04-27  Jan Hubcika  <jh@suse.cz>
3860
3861         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3862         * ipa-inline-analysis.c: Include alloc-pool.h.
3863         (edge_predicate_pool): New.
3864         (trye_predicate_p): New function
3865         (false_predicate_p): New function.
3866         (add_clause): Sanity check that false clauses are "optimized";
3867         never add clauses to predicate that is already known to be false.
3868         (and_predicate): Use flase_predicate_p.
3869         (evaulate_predicate): Rename to ...
3870         (evaluate_predicate): ... this one; update all callers; assert
3871         that false is not listed among possible truths.
3872         (dump_predicate): Use true_predicate_p.
3873         (account_size_time): Use false_predicate_p.
3874         (evaulate_conditions_for_edge): Rename to ...
3875         (evaluate_conditions_for_edge) ... this one.
3876         (edge_set_predicate): New function.
3877         (inline_edge_duplication_hook): Duplicate edge predicates.
3878         (inline_edge_removal_hook): Free edge predicates.
3879         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
3880         (dump_inline_summary): Update.
3881         (estimate_function_body_sizes): Set edge predicates.
3882         (estimate_calls_size_and_time): Handle predicates.
3883         (estimate_callee_size_and_time): Update.
3884         (remap_predicate): Add toplev_predicate; update comment.
3885         (remap_edge_predicates): New function.
3886         (inline_merge_summary): Compute toplev predicate; update.
3887         (read_predicate): New function.
3888         (read_inline_edge_summary): Use it.
3889         (inline_read_section): Likewise.
3890         (write_predicate): New function.
3891         (write_inline_edge_summary): Use it.
3892         (inline_write_summary): Likewise.
3893         (inline_free_summary): Free alloc pool and edge summary vec.
3894
3895 2011-04-27  Richard Guenther  <rguenther@suse.de>
3896
3897         * tree-ssa-structalias.c (changed_count): Remove.
3898         (changed): Use a bitmap.
3899         (unify_nodes): Adjust.
3900         (do_sd_constraint): Likewise.
3901         (do_ds_constraint): Likewise.
3902         (do_complex_constraint): Likewise.
3903         (solve_graph): Likewise.
3904
3905 2011-04-27  Jan Hubicka  <jh@suse.cz>
3906
3907         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3908
3909 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3910
3911         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3912         (avx_vperm2f128_*_operand): Ditto.
3913         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3914         Use avx_vpermilp_parallel in insn condition.
3915         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3916         Use avx_vperm2f128_parallel in insn condition.
3917
3918 2011-04-27  Richard Guenther  <rguenther@suse.de>
3919
3920         * Makefile.in (tree-ssa-structalias.o): Remove
3921         gt-tree-ssa-structalias.h dependency.
3922         (GTFILES): Remove tree-ssa-structalias.c.
3923         * tree.c (allocate_decl_uid): New function.
3924         (make_node_stat): Use it.
3925         (copy_node_stat): Likewise.
3926         * tree.h (allocate_decl_uid): Declare.
3927         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3928         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3929         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
3930         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
3931         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3932         (struct heapvar_map): Likewise.
3933         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3934         heapvar_insert): Likewise.
3935         (make_heapvar_for): Rename to ...
3936         (make_heapvar): ... this.  Simplify.
3937         (fake_var_decl_obstack): New global var.
3938         (build_fake_var_decl): New function.
3939         (make_constraint_from_heapvar): Adjust.
3940         (handle_lhs_call): Likewise.
3941         (create_function_info_for): Likewise.
3942         (intra_create_variable_infos): Likewise.
3943         (init_alias_vars): Allocate fake_var_decl_obstack.
3944         (init_alias_heapvars, delete_alias_heapvars): Remove.
3945         (compute_points_to_sets): Do not call init_alias_heapvars.
3946         (ipa_pta_execute): Likewise.
3947         (delete_points_to_sets): Free fake_var_decl_obstack.
3948
3949 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3950
3951         * config/spu/divmovti4.c (union qword_UTItype): New data type.
3952         (si_from_UTItype, si_to_UTItype): New functions.
3953         (__udivmodti4): Use them to implement type-punning.
3954         * config/spu/multi3.c (union qword_TItype): New data type.
3955         (si_from_TItype, si_to_TItype): New functions.
3956         (__multi3): Use them to implement type-punning.
3957
3958 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3959
3960         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3961
3962 2011-04-27  Jan Hubicka  <jh@suse.cz>
3963
3964         * ipa-prop.c (function_insertion_hook_holder): New holder.
3965         (ipa_add_new_function): New function.
3966         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3967         Register/deregister holder.
3968
3969 2011-04-27  Richard Guenther  <rguenther@suse.de>
3970
3971         PR tree-optimization/48772
3972         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3973
3974 2011-04-27  Richard Guenther  <rguenther@suse.de>
3975
3976         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3977         TARGET_MEM_REF handling.
3978
3979 2011-04-27  Nick Clifton  <nickc@redhat.com>
3980
3981         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3982         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3983         (REG_CLASS_NAMES): Likewise.
3984         (REG_CLASS_CONTENTS): Likewise.
3985         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3986         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3987         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3988         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3989         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3990         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3991         duplicate register classes.
3992         (frv_class_likely_spilled_p): Likewise.
3993         (frv_register_move_cost): Likewise.
3994
3995         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3996         end of the regno_reg_class array.
3997
3998 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3999
4000         PR c/48742
4001         * c-typeck.c (build_binary_op): Don't wrap arguments if
4002         int_operands is true.
4003
4004 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4005
4006         PR target/48767
4007         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4008         targetm.calls.must_pass_in_stack for void type.
4009
4010 2011-04-26  Jan Hubicka  <jh@suse.cz>
4011
4012         * cgraphbuild.c (build_cgraph_edges): Update call
4013         of cgraph_create_edge and cgraph_create_indirect_edge.
4014         * cgraph.c (cgraph_create_edge_including_clones,
4015         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4016         cgraph_update_edges_for_call_stmt_node): Do not take nest
4017         argument; do not initialize call_stmt_size/time.
4018         (dump_cgraph_node): Do not dump nest.
4019         (cgraph_clone_edge): Do not take loop_nest argument;
4020         do not propagate it; do not clone call_stmt_size/time.
4021         (cgraph_clone_node): Likewise.
4022         (cgraph_create_virtual_clone): Update.
4023         * cgraph.h (struct cgraph_edge): Remove
4024         call_stmt_size/call_stmt_time/loop_nest.
4025         (cgraph_create_edge, cgraph_create_indirect_edge,
4026         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4027         prototype.
4028         * tree-emutls.c (gen_emutls_addr): Update.
4029         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4030         loop_nest; handle indirect calls, too.
4031         (clone_inlined_nodes): Do not care about updating inline summaries.
4032         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4033         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4034         stream call_stmt_size/call_stmt_time/loop_nest.
4035         * ipa-inline.c (edge_badness): Update.
4036         (ipa_inline): dump summaries after inlining.
4037         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4038         New.
4039         (inline_edge_summary): New function.
4040         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4041         (inline_edge_removal_hook): Handle edge summaries.
4042         (inline_edge_duplication_hook): New hook.
4043         (inline_summary_alloc): Alloc hooks.
4044         (initialize_growth_caches): Do not register removal hooks.
4045         (free_growth_caches); Do not free removal hook.
4046         (dump_inline_edge_summary): New function.
4047         (dump_inline_summary): Use it.
4048         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4049         (inline_update_callee_summaries): New function.
4050         (inline_merge_summary): Use it.
4051         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4052         (read_inline_edge_summary): New function.
4053         (inline_read_section): Use it.
4054         (write_inline_edge_summary): New function.
4055         (inline_write_summary): Use it.
4056         (inline_free_summary): Free edge new holders.
4057         * tree-inline.c (copy_bb): Update.
4058
4059 2011-04-26  Jason Merrill  <jason@redhat.com>
4060
4061         * tree-eh.c (lower_try_finally_switch): Create the label along with
4062         the CASE_LABEL_EXPR.
4063
4064 2011-04-26  David S. Miller  <davem@davemloft.net>
4065             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4066
4067         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4068         * configure: Regenerate.
4069
4070 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4071
4072         PR target/48258
4073         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4074         reduction.
4075         (VEC_reduc): New code iterator and splitters for vector reduction.
4076         (VEC_reduc_name): Ditto.
4077         (VEC_reduc_rtx): Ditto.
4078         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4079         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4080
4081         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4082         support for extracting SF on VSX.
4083
4084         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4085         generating xscvspdp.
4086         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4087         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4088         double add, minimum, maximum vector reduction.
4089         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4090         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4091         optimize double vector reduction.
4092         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4093
4094 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4095
4096         * config/fr30/fr30.h (inhibit_libc): Don't define.
4097         * config/m32r/m32r-protos.h: Correct comment.
4098         * config/v850/v850.h (GHS_default_section_names,
4099         GHS_current_section_names): Use tree, not union tree_node *.
4100
4101 2011-04-26  Xinliang David Li  <davidxl@google.com>
4102
4103         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4104         * c-family/c-opts.c (c_common_handle_option): Set
4105         warn_maybe_uninitialized.
4106         * opts.c (common_handle_option): Ditto.
4107         * common.opt:  New option.
4108         * tree-ssa.c (warn_uninit): Add one more parameter.
4109         (warn_uninitialized_var): Pass warning code.
4110         * tree-flow.h: Interface change.
4111
4112
4113 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4114
4115         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4116         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4117         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4118
4119 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4120
4121         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4122         * config/mips/mips.opt (mmips-tfile): Remove.
4123
4124         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4125         mips-tdump reference to ...
4126         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
4127         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4128         reference by Tru64 UNIX.
4129
4130 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
4131
4132         PR debug/48768
4133         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4134         is error_mark_node, set value to NULL.
4135
4136         PR tree-optimization/48734
4137         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4138         if return value from maybe_fold_*_comparsions isn't something
4139         the code is prepared to handle.
4140
4141 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
4142
4143         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4144         mode check.
4145         (ext_QIreg_nomode_operands): Remove.
4146         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4147         (*andsi_1): Ditto.
4148         (*andhi_1): Ditto.
4149
4150 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
4151
4152         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4153
4154 2011-04-26  Richard Guenther  <rguenther@suse.de>
4155
4156         * c-typeck.c (build_unary_op): Do not expand array-refs via
4157         pointer arithmetic.  Only adjust qualifiers for function types.
4158
4159 2011-04-26  Richard Guenther  <rguenther@suse.de>
4160
4161         PR middle-end/48694
4162         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4163         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4164         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
4165         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4166
4167 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
4168
4169         * doc/extend.texi: Document __underlying_type.
4170
4171 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
4172
4173         * config/rs6000/titan.md (automata_option "progress"): Remove.
4174
4175 2011-04-25  Jeff Law  <law@redhat.com>
4176
4177         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4178
4179 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
4180
4181         * system.h (ENUM_BITFIELD): Remove.
4182
4183 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
4184             Eric Botcazou  <ebotcazou@adacore.com>
4185
4186         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4187         for STORE_FLAG_VALUE==-1 case.
4188
4189 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
4190
4191         PR target/43804
4192         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4193         LEGITIMATE_PIC_OPERAND_P.
4194
4195 2011-04-24  Jan Hubicka  <jh@suse.cz>
4196
4197         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4198         WPA hack.
4199         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4200         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4201         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4202         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4203         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4204         Sanity check predicate length.
4205         (remap_predicate): Likewise; sanity check jump functions.
4206         (inline_read_section, inline_write_summary): Sanity check
4207         predicate length.
4208
4209 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
4210
4211         PR other/48748
4212         * doc/extend.texi (Type Traits): Document __is_standard_layout,
4213         __is_literal_type, and __is_trivial; update throughout about
4214         possibly cv-qualified void types.
4215
4216 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4217
4218         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4219         testsuite and make it version agnostic.
4220
4221 2011-04-22  Jan Hubicka  <jh@suse.cz>
4222
4223         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4224
4225 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
4226
4227         PR c/48685
4228         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4229         to VOID_TYPE even around MODIFY_EXPR.
4230
4231 2011-04-22  Mike Stump  <mikestump@comcast.net>
4232
4233         * gensupport.c (read_md_rtx): Fix typo in comment.
4234         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4235         comment.
4236
4237 2011-04-22  Jan Hubicka  <jh@suse.cz>
4238
4239         * gengtype.c (open_base_files): Add ipa-inline.h include.
4240         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4241         ipa-prop.c; update all uses.
4242         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4243         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4244         merge summary of inlined function into former caller.
4245         * ipa-inline.c (max_benefit): Remove.
4246         (edge_badness): Compensate for removal of benefits.
4247         (update_caller_keys): Use
4248         reset_node_growth_cache/reset_edge_growth_cache.
4249         (update_callee_keys): Likewise.
4250         (update_all_callee_keys): Likewise.
4251         (inline_small_functions): Do not collect max_benefit; do not reset
4252         estimated_growth; call free_growth_caches and initialize_growth_caches.
4253         * ipa-inline.h (struct condition, type clause_t, struct predicate,
4254         struct size_time_entry): New structures.
4255         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4256         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4257         and estimated_growth.
4258         (edge_growth_cache_entry): New structure.
4259         (node_growth_cache, edge_growth_cache): New global vars.
4260         (estimate_growth): Turn into inline.
4261         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4262         initialize_growth_caches, free_growth_caches): Declare.
4263         (estimate_edge_growth): Rewrite.
4264         (estimate_edge_time): Implement as inline cache lookup.
4265         (reset_node_growth_cache, reset_edge_growth_cache): New inline
4266         functions.
4267         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4268         (NUM_CONDITIONS): New constant.
4269         (predicate_conditions): New enum.
4270         (IS_NOT_CONSTANT): New constant.
4271         (edge_removal_hook_holder): New var.
4272         (node_growth_cache, edge_growth_cache): New global vars.
4273         (true_predicate, single_cond_predicate, false_predicate,
4274         not_inlined_predicate, add_condition, add_clause, and_predicates,
4275         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4276         dump_clause, dump_predicate, account_size_time,
4277         evaulate_conditions_for_edge): New functions.
4278         (inline_summary_alloc): Move to heap.
4279         (inline_node_removal_hook): Clear condition and entry vectors.
4280         (inline_edge_removal_hook): New function.
4281         (initialize_growth_caches, free_growth_caches): New function.
4282         (dump_inline_summary): Update.
4283         (edge_execution_predicate): New function.
4284         (will_be_nonconstant_predicate): New function.
4285         (estimate_function_body_sizes): Compute BB and constantness predicates.
4286         (compute_inline_parameters): Do not clear estimated_growth.
4287         (estimate_edge_size_and_time): New function.
4288         (estimate_calls_size_and_time): New function.
4289         (estimate_callee_size_and_time): New function.
4290         (remap_predicate): New function.
4291         (inline_merge_summary): New function.
4292         (do_estimate_edge_time): New function based on...
4293         (estimate_edge_time): ... this one.
4294         (do_estimate_edge_growth): New function.
4295         (do_estimate_growth): New function based on....
4296         (estimate_growth): ... this one.
4297         (inline_analyze_function): Analyze after deciding on jump functions.
4298         (inline_read_section): New function.
4299         (inline_read_summary): Use it.
4300         (inline_write_summary): Write all the new data.
4301         * ipa-prop.c (ipa_get_param_decl_index): Export.
4302         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4303         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4304         Declare.
4305         (ipa_get_lattice): Move here from ipa-cp.c
4306         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4307         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4308         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4309         cgraph_edge_inlinable_p): Remove.
4310         * cgraphunit.c: Include ipainline.h
4311         (cgraph_process_new_functions): Update call of
4312         compute_inline_parameters.
4313
4314 2011-04-22  Richard Guenther  <rguenther@suse.de>
4315
4316         * tree.c (build_int_cst): Properly create canonicalized integer
4317         constants.
4318         (build_int_cst_type): Remove scary comments.
4319
4320 2011-04-22  Xinliang David Li  <davidxl@google.com>
4321
4322         * toplev.c (process_options): Enable -Werror=coverage-mismatch
4323         by default when -Wno-error is not specified.
4324         * opts-global.c (decode_options): Remove call to
4325         control_warning_options.
4326
4327 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4328
4329         PR tree-optimization/48717
4330         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4331         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4332
4333 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
4334
4335         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
4336         definition where used.
4337
4338 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4339
4340         PR c/48716
4341         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4342         TREE_STATIC variables declared inside of some OpenMP construct.
4343
4344 2011-04-22  Martin Jambor  <mjambor@suse.cz>
4345
4346         PR middle-end/48585
4347         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4348
4349 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
4350
4351         PR c/36750
4352         * c-typeck.c (pop_init_level): Do not warn about initializing
4353         with ` = {0}'.
4354
4355 2011-04-22  Alan Modra  <amodra@gmail.com>
4356
4357         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4358         when returning call_cookie.
4359         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4360         pointers, to functions with no more vector args than the current
4361         function, and some non-local calls for ABI_V4.
4362         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4363         sibcall_nonlocal_aix64): Combine to ..
4364         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
4365         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4366         (sibcall_value_nonlocal_aix<mode>): ..likewise.
4367         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4368         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
4369         operand.
4370         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4371         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4372         sibcall_value_symbolic_64): Delete.
4373
4374 2011-04-21  Xinliang David Li  <davidxl@google.com>
4375
4376         * cgraph.h: Remove pid.
4377         * cgraph.c: Remove pid.
4378         * value-prof.c (init_node_map): New function.
4379         (del_node_map): New function.
4380         (find_func_by_funcdef_no): New function.
4381         (gimple_ic_transform): Call new function.
4382         * cgraphunit.c (cgraph_finalize_function): Remove pid.
4383         * function.c (get_last_funcdef_no): New function.
4384         * function.h (get_last_funcdef_no): New function.
4385         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4386         to libgcov function.
4387         (tree-profiling): Call node map init and delete function.
4388
4389 2011-04-21  Ian Lance Taylor  <iant@google.com>
4390
4391         * godump.c (go_format_type): Use exported Go name for anonymous
4392         field name.
4393
4394 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4395
4396         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4397         Call builtin_function_type_list instead of builtin_function_type.
4398         (UNARY, BINARY, TRINARY, QUAD): Likewise.
4399
4400 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4401
4402         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4403         build_function_type_list instead of build_function_type.
4404         Delete variable `endlink'.
4405
4406 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4407
4408         * config/s390/s390.c (s390_init_builtins): Call
4409         build_function_type_list instead of build_function_type.
4410
4411 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4412
4413         * config/ia64/ia64.c (ia64_init_builtins): Call
4414         build_function_type_list instead of builtin_function_type.
4415
4416 2011-04-21  Easwaran Raman  <eraman@google.com>
4417
4418         * cfgexpand.c (stack_var): Remove OFFSET...
4419         (add_stack_var): ...and its reference here...
4420         (expand_stack_vars): ...and here.
4421         (stack_var_cmp): Sort by descending order of size.
4422         (partition_stack_vars): Change heuristic.
4423         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4424         (dump_stack_var_partition): Add newline after each partition.
4425
4426 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
4427             Jeff Law  <law@redhat.com>
4428
4429         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4430         * gengtype.c (matching_file_name_substitute): Likewise.
4431
4432 2011-04-21  Richard Guenther  <rguenther@suse.de>
4433
4434         PR lto/48703
4435         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4436
4437 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4438
4439         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4440
4441 2011-04-21  Richard Guenther  <rguenther@suse.de>
4442
4443         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4444         file name.
4445
4446 2011-04-21  Richard Guenther  <rguenther@suse.de>
4447
4448         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4449         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4450         Use DECL_P, not SSA_VAR_P.
4451         (ptr_derefs_may_alias_p): Likewise.
4452         (ptr_deref_may_alias_ref_p_1): Likewise.
4453         (decl_refs_may_alias_p): Likewise.
4454         (refs_may_alias_p_1): Likewise.
4455         (ref_maybe_used_by_call_p_1): Likewise.
4456         (call_may_clobber_ref_p_1): Likewise.
4457         (indirect_ref_may_alias_decl_p): Assume indirect refrences
4458         are either MEM_REF or TARGET_MEM_REF.
4459         (indirect_refs_may_alias_p): Likewise.
4460         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4461         for MEM_EXPR of indirect calls.
4462
4463 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4464
4465         * vmsdbgout.c (write_srccorr): Compute file length from the string.
4466         (dst_file_info_struct): Remove flen field.
4467         (lookup_filename): Remove code that set flen field.
4468
4469 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4470
4471         * config/ia64/ia64.c (ia64_start_function): Add a guard.
4472
4473 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
4474
4475         PR target/48708
4476         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4477         vec_extract and vec_concat for non-SSE4_1 targets.
4478
4479 2011-04-21  Richard Guenther  <rguenther@suse.de>
4480
4481         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4482         return statements.
4483
4484 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4485
4486         * config/i386/cygming.h (union tree_node, TREE): Don't define or
4487         undefine.
4488         (FILE): Don't undefine.
4489
4490 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4491
4492         * config/alpha/alpha.c (struct machine_function): Use rtx, not
4493         struct rtx_def *.
4494         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4495         struct rtx_def *.
4496         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4497         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4498         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4499         rtx_def *.
4500         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
4501         definitions where used.
4502         * config/microblaze/microblaze.h (struct microblaze_args): Use
4503         rtx, not struct rtx_def *.
4504         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4505         rtx_def *.
4506         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4507         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4508         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4509         not struct rtx_def *.
4510         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4511         struct rtx_def *.
4512         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4513         rtx_def *.
4514         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4515
4516 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4517
4518         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4519         operand_equal_p to compare DR_BASE_ADDRESSes.
4520         (vect_check_interleaving): Likewise.
4521
4522 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4523
4524         PR target/46329
4525         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4526         for all Neon struct constants.
4527
4528 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4529
4530         * target.def (legitimate_constant_p): New hook.
4531         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4532         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4533         * doc/tm.texi: Regenerate.
4534         * hooks.h (hook_bool_mode_rtx_true): Declare.
4535         * hooks.c (hook_bool_mode_rtx_true): Define.
4536         * system.h (LEGITIMATE_CONSTANT_P): Poison.
4537         * calls.c (precompute_register_parameters): Replace uses of
4538         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4539         (emit_library_call_value_1): Likewise.
4540         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4541         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4542         * ira-costs.c (scan_one_insn): Likewise.
4543         * recog.c (general_operand, immediate_operand): Likewise.
4544         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4545         * reload1.c (init_eliminable_invariants): Likewise.
4546
4547         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4548         mode argument.
4549         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4550         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4551         argument.
4552         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4553         * config/alpha/predicates.md (input_operand): Update call to
4554         alpha_legitimate_constant_p.
4555
4556         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4557         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4558         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4559         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4560         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4561         (arm_legitimate_constant_p): New functions.
4562         (arm_cannot_force_const_mem): Make static.
4563
4564         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4565
4566         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4567         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4568         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4569         instead of bfin_legitimate_constant_p.
4570         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
4571         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4572
4573         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4574
4575         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4576
4577         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4578         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4579         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4580         (frv_legitimate_constant_p): Make static.  Add a mode argument.
4581
4582         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4583         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4584         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4585
4586         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4587         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4588         * config/i386/i386.c (legitimate_constant_p): Rename to...
4589         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
4590         argument.
4591         (ix86_cannot_force_const_mem): Update accordingly.
4592         (ix86_legitimate_address_p): Likewise.
4593         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4594         * config/i386/i386.md: Update commentary.
4595
4596         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4597         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4598         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4599         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
4600
4601         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4602
4603         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4604         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4605         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4606         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
4607
4608         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4609         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4610         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4611
4612         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4613         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4614         (m32r_legitimate_constant_p): New function.
4615
4616         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4617         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4618         LEGITIMATE_CONSTANT_P.
4619         (LEGITIMATE_CONSTANT_P): Delete.
4620         * config/m68k/m68k.c (m68k_expand_prologue): Call
4621         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4622         (m68k_legitimate_constant_p): New function.
4623         * config/m68k/m68k.md: Update comments.
4624
4625         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4626         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4627         (mcore_legitimate_constant_p): New function.
4628
4629         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4630         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4631         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4632         Add a mode argument.
4633         (mep_legitimate_address): Update accordingly.
4634         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4635
4636         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4637         Delete.
4638         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4639         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4640         static.  Check OP's mode for VOIDmode.
4641         (microblaze_legitimate_constant_p): New function.
4642         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4643
4644         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4645         * config/mips/mips.c (mips_legitimate_constant_p): New function.
4646         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4647         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4648         * config/mips/predicates.md: Update comments.
4649
4650         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4651         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4652         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4653         (mmix_legitimate_constant_p): Make static, return a bool, and take
4654         a mode argument.
4655         (mmix_print_operand_address): Update accordingly.
4656
4657         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4658         Delete.
4659         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
4660         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4661         static.  Add a mode argument.
4662         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4663
4664         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4665
4666         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4667         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4668         (pa_legitimate_constant_p): New function.
4669
4670         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4671
4672         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4673         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4674         (pdp11_legitimate_constant_p): New function.
4675
4676         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4677         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4678         (rs6000_legitimate_constant_p): New function.
4679
4680         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4681         (rx_legitimate_constant_p): ...this.
4682         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4683         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4684         (rx_legitimate_constant_p): ...this.
4685         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4686         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4687
4688         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4689         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4690         * config/s390/s390.c (legitimate_constant_p): Rename to...
4691         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
4692         and add a mode argument.
4693         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4694
4695         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4696
4697         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4698         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4699         (sh_legitimate_constant_p): New function.
4700
4701         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4702         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4703         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4704         (legitimate_constant_p): Rename to...
4705         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
4706         argument.
4707         (constant_address_p): Update accordingly.
4708
4709         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4710         argument and return a bool.
4711         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4712         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4713         (spu_legitimate_constant_p): Add a mode argument and return a bool.
4714         (spu_rtx_costs): Update accordingly.
4715         * config/spu/predicates.md (vec_imm_operand): Likewise.
4716
4717         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4718
4719         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4720         * config/v850/v850.c (v850_legitimate_constant_p): New function.
4721         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4722
4723         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4724         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4725         * config/vax/vax.c (legitimate_constant_p): Likewise.
4726
4727         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4728         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4729         (xtensa_legitimate_constant_p): New function.
4730
4731 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4732
4733         * target.def (cannot_force_const_mem): Add a mode argument.
4734         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4735         * doc/tm.texi: Regenerate.
4736         * hooks.h (hook_bool_mode_rtx_false): Declare.
4737         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4738         (hook_bool_mode_const_rtx_true): Likewise.
4739         (hook_bool_mode_rtx_false): New function.
4740         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4741         to be non-VOID.  Update call to cannot_force_const_mem.
4742         (find_reloads): Update accordingly.
4743         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4744         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4745         argument.
4746         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4747         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4748         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4749         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4750         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4751         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4752         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4753         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4754         (m68k_cannot_force_const_mem): ...this new function.
4755         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4756         argument.
4757         (mips_const_insns, mips_legitimize_const_move): Update calls.
4758         (mips_secondary_reload_class): Likewise.
4759         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4760         (pa_cannot_force_const_mem): ...this new function.
4761         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4762         (rs6000_cannot_force_const_mem): ...this new function.
4763         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4764         argument.
4765         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4766         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4767         to...
4768         (xtensa_cannot_force_const_mem): ...this new function.
4769
4770 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4771
4772         * config/mips/mips.c (mips16_build_function_stub): Call
4773         build_function_type_list instead of build_function_type.
4774         (mips16_build_call_stub): Likewise.
4775
4776 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4777
4778         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4779         instead of build_function_type.
4780
4781 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4782
4783         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4784         instead of build_function_type.
4785
4786 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4787
4788         PR target/48678
4789         * config/i386/i386.md (insv): Change operand 0 constraint to
4790         "register_operand".  Change operand 1 and 2 constraint to
4791         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4792         * config/i386/sse.md (sse4_1_pinsrb): Export.
4793         (sse2_pinsrw): Ditto.
4794         (sse4_1_pinsrd): Ditto.
4795         (sse4_1_pinsrq): Ditto.
4796         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4797         * config/i386/i386.c (ix86_expand_pinsr): New.
4798
4799 2011-04-20  Easwaran Raman  <eraman@google.com>
4800
4801         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4802         containing union type only with -fstrict-aliasing.
4803
4804 2011-04-20  Jim Meyering  <meyering@redhat.com>
4805
4806         Remove useless if-before-free tests.
4807         * calls.c (expand_call, save_area): Likewise.
4808         * cfgcleanup.c (try_forward_edges): Likewise.
4809         * collect2.c (collect_execute): Likewise.
4810         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4811         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4812         * coverage.c (coverage_checksum_string): Likewise.
4813         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4814         * cselib.c (cselib_init): Likewise.
4815         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4816         (df_set_clean_cfg): Likewise.
4817         * function.c (free_after_compilation): Likewise.
4818         * gcc.c (do_spec_1, main): Likewise.
4819         * gcov.c (create_file_names): Likewise.
4820         * gensupport.c (identify_predicable_attribute): Likewise.
4821         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4822         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4823         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4824         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4825         * ipa-pure-const.c (local_pure_const): Likewise.
4826         * ipa-reference.c (propagate): Likewise.
4827         * ira-costs.c (free_ira_costs): Likewise.
4828         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4829         * matrix-reorg.c (mat_free): Likewise.
4830         * prefix.c (get_key_value): Likewise.
4831         * profile.c (compute_value_histograms): Likewise.
4832         * reload1.c (free_reg_equiv): Likewise.
4833         * sched-deps.c (free_deps): Likewise.
4834         * sel-sched-ir.c (fence_clear): Likewise.
4835         * sese.c (set_rename, if_region_set_false_region): Likewise.
4836         * tree-data-ref.c (free_rdg): Likewise.
4837         * tree-eh.c (lower_try_finally): Likewise.
4838         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4839         * tree-ssa-live.c (delete_var_map): Likewise.
4840         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4841         * tree-ssa-pre.c (phi_trans_add): Likewise.
4842
4843 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
4844
4845         PR tree-optimization/48611
4846         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4847         beyond ERT_MUST_NOT_THROW region.
4848
4849 2011-04-20  Catherine Moore  <clm@codesourcery.com>
4850
4851         * config/mips/mips.opt (mfix-24k): New.
4852         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4853         * config/mips/mips.md (length): Increase by 4 for stores if
4854         fixing 24K errata.
4855         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4856         all noreorder if fixing 24K errata.
4857         * doc/invoke.texi: Document mfix-24k.
4858
4859 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
4860
4861         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
4862         quad-word modes, reduce to 9-bit index range when above 1016 limit.
4863
4864 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4865
4866         * config/arm/arm.c (arm_gen_constant): Move movw support ....
4867         (const_ok_for_op): ... to here.
4868
4869 2011-04-20  Kai Tietz  <ktietz@redhat.com>
4870
4871         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4872         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
4873
4874 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4875
4876         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4877
4878 2011-04-20  Richard Guenther  <rguenther@suse.de>
4879
4880         PR tree-optimization/47892
4881         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4882         are if-convertible.
4883
4884 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4885
4886         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4887
4888 2011-04-20  Tristan Gingold  <gingold@adacore.com>
4889
4890         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4891
4892 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
4893
4894         PR target/18145
4895
4896         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4897         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4898         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4899         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4900         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4901
4902         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4903         New prototype.
4904
4905         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4906         (avr_asm_named_section, avr_asm_output_aligned_common,
4907         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4908         New functions to update...
4909         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4910         (avr_asm_init_sections): Overwrite section callbacks for
4911         data_section, bss_section.
4912         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4913         from here to...
4914         (avr_file_end): ...here.
4915
4916 2011-04-20  Richard Guenther  <rguenther@suse.de>
4917
4918         PR middle-end/48695
4919         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
4920         objects and types here.  Adjust for their offset before comparing.
4921
4922 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4923
4924         * tree-vect-stmts.c (vectorizable_store): Only chain one related
4925         statement per copy.
4926
4927 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4928
4929         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4930         (GIMPLE_H): Include $(INTERNAL_FN_H).
4931         (OBJS-common): Add internal-fn.o.
4932         (internal-fn.o): New rule.
4933         * internal-fn.def: New file.
4934         * internal-fn.h: Likewise.
4935         * internal-fn.c: Likewise.
4936         * gimple.h: Include internal-fn.h.
4937         (GF_CALL_INTERNAL): New gf_mask.
4938         (gimple_statement_call): Put fntype into a union with a new
4939         internal_fn field.
4940         (gimple_build_call_internal): Declare.
4941         (gimple_build_call_internal_vec): Likewise.
4942         (gimple_call_same_target_p): Likewise.
4943         (gimple_call_internal_p): New function.
4944         (gimple_call_internal_fn): Likewise.
4945         (gimple_call_fntype): Return null for internal calls.
4946         (gimple_call_set_fntype): Assert that the function is not internal.
4947         (gimple_call_set_fn): Likewise.
4948         (gimple_call_set_fndecl): Likewise.
4949         (gimple_call_set_internal_fn): New function.
4950         (gimple_call_addr_fndecl): Handle null functions.
4951         (gimple_call_return_type): Likewise null types.
4952         * gimple.c (gimple_build_call_internal_1): New function.
4953         (gimple_build_call_internal): Likewise.
4954         (gimple_build_call_internal_vec): Likewise.
4955         (gimple_call_same_target_p): Likewise.
4956         (gimple_call_flags): Handle calls to internal functions.
4957         (gimple_call_fnspec): New function.
4958         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4959         (gimple_has_side_effects): Handle null functions.
4960         (gimple_rhs_has_side_effects): Likewise.
4961         (gimple_call_copy_skip_args): Handle calls to internal functions.
4962         * cfgexpand.c (expand_call_stmt): Likewise.
4963         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4964         * gimple-fold.c (gimple_fold_call): Handle null functions.
4965         (gimple_fold_stmt_to_constant_1): Don't fold
4966         calls to internal functions.
4967         * gimple-low.c (gimple_check_call_args): Handle calls to internal
4968         functions.
4969         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4970         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4971         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4972         (do_warn_unused_result): Likewise.
4973         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4974         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4975         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4976         the target of a call.
4977         (initialize_hash_element): Update accordingly.
4978         (hashable_expr_equal_p): Use gimple_call_same_target_p.
4979         (iterative_hash_hashable_expr): Handle calls to internal functions.
4980         (print_expr_hash_elt): Likewise.
4981         * tree-ssa-pre.c (can_value_number_call): Likewise.
4982         (eliminate): Handle null functions.
4983         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4984         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4985         (find_func_aliases): Likewise.
4986         * value-prof.c (gimple_ic_transform): Likewise.
4987         (gimple_indirect_call_to_profile): Likewise.
4988         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4989         * lto-streamer-out.c (output_gimple_stmt): Likewise.
4990
4991 2011-04-19  Jan Hubicka  <jh@suse.cz>
4992
4993         * ipa-inline-transform.c (save_inline_function_body): Add comments.
4994         * ipa-inline.c (inline_small_functions): Compute summaries first,
4995         populate heap later.
4996
4997 2011-04-19  Jan Hubicka  <jh@suse.cz>
4998
4999         * cgraph.h (save_inline_function_body): Remove.
5000         * ipa-inline-transform.c: New file, broke out of...
5001         * ipa-inline.c: ... this one; Update toplevel comment.
5002         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5003         make global.
5004         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5005         (cgraph_mark_inline_edge): Rename to inline_call; move to
5006         ipa-inline-transform.c.
5007         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5008         move to ipa-inline-transform.c
5009         (recursive_inlining, inline_small_functions, flatten_function,
5010         ipa_inline, inline_always_inline_functions,
5011         early_inline_small_functions): Update.
5012         (inline_transform): Move to ipa-inline-transform.c.
5013         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5014         Declare.
5015         * Makefile.in (ipa-inline-transform.o): New file.
5016         * cgraphunit.c (save_inline_function_body): Move to
5017         ipa-inline-transform.c
5018
5019 2011-04-19  DJ Delorie  <dj@redhat.com>
5020
5021         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5022         registers if we already know there aren't any.
5023         (m32c_emit_epilogue): Don't emit a barrier here.
5024         (m32c_emit_eh_epilogue): Likewise.
5025         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5026         operands at expand time.
5027         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5028         int" wchar type.
5029         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5030         duplicates.  Provide aliases instead.
5031         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5032         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5033         the compiler.
5034
5035 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5036
5037         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5038         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5039         (general_or_i64_p, sparc_register_move_cost): New function.
5040
5041 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5042
5043         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5044         Add lynx, mipssde.  Sort table.
5045
5046 2011-04-19  Xinliang David Li  <davidxl@google.com>
5047
5048         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5049         not negative.
5050
5051 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5052
5053         PR target/48678
5054         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5055         is a SUBREG with non-MODE_INT mode inside of it.
5056
5057 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5058
5059         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5060         also according to actual contants.
5061         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5062         (gimple_fold_call): Use it.
5063         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5064
5065 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5066
5067         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5068         non-pointer assignments.
5069
5070 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5071
5072         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5073         account anc_offset and otr_type from the indirect edge info.
5074         * ipa-prop.c (get_ancestor_addr_info): New function.
5075         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5076         get_ancestor_addr_info, call it.
5077         (ipa_note_param_call): Do not initialize information about polymorphic
5078         calls, return the indirect call graph edge.  Remove the last
5079         parameter, adjust all callers.
5080         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5081         parameters.  Initialize polymorphic information in the indirect edge.
5082
5083 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5084
5085         PR lto/48148
5086         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5087         the types if they have different enumeration identifiers.
5088
5089 2011-04-19  Jan Hubicka  <jh@suse.cz>
5090
5091         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5092         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5093         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5094         (optimize_function_for_size_p) ... here.
5095
5096 2011-04-19  Richard Guenther  <rguenther@suse.de>
5097
5098         PR lto/48207
5099         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5100         langhook.
5101
5102 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5103
5104         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5105         if DECL_NO_INLINE_WARNING_P is set on the function.
5106
5107 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
5108
5109         PR fortran/47976
5110         * reload1.c (inc_for_reload): Return void. All callers changed.
5111         (emit_input_reload_insns): Don't try to delete previous output
5112         reloads to a register, or record spill_reg_store for autoincs.
5113
5114 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
5115
5116         * gengtype.h: Updated copyright year.
5117         (struct input_file_st): Add inpisplugin field.
5118         (type_fileloc): New function.
5119         * gengtype.c
5120         (write_typed_struct_alloc_def): Add gcc_assert.
5121         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5122         (write_typed_alloc_defns): Don't output for plugin files.
5123         (input_file_by_name): Clear inpisplugin field.
5124         (main): Set inpisplugin field for plugin files.
5125
5126 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
5127
5128         * gengtype-state.c (string_eq): New.
5129         (read_state): Use string_eq instead of strcmp when creating the
5130         state_ident_tab.
5131
5132 2011-04-19  Wei Guozhi  <carrot@google.com>
5133
5134         PR target/47855
5135         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5136         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5137         linkage.
5138         * config/arm/constraints.md (Uu): New constraint.
5139         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5140
5141 2011-04-19  Tristan Gingold  <gingold@adacore.com>
5142
5143         * config.gcc (-*-*-*vms): Added.
5144         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5145         definitions moved.
5146         * config/vms/vms-ld.c: New file.
5147         * config/vms/vms-ar.c: New file.
5148         * config/vms/t-vmsnative: New file.
5149
5150 2011-04-18  Xinliang David Li  <davidxl@google.com>
5151
5152         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5153
5154 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5155
5156         PR middle-end/48661
5157         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5158         if TREE_TYPE (v) is non-NULL.
5159
5160         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5161         gimple_get_virt_mehtod_for_binfo.
5162         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5163         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5164         callers.
5165         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5166
5167 2011-04-18  Michael Matz  <matz@suse.de>
5168             Steve Ellcey  <sje@cup.hp.com>
5169
5170         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5171         use its mode as source mode if it isn't VOIDmode.
5172
5173 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
5174
5175         * doc/passes.texi: Fill crossref nodes.
5176
5177 2011-04-18  Jim Meyering  <meyering@redhat.com>
5178
5179         Fix doubled-word typos in comments and strings
5180         * config/alpha/vms-unwind.h: s/for for/for/
5181         * config/arm/unwind-arm.h: Likewise.
5182         * config/microblaze/microblaze.c: Likewise.
5183         * config/sh/constraints.md: s/in in/in/
5184         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5185
5186 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
5187
5188         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5189         (AVX_FLOAT_MODE_P): Ditto.
5190         (AVX128_VEC_FLOAT_MODE_P): Ditto.
5191         (AVX256_VEC_FLOAT_MODE_P): Ditto.
5192         (AVX_VEC_FLOAT_MODE_P): Ditto.
5193         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5194         (UNSPEC_MASKSTORE): Ditto.
5195         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5196         Merge from <sse>_movmsk<ssemodesuffix> and
5197         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
5198         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
5199         iterator.
5200         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5201         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5202         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5203
5204 2011-04-18  Jan Hubicka  <jh@suse.cz>
5205
5206         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5207
5208         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5209         (want_inline_function_called_once_p): Break out the logic from
5210         ipa_inline.
5211         (edge_badness): Ensure that profile is not misupdated.
5212         (lookup_recursive_calls): Prioritize by call frequencies.
5213         (inline_small_functions): Move program size estimates here;
5214         actually process whole queue even when unit growth has been
5215         met. (to properly compute inline_failed reasons and for the
5216         case unit size decrease.) Revisit comments on recursive inlining.
5217         (ipa_inline): Remove unit summary code; first inline hot calls
5218         of functions called once, cold calls next.
5219         (order, nnodes): Remove unused variables.
5220         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5221         (GTFILES): Remove ipa-inline.c
5222         * sel-sched.c (fill_insns): Silence uninitialized var warning.
5223
5224 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5225
5226         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5227
5228 2011-04-18  Jie Zhang  <jie@codesourcery.com>
5229             Richard Earnshaw  <rearnsha@arm.com>
5230
5231         * arm.c (neon_builtin_type_bits): Remove.
5232         (typedef enum neon_builtin_mode): New.
5233         (T_MAX): Don't define.
5234         (typedef enum neon_builtin_datum): Remove bits, codes[],
5235         num_vars and base_fcode.  Add mode, code and fcode.
5236         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5237         VAR10): Change accordingly.
5238         (neon_builtin_data[]): Change accordingly
5239         (arm_init_neon_builtins): Change accordingly.
5240         (neon_builtin_compare): Remove.
5241         (locate_neon_builtin_icode): Remove.
5242         (arm_expand_neon_builtin): Change accordingly.
5243
5244         * arm.h (enum arm_builtins): Move to ...
5245         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5246
5247         * arm.c (arm_builtin_decl): Declare.
5248         (TARGET_BUILTIN_DECL): Define.
5249         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5250         (arm_builtin_decls[]): New.
5251         (arm_init_neon_builtins): Store builtin declarations in
5252         arm_builtin_decls[].
5253         (arm_init_tls_builtins): Likewise.
5254         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
5255         (arm_builtin_decl): New.
5256
5257 2011-04-18  Richard Guenther  <rguenther@suse.de>
5258
5259         * tree.c (upper_bound_in_type): Build properly canonicalized
5260         INTEGER_CSTs.
5261         (lower_bound_in_type): Likewise.
5262
5263 2011-04-18  Richard Guenther  <rguenther@suse.de>
5264
5265         * gimple.h (gimple_call_addr_fndecl): New function.
5266         (gimple_call_fndecl): Use it.
5267         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5268         for direct calls.
5269         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5270         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5271
5272 2011-04-18  Richard Guenther  <rguenther@suse.de>
5273
5274         PR middle-end/48650
5275         * tree.c (build_string): STRING_CST is now derived from tree_typed.
5276
5277 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5278
5279         PR lto/48492
5280         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5281         DECL_IN_CONSTANT_POOL without RTL.
5282
5283 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
5284             Ira Rosen  <ira.rosen@linaro.org>
5285
5286         PR target/48252
5287         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5288         to match neon_vzip/vuzp/vtrn_internal.
5289         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5290         outputs explicitly dependent on both inputs.
5291         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5292
5293 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5294
5295         PR tree-optimization/48616
5296         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5297         whether the shift is by scalar or vector based on whether all SLP
5298         scalar stmts have the same rhs.
5299
5300 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
5301
5302         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5303         memory operands.
5304
5305 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5306
5307         PR target/43700
5308         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5309         registers.
5310
5311 2011-04-17  Jan Hubicka  <jh@suse.cz>
5312
5313         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5314         * cgrpahunit.c (cgraph_finalize_function): Do not set
5315         finalized_by_frontend.
5316         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5317         finalized_by_frontend.
5318
5319 2011-04-17  Jan Hubicka  <jh@suse.cz>
5320
5321         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5322         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5323         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5324         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5325         method.
5326         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5327         gimple-fold.c
5328         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5329
5330 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5331
5332         PR lto/48538
5333         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5334         is non-null before accessing it.
5335         (input_cgraph): Remove trailing spaces.
5336
5337 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5338
5339         * params.def (sms-min-sc): New param flag.
5340         * modulo-sched.c (sms_schedule): Use it.
5341         * doc/invoke.texi (sms-min-sc): Document it.
5342
5343 2011-04-17  Jan Hubicka  <jh@suse.cz>
5344
5345         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5346         present, also set gimple_call_set_cannot_inline.
5347         * ipa-inline.c: Update toplevel comment.
5348         (MAX_TIME): Remove.
5349         (cgraph_clone_inlined_nodes): Fix linebreaks.
5350         (cgraph_check_inline_limits): Restructure to ...
5351         (caller_growth_limits): ... this one; be more tolerant
5352         on growth in nested inline chains; add explanatory comment;
5353         fix stack accounting thinko introduced by previous patch.
5354         (cgraph_default_inline_p): Remove.
5355         (report_inline_failed_reason): New function.
5356         (can_inline_edge_p): New function.
5357         (can_early_inline_edge_p): New function.
5358         (leaf_node_p): Move upwards in file.
5359         (want_early_inline_function_p): New function.
5360         (want_inline_small_function_p): New function.
5361         (want_inline_self_recursive_call_p): New function.
5362         (cgraph_edge_badness): Rename to ...
5363         (edge_badness) ... this one; fix linebreaks.
5364         (update_edge_key): Update call of edge_baddness; add
5365         detailed dump about queue updates.
5366         (update_caller_keys): Use can_inline_edge_p and
5367         want_inline_small_function_p.
5368         (cgraph_decide_recursive_inlining): Rename to...
5369         (recursive_inlining): Use can_inline_edge_p and
5370         want_inline_self_recursive_call_p; simplify and remove no longer
5371         valid FIXME.
5372         (cgraph_set_inline_failed): Remove.
5373         (add_new_edges_to_heap): Use can_inline_edge_p and
5374         want_inline_small_function_p.
5375         (cgraph_decide_inlining_of_small_functions): Rename to ...
5376         (inline_small_functions): ... this one; cleanup; use
5377         can/want predicates; cleanup debug ouput; work edges till fibheap
5378         is exhausted and do not stop once unit growth is reached; remove
5379         later loop processing remaining edges.
5380         (cgraph_flatten): Rename to ...
5381         (flatten_function): ... this one; use can_inline_edge_p
5382         and can_early_inline_edge_p predicates.
5383         (cgraph_decide_inlining): Rename to ...
5384         (ipa_inline): ... this one; remove unreachable nodes before
5385         inlining functions called once; simplify the pass.
5386         (cgraph_perform_always_inlining): Rename to ...
5387         (inline_always_inline_functions): ... this one; use
5388         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5389         (cgraph_decide_inlining_incrementally): Rename to ...
5390         (early_inline_small_functions): ... this one; simplify
5391         using new predicates; cleanup; make dumps prettier.
5392         (cgraph_early_inlining): Rename to ...
5393         (early_inliner): newer inline regular functions into always-inlines;
5394         fix updating of call stmt summaries.
5395         (pass_early_inline): Update for new names.
5396         (inline_transform): Fix formating.
5397         (gate_cgraph_decide_inlining): Rename to ...
5398         (pass_ipa_inline): ... this one.
5399         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5400         * ipa-inline-analysis.c (dump_inline_summary): Update.
5401         (compute_inline_parameters): Do not compute disregard_inline_limits;
5402         look for mismatching arguments.
5403         (estimate_growth): Fix handlig of non-trivial self recursion.
5404         (inline_read_summary): Do not read info->disregard_inline_limits.
5405         (inline_write_summary): Do not write info->disregard_inline_limits.
5406         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5407         and move all checks into can_inline_edge_p predicate; re-enable code
5408         comparing optimization levels.
5409         (expand_call_inline): Do not test inline_forbidden_into_p.
5410         * Makefile.in (ipa-inline.o): Update arguments.
5411
5412 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5413
5414         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5415
5416 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5417
5418         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5419
5420 2011-04-17  Michael Matz  <matz@suse.de>
5421
5422         PR tree-optimization/48622
5423         PR lto/48645
5424         * ipa-inline-analysis.c (inline_read_summary): Read size/time
5425         in same order as they're written.
5426
5427 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5428
5429         * config/pa/predicates.md: Reorganize and simplify predicates.
5430         Eliminate duplicate code checks.
5431         (arith_operand): Rename to arith14_operand
5432         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5433         * config/pa/pa.md: Use renamed operands.
5434         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5435         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5436         arith11_operand, adddi3_operand, indexed_memory_operand,
5437         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5438         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5439         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5440         move_dest_operand, move_src_operand, prefetch_cc_operand,
5441         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5442         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5443         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5444         div_operand, int5_operand, movb_comparison_operator,
5445         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5446         arith_double_operand, ireg_operand, lhs_lshift_operand,
5447         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5448         integer_store_memory_operand): Likewise.
5449         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5450         (integer_store_memory_operand, read_only_operand,
5451         function_label_operand, borx_reg_operand,
5452         non_hard_reg_operand): Likewise.
5453         (eq_neq_comparison_operator): Delete unused operator.
5454         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5455         function_label_operand.
5456         (emit_move_sequence): Likewise.
5457
5458 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5459
5460         * config/i386/sse.md (sseunpackmode): New mode attribute.
5461         (ssepackmode): Ditto.
5462         (vec_pack_trunc_<mode>): Macroize expander from
5463         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5464         (vec_unpacks_lo_<mode>): Macroize expander from
5465         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5466         (vec_unpacks_hi_<mode>): Macroize expander from
5467         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5468         (vec_unpacku_lo_<mode>): Macroize expander from
5469         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5470         (vec_unpacku_hi_<mode>): Macroize expander from
5471         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5472         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5473         ix86_expand_sse4_unpack.
5474         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5475
5476 2011-04-16  Jan Hubicka  <jh@suse.cz>
5477
5478         * cgraphbuild.c: Include ipa-inline.h.
5479         (reset_inline_failed): Use initialize_inline_failed.
5480         * cgraph.c: Include ipa-inline.h.
5481         (cgraph_create_node_1): Do not initialize estimated_growth.
5482         (initialize_inline_failed): More to ipa-inline-analysis.c
5483         (dump_cgraph_node): Do not dump inline flags.
5484         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5485         and disregard_inline_limits flags.
5486         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5487         time, size, estimated_growth.
5488         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5489         Update.
5490         * cgraphunit.c (cgraph_decide_is_function_needed): Use
5491         DECL_DISREGARD_INLINE_LIMITS.
5492         (cgraph_analyze_function): Do not initialize
5493         node->local.disregard_inline_limits.
5494         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5495         inlinable, versionable and disregard_inline_limits.
5496         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5497         cgraph_check_inline_limits, cgraph_default_inline_p,
5498         cgraph_edge_badness, update_caller_keys, update_callee_keys,
5499         add_new_edges_to_heap): Update.
5500         (cgraph_decide_inlining_of_small_function): Update; set
5501         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5502         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5503         cgraph_decide_inlining_incrementally): Update.
5504         * ipa-inline.h (inline_summary): Add inlinable, versionable,
5505         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5506         time, size and estimated_growth parameters.
5507         (estimate_edge_growth): Update.
5508         (initialize_inline_failed): Declare.
5509         * ipa-split.c: Include ipa-inline.h
5510         (execute_split_functions): Update.
5511         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5512         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5513         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5514         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5515         estimated_growth to INT_MIN.
5516         (inline_node_duplication_hook): Likewise.
5517         (dump_inline_summary): Dump new fields.
5518         (compute_inline_parameters): Update.
5519         (estimate_edge_time, estimate_time_after_inlining,
5520         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5521         inline_write_summary):
5522         (initialize_inline_failed): Move here from cgraph.c.
5523         * tree-sra.c: Include ipa-inline.h.
5524         (ipa_sra_preliminary_function_checks): Update.
5525         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5526         ipa-inline.h.
5527
5528 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5529
5530         * config/i386/sse.md (V16): New mode iterator.
5531         (VI1, VI8): Ditto.
5532         (AVXMODEQI, AVXMODEDI): Remove.
5533         (sse2, sse3): New mode attribute.
5534         (mov<mode>): Use V16 mode iterator.
5535         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5536         (push<mode>1): Use V16 mode iterator.
5537         (movmisalign<mode>): Ditto.
5538         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5539         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5540         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5541         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5542         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5543         avx_movdqu<avxmodesuffix>.
5544         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5545         *avx_movdqu<avxmodesuffix>.
5546         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5547         avx_lddqu<avxmodesuffix>.
5548         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5549         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5550         avx_movnt<AVXMODEDI:mode>.
5551         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5552         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5553
5554 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5555
5556         PR target/48629
5557         * haifa-sched.c (prune_ready_list, schedule_block): Use
5558         sched_pressure_p rather than flag_sched_pressure.
5559
5560 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5561
5562         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5563         cgraph_get_node instead of cgraph_get_create_node.
5564
5565 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
5566
5567         * cfgexpand.c (expand_debug_expr): Use
5568         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5569
5570 2011-04-15  Michael Matz  <matz@suse.de>
5571
5572         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5573         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5574         * function.c (gimplify_parameters): Ditto.
5575         * gimplify.c (gimplify_vla_decl): Ditto.
5576
5577         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5578         (gimple_call_set_alloca_for_var): New inline function.
5579         (gimple_call_alloca_for_var_p): Ditto.
5580         * gimple.c (gimple_build_call_from_tree): Remember
5581         CALL_ALLOCA_FOR_VAR_P state.
5582         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5583
5584         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5585         calls if they were for VLA objects.
5586
5587 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5588
5589         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5590         of ADR_EXPRs.
5591
5592 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5593
5594         PR middle-end/48601
5595         * tree-emutls.c (lower_emutls_function_body): Call
5596         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
5597         result is non-NULL.
5598
5599 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5600
5601         * c-decl.c (detect_field_duplicates): Call
5602         objc_detect_field_duplicates instead of objc_get_interface_ivars.
5603
5604 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
5605
5606         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5607         * gimple.c (gimple_asm_clobbers_memory_p): Define.
5608         * ipa-pure-const.c (check_stmt): Call it.
5609         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5610
5611 2011-04-15  Richard Guenther  <rguenther@suse.de>
5612
5613         PR tree-optimization/48290
5614         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5615         Properly decide inhibiting propagation based on the valueized
5616         operand.  Do loop-closed SSA form preserving here ...
5617         (init_copy_prop): ... not here.
5618
5619 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5620
5621         PR target/48612
5622         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5623         (*ieee_smax<mode>3): Likewise.
5624
5625 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5626
5627         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5628         Replace match_operand with match_dup for the third operand in
5629         these expanders.
5630
5631 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5632
5633         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5634         to track processing of conditionals.  Update all callers.
5635         (try_combine, simplify_if_then_else): Update.
5636
5637 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5638
5639         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5640         -fsched-pressure.
5641
5642 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
5643
5644         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5645         instead of match_operand for operand 3.
5646
5647 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
5648
5649         * recog.h (insn_operand_data): Add an "allows_mem" field.
5650         * genoutput.c (output_operand_data): Initialize it.
5651         * optabs.c (maybe_legitimize_operand_same_code): New function.
5652         (maybe_legitimize_operand): Use it when matching the original
5653         op->value.
5654
5655 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5656
5657         * gimplify.c: Fix issues in comments throughout.
5658         (voidify_wrapper_expr): Fix long line.
5659         (build_stack_save_restore): Likewise.
5660         (gimplify_loop_expr): Likewise.
5661         (gimplify_compound_lval): Likewise.
5662         (gimplify_init_ctor_eval): Likewise.
5663         (gimplify_modify_expr_rhs): Likewise.
5664         (omp_notice_threadprivate_variable): Likewise.
5665
5666 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5667
5668         * cfgexpand.c (expand_call_stmt): Convert the function type to the
5669         original one if this is not a builtin function.
5670
5671 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
5672
5673         PR target/48605
5674         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5675         offset it as needed based on top 2 bits in operands[3], change
5676         MEM mode to SFmode and mask those 2 bits away from operands[3].
5677
5678 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5679
5680         * c-parser.c (c_parser_objc_protocol_definition): Updated for
5681         change from objc_declare_protocols() to objc_declare_protocol().
5682
5683 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
5684
5685         * config/i386/sse.md (sse4_1): New mode attribute.
5686         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5687         avx_blend<ssemodesuffix><avxmodesuffix> and
5688         sse4_1_blend<ssemodesuffix> using VF mode iterator.
5689         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5690         avx_blendv<ssemodesuffix><avxmodesuffix> and
5691         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5692         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5693         avx_dp<ssemodesuffix><avxmodesuffix> and
5694         sse4_1_dp<ssemodesuffix> using VF mode iterator.
5695         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5696         (sse4_1_packusdw): Merge with *avx_packusdw.
5697         (sse4_1_pblendvb): Merge with *avx_pblendvb.
5698         (sse4_1_pblendw): Merge with *avx_pblendw.
5699         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5700         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5701         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5702         VF mode iterator.
5703         (sse4_1_round<ssescalarmodesuffix>): Merge with
5704         *avx_round<ssescalarmodesuffix>.
5705         (aesenc): Merge with *avx_aesenc.
5706         (aesenclast): Merge with *avx_aesenclast.
5707         (aesdec): Merge with *avx_aesdec.
5708         (aesdeclast): Merge with *avx_aesdeclast.
5709         (pclmulqdq): Merge with *pclmulqdq.
5710         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5711         New predicate.
5712         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5713
5714 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
5715
5716         PR middle-end/48608
5717         * cfgexpand.c (get_decl_align_unit): Renamed to ...
5718         (align_local_variable): This.  Update DECL_ALIGN.
5719         (add_stack_var): Updated.
5720         (expand_one_stack_var): Likewise.
5721
5722 2011-04-14  Richard Guenther  <rguenther@suse.de>
5723
5724         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5725         Remove.
5726         (dse_initialize_block_local_data, dse_leave_block,
5727         record_voperand_set, get_stmt_uid): Likewise.
5728         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5729         (dse_optimize_stmt): Remove voperand set handling code.
5730         Simplify and improve to handle any kind of killing stmt.
5731         (dse_record_phi): Remove.
5732         (dse_enter_block): Simplify.
5733         (tree_ssa_dse): Likewise.
5734         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5735
5736 2011-04-14  Jan Hubicka  <jh@suse.cz>
5737
5738         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5739         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5740         (cgraph_local_info): Remove inline_summary.
5741         * ipa-cp.c: Include ipa-inline.h.
5742         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5743         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5744         accesor.
5745         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5746         (input_overwrite_node): Do not set inline summary.
5747         (input_node): Do not stream inline summary.
5748         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5749         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5750         growth; we do not have inline parameters computed for that anyway.
5751         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5752         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5753         (inline_summary_t): New type and VECtor.
5754         (debug_inline_summary, dump_inline_summaries): Declare.
5755         (inline_summary): Use VOCtor.
5756         (estimate_edge_growth): Kill hack computing call stmt size directly.
5757         * lto-section-in.c (lto_section_name): Add inline section.
5758         * ipa-inline-analysis.c: Include lto-streamer.h
5759         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5760         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5761         (inline_summary_vec): Define.
5762         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5763         dump_inline_summaries): New functions.
5764         (estimate_function_body_sizes): Properly compute size/time of outgoing
5765         calls.
5766         (compute_inline_parameters): Alloc inline_summary; do not compute
5767         size/time of incomming calls.
5768         (estimate_edge_time): Avoid missing time summary hack.
5769         (inline_read_summary): Read inline summary info.
5770         (inline_write_summary): Write inline summary info.
5771         (inline_free_summary): Free all hooks and inline summary vector.
5772         * lto-streamer.h: Add LTO_section_inline_summary section.
5773         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5774         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5775
5776 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5777
5778         * tree-vectorizer.h (vect_strided_store_supported): Add a
5779         HOST_WIDE_INT argument.
5780         (vect_strided_load_supported): Likewise.
5781         (vect_permute_store_chain): Return void.
5782         (vect_transform_strided_load): Likewise.
5783         (vect_permute_load_chain): Delete.
5784         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5785         count argument.  Check that the count is a power of two.
5786         (vect_strided_load_supported): Likewise.
5787         (vect_permute_store_chain): Return void.  Update after above changes.
5788         Assert that the access is supported.
5789         (vect_permute_load_chain): Likewise.
5790         (vect_transform_strided_load): Return void.
5791         * tree-vect-stmts.c (vectorizable_store): Update calls after
5792         above interface changes.
5793         (vectorizable_load): Likewise.
5794         (vect_analyze_stmt): Don't check for strided powers of two here.
5795
5796 2011-04-14  Richard Guenther  <rguenther@suse.de>
5797
5798         PR tree-optimization/48590
5799         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5800         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5801         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5802         BUILT_IN_STACK_SAVE.
5803         * tree-ssa-dce.c (propagate_necessity): Handle
5804         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5805
5806 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5807
5808         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5809         objc_declare_class.
5810
5811 2011-04-14  Richard Guenther  <rguenther@suse.de>
5812
5813         * tree.h (get_object_alignment_1): Declare.
5814         * builtins.c (get_object_alignment_1): Split out worker from ...
5815         (get_object_alignment): ... here.
5816         * fold-const.c (get_pointer_modulus_and_residue): Use
5817         get_object_alignment_1.
5818
5819 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5820
5821         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5822         type parameter.
5823         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5824         parameter.  Generalise code to handle arrays as well as vectors.
5825         (vect_setup_realignment): Update accordingly.
5826         * tree-vect-stmts.c (vectorizable_store): Likewise.
5827         (vectorizable_load): Likewise.
5828
5829 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5830
5831         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5832         within the per-copy loop.
5833
5834 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5835
5836         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5837         in the dump file.
5838
5839 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5840
5841         * doc/options.texi (Negative): Explicitly mention that the
5842         Negative chain must be circular.
5843
5844 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
5845
5846         * function.h (block_chainon): Declare.
5847         * function.c (block_chainon): Define.
5848
5849 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
5850             Eric Weddington  <eric.weddington@atmel.com>
5851             Georg-Johann Lay  <avr@gjlay.de>
5852
5853         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
5854         New Includes
5855         (avr_init_builtins, avr_expand_builtin,
5856         avr_expand_delay_cycles, avr_expand_unop_builtin,
5857         avr_expand_binop_builtin ): New functions.
5858         (avr_builtin_id): New enum
5859         (struct avr_builtin_description): New struct
5860         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5861         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5862
5863         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5864         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
5865         UNSPECV_DELAY_CYCLES): new enumeration values
5866         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5867         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5868         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5869         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5870         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5871         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5872         "fmulsu"): New insns
5873
5874         * config/avr/avr-c.c: fix line endings
5875         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5876         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5877         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5878         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5879         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5880
5881         * doc/extend.texi (AVR Built-in Functions): New node
5882         (Target Builtins): Add documentation of AVR
5883         built-in functions.
5884
5885 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
5886
5887         PR target/44643
5888         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5889         alone. Error if non-const data has attribute progmem.
5890
5891 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5892
5893         * tree.h (struct tree_constructor): Include tree_typed instead of
5894         tree_common.
5895         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5896         TS_TYPED instead of TS_COMMON.
5897
5898 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5899
5900         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5901         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5902         (sse2_psadbw): Merge with *avx_psadbw.
5903         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5904         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5905         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5906         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5907         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5908         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5909         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5910         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5911         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5912         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5913         (ssse3_palignrti): Merge with *avx_palignrti.
5914
5915 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5916
5917         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5918         * tree-ssanames.c (fini_ssanames): VEC_free it.
5919         (make_ssa_name_fn): Update for VECness of free_ssanames.
5920         (release_ssa_name, release_dead_ssa_names): Likewise.
5921         * tree.h (struct tree_ssa_name): Include tree_typed instead of
5922         tree_common.
5923         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5924         TS_TYPED instead of TS_COMMON.
5925
5926 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5927
5928         * postreload-gcse.c (gcse_after_reload_main): Add calls to
5929         statistics_counter_event.
5930         * tree-ssa-copyrename.c (stats): Define.
5931         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
5932         statistics_counter_event.
5933         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5934         (bswap_stats, widen_mul_stats): Define.
5935         (insert_reciprocals): Increment rdivs_inserted.
5936         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
5937         rfuncs_inserted.  Add calls to statistics_counter_event.
5938         (execute_cse_sincos_1): Increment inserted.
5939         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
5940         statistics_counter_event.
5941         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
5942         of bswap_stats.  Add calls to statistics_counter_event.
5943         (convert_mult_to_widen): Increment widen_mults_inserted.
5944         (convert_plusminus_to_widen): Increment maccs_inserted.
5945         (convert_mult_to_fma): Increment fmas_inserted.
5946         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
5947         calls to statistics_counter_event.
5948
5949 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5950
5951         PR rtl-optimization/48455
5952         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5953         `temp_costs->mem_cost'.
5954
5955 2011-04-13  Jan Hubicka  <jh@suse.cz>
5956
5957         * ipa-inline.h: New file.
5958         * ipa-inline-analysis.c: New file. Broken out of ...
5959         * ipa-inline.c: ... this file; update toplevel comment;
5960         include ipa-inline.h
5961         (inline_summary): Move to ipa-inline.h
5962         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5963         ipa-inline-analysis.c.
5964         (cgraph_estimate_time_after_inlining): Rename to
5965         estiamte_time_after_inlining; move to ipa-inline-analysis.c
5966         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5967         to estimate_edge_growth.
5968         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5969         rename to estimate_size_after_inlining.
5970         (cgraph_mark_inline_edge): Update for new naming convention.
5971         (cgraph_check_inline_limits): Likewise.
5972         (cgraph_edge_badness): Likewise.
5973         (cgraph_decide_recursive_inlining): Likewise.
5974         (cgraph_decide_inlining_of_small_functions): Likewise.
5975         (cgraph_decide_inlining_incrementally): Likewise.
5976         (cgraph_estimate_growth): Rename to estimate_growth; move to
5977         ipa-inline-analysis.c.
5978         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5979         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5980         (compute_inline_parameters): Likewise.
5981         (compute_inline_parameters_for_current): Likewise.
5982         (pass_inline_parameters): Likewise.
5983         (inline_indirect_intraprocedural_analysis): Likewise.
5984         (analyze_function): Rename to inline_analyze_function; likewise.
5985         (add_new_function): Move to ipa-inline-analysis.c.
5986         (inline_generate_summary): Likewise.
5987         (inline_read_summary): Likewise.
5988         (inline_write_summary): Likewise.
5989         * Makefile.in (ipa-inline-analysis.c): New file.
5990
5991 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5992
5993         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5994         * configure: Regenerate.
5995
5996 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5997
5998         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5999         instead of tree_common.
6000         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6001         Likewise.
6002         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6003         TS_TYPED rather than TS_COMMON.
6004         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6005
6006 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6007
6008         PR target/45263
6009         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6010         r20 around calls of __tablejump_elpm__
6011
6012 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6013
6014         PR middle-end/48591
6015         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6016         NULL.
6017         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6018
6019 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6020
6021         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6022         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6023         (cfi_vec): New typedef.
6024         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6025         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6026         (cie_cfi_vec): New static variable.
6027         (cie_cfi_head): Delete.
6028         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6029         declaration changed. Use vector rather than list operations.
6030         (new_cfi): Don't initialize the dw_cfi_next field.
6031         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6032         rather than list operations.
6033         (lookup_cfa): Use vector rather than list operations.
6034         (output_cfis): New argument upto. Accept a cfi_vec rather than
6035         a dw_cfi_ref list head as argument. All callers changed.
6036         Iterate over the vector using upto as a maximum index.
6037         (output_all_cfis): New static function.
6038         (output_fde): Use vector rather than list operations. Use the
6039         new upto argument for output_cfis rather than manipulating a
6040         list.
6041         (dwarf2out_begin_prologue): Change initializations to match
6042         new struct members.
6043         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6044         from the vector length rather than searching for the end of a list.
6045         Use output_all_cfis.
6046         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6047
6048 2011-04-13  Nick Clifton  <nickc@redhat.com>
6049
6050         * config/rx/rx.md (movmemsi): Do not use this pattern when
6051         volatile pointers are involved.
6052
6053 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6054
6055         * config/i386/sse.md (pinsrbits): Remove.
6056         (sse2_packsswb): Merge with *avx_packsswb.
6057         (sse2_packssdw): Merge with *avx_packssdw.
6058         (sse2_packuswb): Merge with *avx_packuswb.
6059         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6060         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6061         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6062         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6063         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6064         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6065         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6066         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6067         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6068         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6069         (sse2_loadld): Merge with *avx_loadld.
6070         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6071         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6072         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6073         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6074         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6075
6076 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6077
6078         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6079         calling TREE_CHAIN.
6080         * print-tree.c (print_node): Likewise.
6081         * tree-inline.c (copy_tree_r): Likewise.
6082         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6083         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6084         instead of TS_COMMON.
6085         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6086         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6087         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6088         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6089         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6090         ...and these...
6091         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6092         * tree.h: ...here.
6093         (TREE_CHAIN): Check for a TS_COMMON structure.
6094         (TREE_TYPE): Check for a TS_TYPED structure.
6095
6096 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6097
6098         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6099         cgraph_get_create_node instead of cgraph_node.
6100
6101 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6102
6103         * c-parser.c (c_parser_initelt): Updated call to
6104         objc_build_message_expr.
6105         (c_parser_postfix_expression): Likewise.
6106
6107 2011-04-12  Kai Tietz  <ktietz@redhat.com>
6108
6109         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6110         MASK_MS_BITFIELD_LAYOUT bit.
6111
6112 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6113
6114         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6115         assert it is always true.
6116         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6117         moves.
6118
6119 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6120
6121         * c-parser.c (c_lex_one_token): Rewritten conditional used when
6122         compiling Objective-C to be more efficient.
6123
6124 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
6125
6126         * opts-common.c (decode_cmdline_options_to_array): Remove variable
6127         argv_copied.
6128
6129 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6130
6131         * recog.h, genoutput.c, optabs.c: Revert last patch.
6132
6133 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6134
6135         PR target/48090
6136         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6137
6138 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6139
6140         * recog.h (insn_operand_data): Add an "allows_mem" field.
6141         * genoutput.c (output_operand_data): Initialize it.
6142         * optabs.c (maybe_legitimize_operand_same_code): New function.
6143         (maybe_legitimize_operand): Use it when matching the original
6144         op->value.
6145
6146 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6147
6148         * genpreds.c (process_define_predicate): Move most processing
6149         to gensupport.c.  Continue to validate the expression.
6150         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6151         (process_define_predicate): Move processing to gensupport.c.
6152         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6153         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6154         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
6155         argument.
6156         (valid_predicate_name_p): New function, split out from old
6157         genpreds.c:process_define_predicate.
6158         (process_define_predicate): New function, combining code from
6159         old genpreds.c and genrecog.c functions.
6160         (process_rtx): Call it for DEFINE_PREDICATE and
6161         DEFINE_SPECIAL_PREDICATE.
6162
6163 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6164
6165         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6166         size of a '%A' memory reference.
6167         (T_DREG, T_QREG): New neon_builtin_type_bits.
6168         (arm_init_neon_builtins): Assert that the load and store operands
6169         are neon_struct_operands.
6170         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6171         (NEON_ARG_MEMORY): New builtin_arg.
6172         (neon_dereference_pointer): New function.
6173         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6174         Handle NEON_ARG_MEMORY.
6175         (arm_expand_neon_builtin): Update after above interface changes.
6176         Use NEON_ARG_MEMORY for loads and stores.
6177         * config/arm/predicates.md (neon_struct_operand): New predicate.
6178         * config/arm/iterators.md (V_two_elem): Tweak formatting.
6179         (V_three_elem): Use BLKmode for accesses that have no associated mode.
6180         (V_four_elem): Tweak formatting.
6181         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6182         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6183         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6184         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6185         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6186         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6187         (neon_vst4<mode>): Replace pointer operand with a memory operand.
6188         Use %A in the output template.
6189         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6190         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6191         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6192         the width of the memory access.  Remove post-increment.
6193         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6194
6195 2011-04-12  Nick Clifton  <nickc@redhat.com>
6196
6197         * config/v850/v850.c (expand_prologue): Do not use the CALLT
6198         instruction for interrupt handlers if the target is the basic V850
6199         architecture.
6200         (expand_epilogue): Likewise.
6201
6202 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6203
6204         PR rtl-optimization/48549
6205         * combine.c (propagate_for_debug): Also stop after BB_END of
6206         this_basic_block.  Process LAST and just stop processing after it.
6207         (combine_instructions): If last_combined_insn has been deleted,
6208         set last_combined_insn to its PREV_INSN.
6209
6210 2011-04-12  Richard Guenther  <rguenther@suse.de>
6211
6212         PR tree-optimization/46076
6213         * gimple.h (struct gimple_statement_call): Add fntype field.
6214         (gimple_call_fntype): Adjust.
6215         (gimple_call_set_fntype): New function.
6216         * gimple.c (gimple_build_call_1): Set the call function type.
6217         * gimplify.c (gimplify_call_expr): Preserve the function
6218         type the frontend used for the call.
6219         (gimplify_modify_expr): Likewise.
6220         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6221         function type.
6222         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6223         function type.
6224         * tree-ssa.c (useless_type_conversion_p): Function pointer
6225         conversions are useless.
6226
6227 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6228
6229         * cgraph.h (cgraph_node): Remove function declaration.
6230         (cgraph_create_node): Declare.
6231         (cgraph_get_create_node): Likewise.
6232         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6233         Updated all callers.
6234         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6235         the decl does not already exist.  Call cgraph_get_create_node instead
6236         of cgraph_node.
6237         (cgraph_get_create_node): New function.
6238         (cgraph_same_body_alias): Update comment.
6239         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6240         assert it does not return NULL.
6241         (cgraph_update_edges_for_call_stmt): Likewise.
6242         (cgraph_clone_edge): Likewise.
6243         (cgraph_create_virtual_clone): Likewise.
6244         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6245         instead of cgraph_node.
6246         (cgraph_add_new_function): Call cgraph_create_node or
6247         cgraph_get_create_node instead of cgraph_node.
6248         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6249         instead of cgraph_node.
6250         (record_eh_tables): Likewise.
6251         (mark_address): Likewise.
6252         (mark_load): Likewise.
6253         (build_cgraph_edges): Call cgraph_get_create_node instead
6254         of cgraph_node.
6255         (rebuild_cgraph_edges): Likewise.
6256         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6257         instead of cgraph_node.
6258         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6259         cgraph_node.
6260         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6261         cgraph_create_node instead of cgraph_node.
6262         * c-decl.c (finish_function): Call cgraph_get_create_node instead
6263         of cgraph_node.
6264         * lto-cgraph.c (input_node): Likewise.
6265         * lto-streamer-in.c (input_function): Likewise.
6266         * varasm.c (mark_decl_referenced): Likewise.
6267         (assemble_alias): Likewise.
6268
6269 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6270
6271         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6272         instead of cgraph_node and assert it does not return NULL.
6273         * lto-streamer-in.c (lto_read_body): Likewise.
6274         * omp-low.c (new_omp_context): Likewise.
6275         (create_task_copyfn): Likewise.
6276         * tree-emutls.c (lower_emutls_function_body): Likewise.
6277         * matrix-reorg.c (transform_allocation_sites): Likewise.
6278
6279 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6280
6281         PR c/48552
6282         * c-typeck.c (build_asm_expr): Error out on attempts to use
6283         void type outputs or inputs for constraints that allow reg or
6284         don't allow memory.
6285
6286 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
6287             Richard Earnshaw  <rearnsha@arm.com>
6288
6289         PR target/48250
6290         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6291         to use sign-magnitude offsets. Reject unsupported unaligned
6292         cases. Add detailed description in comments.
6293         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6294         condition from TARGET_32BIT to TARGET_ARM.
6295
6296 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
6297
6298         * tree.h (struct typed_tree): New.
6299         (struct tree_common): Include it instead of tree_base.
6300         (TREE_TYPE): Update for new location of type field.
6301         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6302         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6303         (union tree_node): Add typed field.
6304         * treestruct.def (TS_TYPED): New.
6305         * lto-streamer.c (check_handled_ts_structures): Handle it.
6306         * tree.c (MARK_TS_TYPED): New macro.
6307         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6308
6309 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6310
6311         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6312         (force_nonfallthru): Do not alter the loop nest if no basic block
6313         was created.
6314
6315 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6316
6317         * config/i386/sse.md (VI): New mode iterator.
6318         (SSEMODEI): Remove.
6319         (AVX256MODEI): Ditto.
6320         (AVXMODEF4P): Ditto.
6321         (avxvecpsmode): Ditto.
6322         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
6323         (sse2_andnot<mode>3): New expander.
6324         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6325         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
6326         (<any_logic:code><mode>3): Use VI mode iterator.
6327         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6328         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
6329         (*andnottf3): Handle AVX three-operand constraints.
6330         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6331
6332 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6333             Robert Millan  <rmh@gnu.org>
6334
6335         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6336         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6337         GNU_USER_DYNAMIC_LINKER64): Define.
6338         (REG_NAME): Don't undefine.
6339         (MD_UNWIND_SUPPORT): Undefine.
6340         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6341         (REG_NAME): Don't undefine.
6342         (MD_UNWIND_SUPPORT): Undefine.
6343         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6344
6345 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6346
6347         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6348         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6349
6350 2011-04-11  Xinliang David Li  <davidxl@google.com>
6351
6352         * value-profile.c (check_ic_target): New function.
6353         (gimple_ic_transform): Sanity check indirect call target.
6354         * gimple-low.c (gimple_check_call_args): Interface change.
6355         (gimple_check_call_matching_types): New function.
6356         * tree-inline.c (tree_can_inline_p): Call new function.
6357
6358 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
6359
6360         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6361         tree-pretty-print.h & realmpfr.h.
6362
6363 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
6364
6365         PR middle-end/48464
6366         * ira.c (setup_pressure_classes): Fix typo in loop condition.
6367         (setup_allocno_and_important_classes): Ditto.
6368
6369 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6370
6371         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6372         GNU_USER_DYNAMIC_LINKER.
6373         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6374         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6375         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6376         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6377         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6378         GNU_USER_TARGET_OS_CPP_BUILTINS.
6379         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6380         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6381         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6382         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6383         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6384         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6385         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6386         GNU_USER_TARGET_OS_CPP_BUILTINS.
6387         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6388         GNU_USER_DYNAMIC_LINKER.
6389         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6390         GNU_USER_TARGET_OS_CPP_BUILTINS.
6391         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6392         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6393         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6395         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6396         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6397         GNU_USER_DYNAMIC_LINKER64): Remove.
6398         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6399         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6400         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6401         GNU_USER_DYNAMIC_LINKER.
6402         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6403         GNU_USER_TARGET_OS_CPP_BUILTINS.
6404         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6405         GNU_USER_TARGET_OS_CPP_BUILTINS.
6406         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6407         to GNU_USER_TARGET_OS_CPP_BUILTINS.
6408         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6409         GNU_USER_TARGET_OS_CPP_BUILTINS.
6410         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6411         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6412         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6413         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6414         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6415         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6416         GNU_USER_DYNAMIC_LINKER.
6417         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6418         GNU_USER_TARGET_OS_CPP_BUILTINS.
6419         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6420         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6421         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6422         GNU_USER_DYNAMIC_LINKER.
6423         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6424         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6425         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6426         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6427         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6428         GNU_USER_DYNAMIC_LINKER.
6429         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6430         GNU_USER_DYNAMIC_LINKERN32.
6431         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6432         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
6433         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
6434         GNU_USER_DYNAMIC_LINKER32.
6435         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6436         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6437         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6438         GNU_USER_DYNAMIC_LINKER.
6439         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6440         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6441         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6442         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6443         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6444         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6445         GNU_USER_DYNAMIC_LINKER32.
6446         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6447         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6448         GNU_USER_DYNAMIC_LINKER.
6449         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6450         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6451         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6452         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
6453         GNU_USER_DYNAMIC_LINKER64.
6454         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6455         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6456         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6457         GNU_USER_DYNAMIC_LINKER.
6458         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6459         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6460         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6461         GNU_USER_DYNAMIC_LINKER.
6462         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6463         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6464         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6465         GNU_USER_DYNAMIC_LINKER32.
6466         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6467         GNU_USER_DYNAMIC_LINKER64.
6468         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6469         GNU_USER_DYNAMIC_LINKER64.
6470         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6471         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6472         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6473         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6474         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6475
6476 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6477
6478         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
6479         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6480         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6481         GNU_USER_DYNAMIC_LINKER.
6482         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6483         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
6484         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6485         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6486         GNU_USER_DYNAMIC_LINKER64.
6487         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6488         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6489         GNU_USER_LINK_EMULATION.
6490         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6491         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6492         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6493         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6494         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6495         CPP_SPEC, CC1_SPEC): Remove.
6496         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6497         (GNU_USER_DYNAMIC_LINKER): Define.
6498         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6499         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6500         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6501         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6502         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6503         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6504         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6505         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6506         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6507         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6508         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6509         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6510         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6511         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6512         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6513         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6514         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6515         GNU_USER_DYNAMIC_LINKER.
6516         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6517         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6518         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6519         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6520         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6521         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6522         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6523         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6524         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6525         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6526
6527 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6528
6529         PR target/9601
6530         PR target/11772
6531         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6532         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6533         comment.
6534         (ix86_is_msabi_thiscall): Removed.
6535         (ix86_is_type_thiscall): Likewise.
6536         (ix86_get_callcvt): New function.
6537         (ix86_comp_type_attributes): Simplify check.
6538         (ix86_function_regparm): Use ix86_get_callcvt for calling
6539         convention attribute checks.
6540         (ix86_return_pops_args): Likewise.
6541         (ix86_static_chain): Likewise.
6542         (x86_this_parameter): Likewise.
6543         (x86_output_mi_thunk): Likewise.
6544         (ix86_function_type_abi): Optimize check for types without attributes.
6545         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6546         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6547         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6548         by flag-values.
6549         (IX86_BASE_CALLCVT): Helper macro.
6550         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6551         Use ix86_get_callcvt for calling convention attribute checks and avoid
6552         symbol-decoration for stdcall in TARGET_RTD case.
6553         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6554         Likewise.
6555         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6556         for declaration.
6557
6558 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6559
6560         * config/i386/sse.md (VI_128): New mode iterator.
6561         (VI12_128): Rename from SSEMODE12.
6562         (VI14_128): Rename from SSEMODE14.
6563         (VI124_128): New mode iterator.
6564         (VI24_128): Rename from SSEMODE248.
6565         (VI248_128): Rename from SSEMODE248.
6566         (SSEMODE124C8): Remove.
6567         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6568         (*sse2_<plusminus_insn><mode>3): Merge with
6569         *avx_<plusminus_insn><mode>3.
6570         (*mulv8hi3): Merge with *avx_mulv8hi3.
6571         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6572         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6573         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6574         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6575         (ashr<mode>3): Merge with *avx_ashr<mode>3.
6576         (lshr<mode>3): Merge with *avx_lshr<mode>3.
6577         (ashl<mode>3): Merge with *avx_ashl<mode>3.
6578         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6579         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6580         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6581         (*<smaxmin:code>v8hi3): Ditto.
6582         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6583         (*<smaxmin:code>v16qi3): Ditto.
6584         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6585         (*sse2_eq<mode>3): Ditto.
6586         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6587         (*sse2_gt<mode>3): Ditto.
6588         (vcondv2di): Split out of vcond<mode>.
6589         (vconduv2di): Split out of vcondu<mode>.
6590
6591 2011-04-11  Richard Guenther  <rguenther@suse.de>
6592
6593         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6594         before calling tree_low_cst.
6595
6596 2011-04-11  Richard Guenther  <rguenther@suse.de>
6597
6598         * stor-layout.c (layout_type): Compute all array index size operations
6599         in the original type.
6600         (initialize_sizetypes): Add comment.
6601         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6602
6603 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6604
6605         * common.opt (Tbss=, Tdata=, Ttext=): New options.
6606
6607 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6608
6609         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6610         of cgraph_node, handle NULL return value.
6611         (cgraph_global_info): Likewise.
6612         (cgraph_rtl_info): Likewise.
6613         * tree-inline.c (estimate_num_insns): Likewise.
6614         * gimplify.c (unshare_body): Likewise.
6615         (unvisit_body): Likewise.
6616         (gimplify_body): Likewise.
6617         * predict.c (optimize_function_for_size_p): Likewise.
6618         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6619         (call_may_clobber_ref_p_1): Likewise.
6620         * varasm.c (function_section_1): Likewise.
6621         (assemble_start_function): Likewise.
6622
6623 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6624
6625         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6626         of cgraph_node.
6627         * final.c (rest_of_clean_state): Likewise.
6628         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6629         * passes.c (pass_init_dump_file): Likewise.
6630         (execute_all_ipa_transforms): Likewise.
6631         (function_called_by_processed_nodes_p): Likewise.
6632         * predict.c (maybe_hot_frequency_p): Likewise.
6633         (probably_never_executed_bb_p): Likewise.
6634         (compute_function_frequency): Likewise.
6635         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6636         (unnest_nesting_tree_1): Likewise.
6637         (lower_nested_functions): Likewise.
6638         * tree-optimize.c (execute_fixup_cfg): Likewise.
6639         (tree_rest_of_compilation): Likewise.
6640         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6641         * tree-sra.c (ipa_early_sra): Likewise.
6642         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6643         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6644         * ipa.c (record_cdtor_fn): Likewise.
6645         * ipa-inline.c (cgraph_early_inlining): Likewise.
6646         (compute_inline_parameters_for_current): Likewise.
6647         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6648         * ipa-pure-const.c (local_pure_const): Likewise.
6649         * ipa-split.c (split_function): Likewise.
6650         (execute_split_functions): Likewise.
6651         * cgraphbuild.c (build_cgraph_edges): Likewise.
6652         (rebuild_cgraph_edges): Likewise.
6653         (cgraph_rebuild_references): Likewise.
6654         (remove_cgraph_callee_edges): Likewise.
6655         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6656         (verify_cgraph_node): Likewise.
6657         (cgraph_analyze_functions): Likewise.
6658         (cgraph_preserve_function_body_p): Likewise.
6659         (save_inline_function_body): Likewise.
6660         (save_inline_function_body): Likewise.
6661         * tree-inline.c (copy_bb): Likewise.
6662         (optimize_inline_calls): Likewise.
6663
6664 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6665
6666         PR tree-optimization/48195
6667         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6668         ipa_check_create_edge_args.
6669         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6670         ipa_check_create_edge_args.
6671         * ipa-inline.c (inline_generate_summary): Do not call
6672         ipa_check_create_node_params and ipa_check_create_edge_args.
6673         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6674         ipa_check_create_edge_args.
6675
6676 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
6677
6678         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6679         instead of loop.
6680         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6681         * function.c (record_hard_reg_sets): Likewise.
6682         * ira.c (compute_regs_asm_clobbered): Likewise.
6683         * sched-deps.c (sched_analyze_1): Likewise.
6684         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6685
6686 2011-04-09  Xinliang David Li  <davidxl@google.com>
6687
6688         PR tree-optimization/PR48484
6689         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6690         has_valid_pred lazily
6691
6692 2011-04-09  Duncan Sands  <baldrick@free.fr>
6693
6694         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6695
6696 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6697
6698         * combine.c (combine_validate_cost): Adjust comments.  Set registered
6699         cost of I0 to zero at the end, if any.
6700
6701 2011-04-08  Xinliang David Li  <davidxl@google.com>
6702
6703         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6704         to insane profile data.
6705
6706 2011-04-08  Xinliang David Li  <davidxl@google.com>
6707
6708         * ipa-cp.c (ipcp_update_profiling): Correct
6709          negative scale factor due to insane profile data.
6710
6711 2011-04-08  Xinliang David Li  <davidxl@google.com>
6712
6713         * final.c (dump_basic_block_info): New function.
6714         (final): Dump basic block.
6715         (final_scan_insn): Remove old dump.
6716
6717 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
6718
6719         PR target/47829
6720         * config.gcc (i386-*-freebsd): Disable unwind table generation for
6721         crtbegin/crtend.
6722
6723 2011-04-08  Michael Matz  <matz@suse.de>
6724
6725         PR middle-end/48389
6726         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6727         functions.
6728         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6729         * rtl.h (rebuild_jump_labels_chain): Declare.
6730         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6731         insns inserted on edges.
6732
6733 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6734
6735         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6736         * config/arm/arm-arches.def: New.
6737         * config/arm/arm-opts.h: New.
6738         * config/arm/genopt.sh: New.
6739         * config/arm/arm-tables.opt: New (generated).
6740         * config/arm/arm.c (arm_handle_option, arm_target_help,
6741         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6742         (all_architectures): Get most table contents from arm-arches.def.
6743         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6744         arm_selected_tune here.
6745         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6746         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6747         (march=, mcpu=, mtune=): Use Enum and Var.
6748         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6749         (arm.o): Update dependencies.
6750
6751 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6752
6753         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6754         of header_file.
6755         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6756         (write_typed_alloc_defns): Likewise.
6757         (main): Calls write_typed_alloc_defns with output_header.
6758
6759 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6760
6761         PR inline-asm/48435
6762         * ira-color.c (setup_profitable_hard_regs): Add comments.
6763         Don't take prohibited hard regs into account.
6764         (setup_conflict_profitable_regs): Rename to
6765         get_conflict_profitable_regs.
6766         (check_hard_reg_p): Check prohibited hard regs.
6767
6768 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6769
6770         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6771         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6772         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6773
6774 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6775
6776         PR target/48366
6777         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6778         move from floating point to shift amount register.
6779         (emit_move_sequence): Remove secondary reload support for floating
6780         point to shift amount amount register copies.
6781         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6782         amount register copies.
6783         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6784         register, return false if mode isn't a scalar integer mode.
6785         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6786
6787 2011-04-08  Richard Guenther  <rguenther@suse.de>
6788
6789         * gimple.c (gimple_call_flags): Remove kludge.
6790
6791 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6792
6793         * sel-sched.c (sel_region_init): Move call to
6794         sel_setup_region_sched_flags after setup_current_loop_nest.
6795
6796 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6797
6798         PR rtl-optimization/48272
6799         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6800         init_insn_reg_pressure_info.  Adjust a caller.
6801         * sched-int.h (init_insn_reg_pressure_info): Declare.
6802         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6803         when sched-pressure is enabled.
6804
6805 2011-04-08  Richard Guenther  <rguenther@suse.de>
6806
6807         * gimple.c (gimple_set_modified): Do not queue calls to
6808         MODIFIED_NORETURN_CALLS here ...
6809         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6810
6811 2011-04-08  Richard Guenther  <rguenther@suse.de>
6812
6813         PR lto/48467
6814         * toplev.c (lang_dependent_init): Do not open asm_out_file
6815         in WPA mode, nor perform debug machinery initialization.
6816         (finalize): Do not unlink asm_out_file in WPA mode.
6817
6818 2011-04-08  Richard Guenther  <rguenther@suse.de>
6819
6820         * gimple.h (gimple_call_fntype): New function.
6821         (gimple_call_return_type): Use it.
6822         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6823         * gimple-low.c (gimple_check_call_args): Likewise.
6824         * gimple.c (gimple_call_flags): Likewise.
6825         (gimple_call_arg_flags): Likewise.
6826         (gimple_call_return_flags): Likewise.
6827         * tree-cfg.c (verify_gimple_call): Likewise.
6828         (do_warn_unused_result): Likewise.
6829         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6830         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6831
6832 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6833
6834         PR rtl-optimization/48235
6835         * sel-sched.c (code_motion_process_successors): Recompute the last
6836         insn in basic block if control flow changed.
6837         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6838         Update condition for ilist_remove.
6839
6840 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6841
6842         PR rtl-optimization/48302
6843         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6844         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
6845         it to record added preheader blocks.
6846         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
6847         on to sel_add_loop_preheaders.
6848         (sel_region_init): Move call to setup_current_loop_nest after
6849         sel_init_bbs.
6850
6851 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6852
6853         PR target/48273
6854         * cfgloop.h (loop_has_exit_edges): New helper.
6855         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6856         non-clonable.
6857         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6858         that have no exit edges.
6859
6860 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6861
6862         PR rtl-optimization/48442
6863         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
6864         all callers.  Adjust assert.
6865
6866 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
6867
6868         PR tree-optimization/48377
6869         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6870         is_packed to true even for types with smaller TYPE_ALIGN than
6871         TYPE_SIZE.
6872
6873 2011-04-08  Richard Guenther  <rguenther@suse.de>
6874
6875         PR bootstrap/48513
6876         * doc/tm.texi: Re-generate.
6877
6878 2011-04-08  Wei Guozhi  <carrot@google.com>
6879
6880         PR target/47855
6881         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6882         * config/arm/arm.c (arm_attr_length_push_multi): New function.
6883         * config/arm/arm.md (*push_multi): Change the length computation to
6884         call a C function.
6885
6886 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
6887
6888         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6889         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6890         * doc/tm.texi: Regenerate.
6891         * system.h (ASM_OUTPUT_BSS): Poison.
6892         * varasm.c (asm_output_bss): Remove function.
6893         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
6894
6895         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6896         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6897         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6898         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6899         Likewise.
6900         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6901         Likewise.
6902         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6903         Likewise.
6904         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6905
6906 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6907
6908         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6909         EnumValue lines.
6910
6911 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6912
6913         * config/m68k/m68k.c (m68k_handle_option): Don't handle
6914         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6915         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6916         OPT_mcpu32.
6917         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6918         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6919         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6920         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6921         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6922         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6923         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6924         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6925         options.  Don't map other m68k options manually.  Don't handle
6926         old-style options as canonical.
6927         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6928         * doc/install.texi (m68k-*-*): Document binutils version requirement.
6929
6930 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6931
6932         * basic-block.h (force_nonfallthru): Move to...
6933         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6934         (force_nonfallthru): ...here.
6935         * cfghooks.c (force_nonfallthru): New function.
6936         * cfgrtl.c (force_nonfallthru): Rename into...
6937         (rtl_force_nonfallthru): ...this.
6938         (commit_one_edge_insertion): Do not set AUX field.
6939         (commit_edge_insertions): Do not discover new basic blocks.
6940         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6941         (cfg_layout_rtl_cfg_hooks): Likewise.
6942         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6943         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
6944         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6945
6946 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
6947
6948         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6949         Remove macros.
6950
6951 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
6952
6953         * config/i386/sse.md: Update copyright year.
6954         (avxcvtvecmode): Remove.
6955         (sse_movhlps): Merge with *avx_movhlps.
6956         (sse_movlhps): Merge with *avx_movlhps.
6957         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6958         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6959         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6960         (sse_loadhps): Merge with *avx_loadhps.
6961         (sse_storelps): Merge with *avx_storelps.
6962         (sse_loadlps): Merge with *avx_loadlps.
6963         (sse_movss): Merge with *avx_movss.
6964         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6965         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6966         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6967         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6968         (vec_set<mode>_0): Ditto.
6969         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6970         (sse4_1_insertps): Merge with *avx_insertps.
6971         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6972         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6973         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6974         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6975         (sse2_storehpd): Merge with *avx_storehpd.
6976         (sse2_loadhpd): Merge with *avx_loadhpd.
6977         (sse2_loadlpd): Merge with *avx_loadlpd.
6978         (sse2_movsd): Merge with *avx_movsd.
6979         (*vec_concatv2df): Merge with *vec_concatv2df.
6980
6981 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
6982
6983         PR debug/48343
6984         * combine.c (combine_instructions): Add last_combined_insn,
6985         update it if insn is after it, pass it to all try_combine calls.
6986         (try_combine): Add last_combined_insn parameter, pass it instead of
6987         i3 to propagate_for_debug.
6988
6989 2011-04-07  Nick Clifton  <nickc@redhat.com>
6990
6991         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6992         to handle MDR <-> data register transfers.
6993         (movhi_internal): Likewise.
6994
6995 2011-04-07  Alan Modra  <amodra@gmail.com>
6996
6997         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6998         previous stack info.
6999
7000 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7001
7002         PR target/43920
7003         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7004         flow_find_cross_jump.  Swap variables to implement backward replacement.
7005         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7006
7007 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7008
7009         PR target/43920
7010         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7011         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7012         and bb2.
7013         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7014         src1 or src2.  Redirect edges to the last basic block.  Update
7015         frequency and count on multiple basic blocks in case of fallthru.
7016
7017 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7018
7019         PR target/43920
7020         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7021         function.
7022         (old_insns_match_p): Change return type.  Replace return false/true
7023         with return dir_none/dir_both.  Use can_replace_by.
7024         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7025         direction from dir_p.  Register replacement direction in dir, last_dir
7026         and afterlast_dir.  Handle new return type of old_insns_match_p using
7027         merge_dir.  Return replacement direction in dir_p.
7028         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7029         return type of old_insns_match_p.
7030         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7031         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7032         flow_find_cross_jump.
7033         * basic-block.h (enum replace_direction): New type.
7034         (flow_find_cross_jump): Add parameter to declaration.
7035
7036 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7037
7038         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7039         (AVXMODEDCVTPS2DQ): Ditto.
7040         (VEC_FLOAT_MODE): Ditto.
7041         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7042         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7043         (<any_logic:code><mode>3): Use VF mode iterator.
7044         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7045         Use VF mode iterator.
7046         (copysign<mode>3): Use VF mode iterator.
7047         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7048         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7049         (*<any_logic:code><MODEF:mode>3): Merge with
7050         *avx_<any_logic:code><MODEF:mode>3.
7051         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7052         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7053         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7054         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7055         (sse2_cvtdq2ps): Use %v modifier.
7056         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7057         (avx_cvtps2dq<avxmodesuffix>): Remove.
7058         (sse2_cvtps2dq): Use %v modifier.
7059         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7060         (avx_cvttps2dq<avxmodesuffix>): Remove.
7061         (sse2_cvttps2dq): Use %v modifier.
7062         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7063         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7064         (sse2_cvtsd2siq): Fix insn template.
7065         (sse2_cvtsd2siq_2): Ditto.
7066         (sse2_cvttsd2siq): Ditto.
7067         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7068         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7069
7070 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7071
7072         * gcov-io.c: Use GCC Runtime Library Exception.
7073
7074 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7075
7076         PR debug/48466
7077         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7078         as base_reg whatever register reg has been eliminated to, instead
7079         of hardcoding STACK_POINTER_REGNUM.
7080
7081 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7082
7083         * doc/tm.texi.in: Document C target hooks as separate from general
7084         target hooks.
7085         * doc/tm.texi: Regenerate.
7086         * genhooks.c (struct hook_desc): Add docname field.
7087         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7088         docname field.
7089         (hook_array): Include c-target.def.
7090         (emit_documentation): Use docname field in output.
7091         (emit_init_macros): Take docname argument.  Only emit definitions
7092         for hooks matching docname.
7093         (main): Expect additional arguments in all cases.  Pass argument
7094         to emit_init_macros.
7095         * target.def: Move initial macro definitions and comments to
7096         target-hooks-macros.h.
7097         (gcc_targetcm): Move to c-family/c-target.def.
7098         * target.h (targetcm): Move declaration to c-family/c-target.h.
7099         * targhooks.c (default_handle_c_option): Move to
7100         c-family/c-opts.c.
7101         * targhooks.h (default_handle_c_option): Move declaration to
7102         c-family/c-common.h.
7103         * target-hooks-macros.h: New file.
7104         * config.gcc (target_has_targetcm): Define and use to add to
7105         c_target_objs and cxx_target_objs.
7106         * config/default-c.c: New file.
7107         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7108         of target.h and target-def.h.
7109         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7110         (darwin_objc_construct_string, darwin_cfstring_ref_p,
7111         darwin_check_cfstring_format_arg): Make static.
7112         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7113         TARGET_STRING_OBJECT_REF_TYPE_P,
7114         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7115         * config/darwin-protos.h (darwin_objc_construct_string,
7116         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7117         declare.
7118         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7119         TARGET_STRING_OBJECT_REF_TYPE_P,
7120         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7121         * config/t-darwin (darwin-c.o): Update dependencies.
7122         * system.h (TARGET_HAS_TARGETCM): Poison.
7123         * Makefile.in (TARGET_H): Update.
7124         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7125         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7126         (default-c.o): New target.
7127         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7128         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7129         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
7130         c-target.def.
7131         (build/genhooks.o): Update dependencies.
7132
7133 2011-04-06  Richard Guenther  <rguenther@suse.de>
7134
7135         * ipa-inline.c (enum inlining_mode): Remove.
7136         (cgraph_flatten): Use some other token.
7137         (cgraph_edge_early_inlinable_p): New function, split out from ...
7138         (cgraph_perform_always_inlining): New function, split out from ...
7139         (cgraph_decide_inlining_incrementally): ... here.
7140         (cgraph_mark_inline_edge): Adjust.
7141         (cgraph_early_inlining): Re-structure.
7142         (pass_early_inline): Require SSA form.
7143
7144 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
7145             Julian Brown  <julian@codesourcery.com>
7146             Mark Shinwell  <shinwell@codesourcery.com>
7147
7148         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7149         LO_REGS only for Thumb-1.
7150         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7151         be used in short instructions when optimising for size on Thumb-2.
7152
7153 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7154
7155         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7156         associated with user returns to be preserved.
7157
7158 2011-04-06  Tristan Gingold  <gingold@adacore.com>
7159
7160         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7161         symbol_queue_size, DBXOUT_DECR_NESTING,
7162         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7163         if XCOFF_DEBUGGING_INFO.
7164
7165 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7166
7167         * config/i386/i386.md (attribute isa): New.
7168         (attribute enabled): New.
7169         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7170         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7171         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7172         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7173         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7174         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7175         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7176         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7177
7178         * config/i386/sse.md (VF): New mode iterator.
7179         (VF1): Ditto.
7180         (VF2): Ditto.
7181         (VF_128): Ditto.
7182         (SSEMODEF4): Remove.
7183         (attribute sse): Handle V8SF and V4DF modes.
7184         (<absneg:code><mode>2): Use VF mode iterator.
7185         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
7186         mode iterator.
7187         (<plusminus_insn><mode>3): Use VF mode iterator.
7188         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7189         Use VF mode iterator.
7190         (<sse>_vm<plusminus_insn><mode>3): Merge with
7191         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
7192         (mul<mode>3): Use VF mode iterator.
7193         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
7194         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
7195         mode iterator.
7196         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7197         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7198         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
7199         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
7200         mode iterator.
7201         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7202         Use VF1 mode iterator.
7203         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7204         (sqrt<VF2:mode>2): New expander.
7205         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7206         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7207         and sqrtv2df2.  Use VF mode iterator.
7208         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
7209         mode iterator.
7210         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7211         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7212         Use VF1 mode iterator.
7213         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7214         (<smaxmin:code><mode>3): Use VF mode iterator.
7215         (*<smaxmin:code><mode>3_finite): Merge with
7216         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
7217         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7218         (<sse>_vm<smaxmin:code><mode>2): Merge with
7219         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
7220         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
7221         mode iterator.
7222         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
7223         mode iterator.
7224         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7225         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7226         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7227         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7228         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
7229         VF mode iterator.
7230         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7231         Use VF_128 mode iterator.
7232         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
7233         mode iterator.
7234         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
7235         VF_128 mode iterator.
7236         (vcond<mode>): Use VF mode iterator.
7237         * config/i386/predicates.md (sse_comparison_operator): Merge with
7238         avx_comparison_float_operator.  Do not declare as special_predicate.
7239         * config/i386/i386.c (struct builtin_description): Update for renamed
7240         compare patterns.
7241         (ix86_expand_args_builtin): Ditto.
7242         (ix86_expand_sse_compare_mask): Ditto.
7243
7244 2011-04-06  Richard Guenther  <rguenther@suse.de>
7245
7246         * tree-inline.c (estimate_num_insns): For calls simply account
7247         for all passed arguments and a used return value.
7248
7249 2011-04-06  Richard Guenther  <rguenther@suse.de>
7250
7251         PR tree-optimization/47663
7252         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7253         call_stmt_time fields.
7254         (cgraph_edge_inlinable_p): Declare.
7255         (cgraph_edge_recursive_p): New inline function.
7256         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7257         (cgraph_clone_edge): Copy it.
7258         * ipa-inline.c (cgraph_estimate_edge_time): New function.
7259         Account for call stmt time.
7260         (cgraph_estimate_time_after_inlining): Take edge argument.
7261         (cgraph_estimate_edge_growth): Account call stmt size.
7262         (cgraph_estimate_size_after_inlining): Take edge argument.
7263         (cgraph_mark_inline_edge): Adjust.
7264         (cgraph_check_inline_limits): Likewise.
7265         (cgraph_recursive_inlining_p): Remove.
7266         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7267         (cgraph_decide_recursive_inlining): Take edge argument and
7268         adjust.
7269         (cgraph_decide_inlining_of_small_functions): Do not avoid
7270         diags for recursive inlining here.
7271         (cgraph_flatten): Adjust.
7272         (cgraph_decide_inlining_incrementally): Likewise.
7273         (estimate_function_body_sizes): Remove call cost handling.
7274         (compute_inline_parameters): Initialize caller edge call costs.
7275         (cgraph_estimate_edge_growth): New function.
7276         (cgraph_estimate_growth): Use it.
7277         (cgraph_edge_badness): Likewise.
7278         (cgraph_check_inline_limits): Take an edge argument.
7279         (cgraph_decide_inlining_of_small_functions): Adjust.
7280         (cgraph_decide_inlining): Likewise.
7281         * tree-inline.c (estimate_num_insns): Only account for call
7282         return value if it is used.
7283         (expand_call_inline): Avoid diagnostics on recursive inline
7284         functions here.
7285         * lto-cgraph.c (lto_output_edge): Output edge call costs.
7286         (input_edge): Input edge call costs.
7287
7288 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7289
7290         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7291
7292 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7293
7294         * doc/invoke.texi (Spec Files): Fix typo.
7295
7296 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7297
7298         * profile.c (branch_prob): Move declaration of local variable.  Remove
7299         obsolete ??? comment.  Expand the location explicitly instead of using
7300         the LOCATION_FILE and LOCATION_LINE macros.
7301
7302 2011-04-06  Wei Guozhi  <carrot@google.com>
7303
7304         PR target/47855
7305         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7306         (arm_cond_branch): Likewise.
7307         (arm_cond_branch_reversed): Likewise.
7308         (arm_jump): Likewise.
7309         (push_multi): Likewise.
7310         * config/arm/constraints.md (Py): New constraint.
7311
7312 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7313
7314         PR bootstrap/48471
7315         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7316         Move these...
7317         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7318         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7319         #ifdef DBX_DEBUGGING_INFO.
7320
7321 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
7322
7323         PR bootstrap/48403
7324         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7325         if old and new states differ.
7326
7327 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7328
7329         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7330         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7331         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7332         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7333         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7334         mcfv4e): Use Alias.
7335         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7336         ColdFire options to -mcpu= options.
7337
7338 2011-04-05  Jeff Law  <law@redhat.com>
7339
7340         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7341         check if BB is a successor of LOOP->header and return
7342         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7343
7344 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7345
7346         * cprop.c (struct reg_use): Remove.
7347         (reg_use_table): Make an array of RTX.
7348         (find_used_regs, constprop_register, local_cprop_pass,
7349         bypass_block): Simplify users of reg_use_table.
7350         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
7351         on one of the uses found by find_used_regs.
7352
7353 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7354
7355         PR bootstrap/48469
7356         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7357         declaration.
7358
7359 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7360
7361         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7362         as an rtx.
7363         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7364
7365 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7366
7367         PR middle-end/48441
7368         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7369
7370 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7371
7372         * combine.c: Include obstack.h.
7373         (struct insn_link): Define.
7374         (uid_log_links): Adjust type.
7375         (FOR_EACH_LOG_LINK): New macro.
7376         (insn_link_obstack): Declare.
7377         (alloc_insn_link): Define.
7378         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
7379         type of link variables.
7380         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7381         (try_combine, record_promoted_values, distribute_notes): Likewise.
7382         (distribute_links): Likewise.  Tweak prototype.
7383         (clear_log_links): Delete.
7384         (adjust_for_new_dest): Call alloc_insn_link.
7385         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7386
7387 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7388
7389         * gcse.c (modify_mem_list): Convert to an array of VECs.
7390         (canon_modify_mem_list, compute_transp): Tweak formatting.
7391         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
7392         (load_killed_in_block_p): Likewise.
7393         (record_last_mem_set_info): Likewise.
7394         (clear_modify_mem_tables): Likewise.
7395
7396 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7397
7398         PR middle-end/48461
7399         * function.c (emit_use_return_register_into_block): Only define if
7400         HAVE_return.
7401
7402 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
7403
7404         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7405
7406 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7407
7408         * config/rx/rx-opts.h: New.
7409         * config/rx/rx.c (rx_cpu_type): Remove.
7410         (rx_handle_option): Don't assert that global structures are in
7411         use.  Access variables via opts pointer.  Defer most handling of
7412         OPT_mint_register_.  Use error_at.
7413         (rx_option_override): Handle deferred OPT_mint_register_ here.
7414         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7415         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7416         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7417         (rx_cpu_types): New Enum and EnumValue entries.
7418         (mint-register=): Use Defer and use Var accordingly.
7419
7420 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7421
7422         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7423         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7424         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7425         Move these...
7426         (debug_free_queue, debug_nesting, symbol_queue_index):
7427         ...and these...
7428         * dbxout.c: ...to here.  Make static.
7429
7430 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7431
7432         * gcse.c (modify_pair): Define.  Define a VEC of it.
7433         (canon_modify_mem_list): Convert to an array of VECs.
7434         (free_insn_expr_list_list): Delete.
7435         (clear_modify_mem_tables): Call VEC_free instead.
7436         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7437         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7438         (canon_list_insert, compute_transp): Likewise.
7439
7440 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7441
7442         PR target/43920
7443         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7444         for size.
7445
7446 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7447
7448         PR target/43920
7449         * function.c (emit_use_return_register_into_block): New function.
7450         (thread_prologue_and_epilogue_insns): Use
7451         emit_use_return_register_into_block.
7452
7453 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7454
7455         PR target/43920
7456         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7457         insn.
7458
7459 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7460
7461         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7462
7463 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
7464
7465         * config/arm/arm.md (define_constants for unspec): Replace with
7466         define_c_enum.
7467         (define_constants for unspecv): Replace with define_c_enum.
7468         * config/arm/neon.md (define_constants for unspec): Replace with
7469         define_c_enum.
7470
7471 2011-04-04  Richard Henderson  <rth@redhat.com>
7472
7473         PR bootstrap/48400
7474         * dwarf2out.c (output_line_info): Always emit line info from
7475         at least one section.
7476         (dwarf2out_init): Create text_section_line_info here ...
7477         (set_cur_line_info_table): ... not here.
7478
7479 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
7480
7481         PR target/48380
7482         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7483         not called.
7484
7485         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7486
7487 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7488
7489         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7490         (expr_equiv_p): Remove.
7491         (insert_set_in_table): Look at <dest, src> pair instead of expr.
7492         (hash_scan_set): Update call to insert_set_in_table.
7493         (dump_hash_table): Dump <dest, src> pair.
7494         (lookup_set): Simplify.  Lookup <dest, src> pair.
7495         (compute_transp): Remove, fold heavily simplified code into...
7496         (compute_local_properties): ...here.  Expect COMP and TRANSP
7497         unconditionally.
7498         (find_avail_set): Take set directly from struct expr.
7499         (find_bypass-set): Likewise.
7500         (bypass_block): Likewise.
7501         (cprop_insn): Likewise.  Remove redundant INSN_P test.
7502
7503         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7504         checks on form of COND from find_implicit_sets to here.
7505         (find_implicit_sets): Cleanup control flow. Split critical edges
7506         if it exposes implicit sets.  Allocate/resize implicit_sets as
7507         necessary.
7508         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7509         changed something.  Run df_analyze after find_implicit_sets if any
7510         edges were split.  Do not allocate implicit_sets here.
7511
7512         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7513         (gcse_obstack): Renamed to cprop_obstack.
7514         (GNEW, GNEWVEC, GNEWVAR): Remove.
7515         (gmalloc): Remove.
7516         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7517         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7518         (gcse_alloc): Likewise, and rename to cprop_alloc.
7519         (alloc_gcse_men, free_gcse_mem): Remove.
7520         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7521         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7522         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7523
7524         * cprop.c (oprs_not_set_p): Remove.
7525         (mark_set, mark_clobber): Remove.
7526         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7527         (reg_not_set_p): New function.
7528         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7529         (cprop_insn): Likewise.
7530         (cprop_jump): Use FOR_EACH_EDGE.
7531
7532 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7533
7534         PR bootstrap/48403
7535         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7536         (rank_for_schedule): Use scheduled_insns vector instead of
7537         last_scheduled_insn.
7538         (ok_for_early_queue_removal): Likewise.
7539         (queue_to_ready): Search forward in nonscheduled_insns_begin if
7540         we have a dbg_cnt.
7541         (choose_ready): Likewise.
7542         (commit_schedule): Use VEC_iterate.
7543         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
7544         a dbg_cnt, use it and ensure the first insn is in the ready list.
7545         (haifa_sched_init): Allocate scheduled_insns.
7546         (sched_extend_ready_list): Don't allocate it; reserve space.
7547         (haifa_sched_finish): Free it.
7548
7549 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7550
7551         * optc-gen.awk: Always remove type from Variable entry before
7552         recording in var_seen.
7553
7554 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7555
7556         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7557         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7558         call to tidy_fallthru_edges.
7559
7560 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7561
7562         * doc/options.texi (ToLower): Document.
7563         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7564         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7565         * opts.h (cl_option): Add cl_tolower field.
7566         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7567         arguments with lowercase strings.
7568         * config/rx/rx.opt (mcpu=): Add ToLower.
7569         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7570         argument.
7571
7572 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7573
7574         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7575
7576 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7577
7578         * config/vax/vax.c: Include reload.h.
7579
7580 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
7581
7582         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7583         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7584         (sparc_preferred_reload_class): New function.
7585
7586 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
7587
7588         PR debug/48401
7589         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7590         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7591
7592 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
7593
7594         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7595         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7596
7597 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
7598
7599         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7600         (ASM_OUTPUT_ALIGNED_BSS): Define.
7601
7602 2011-04-03  Michael Matz  <matz@suse.de>
7603
7604         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7605         and next_slot members.
7606         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7607         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7608         (lto_streamer_cache_append): Declare.
7609         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7610         unsigned index, remove offset parameter, ensure that we append
7611         or update existing entries.
7612         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7613         parameter, update next_slot for append.
7614         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7615         parameter.
7616         (lto_streamer_cache_insert_at): Likewise.
7617         (lto_streamer_cache_append): New function.
7618         (lto_streamer_cache_lookup): Use unsigned index.
7619         (lto_streamer_cache_get): Likewise.
7620         (lto_record_common_node): Don't test tree_node_can_be_shared.
7621         (preload_common_node): Adjust call to lto_streamer_cache_insert.
7622         (lto_streamer_cache_delete): Don't free offsets member.
7623         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7624         (lto_output_string_with_length): Use lto_output_data_stream.
7625         (lto_output_tree_header): Remove ix parameter, don't write it.
7626         (lto_output_builtin_tree): Likewise.
7627         (lto_write_tree): Adjust callers to above, don't track and write
7628         offset, write unsigned index.
7629         (output_unreferenced_globals): Don't emit all global vars.
7630         (write_global_references): Use unsigned indices.
7631         (lto_output_decl_state_refs): Likewise.
7632         (write_symbol): Likewise.
7633         * lto-streamer-in.c (lto_input_chain): Move earlier.
7634         (input_function): Use unsigned index.
7635         (input_alias_pairs): Don't read and then ignore all global vars.
7636         (lto_materialize_tree): Remove ix_p parameter, don't read index,
7637         don't pass it back, use lto_streamer_cache_append.
7638         (lto_register_var_decl_in_symtab): Use unsigned index.
7639         (lto_register_function_decl_in_symtab): Likewise.
7640         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7641         index.
7642         (lto_get_builtin_tree): Don't read index, use
7643         lto_streamer_cache_append.
7644         (lto_read_tree): Adjust call to lto_materialize_tree.
7645
7646         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7647         don't use function calls in arguments to MIN.
7648
7649         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7650         twice.
7651
7652         * gimple.c (gimple_type_leader_entry): Mark deletable.
7653
7654 2011-04-03  Alan Modra  <amodra@gmail.com>
7655
7656         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7657
7658 2011-04-03  Michael Matz  <matz@suse.de>
7659
7660         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7661         an integer.
7662         * tree.h (tree_decl_non_common.vindex): Adjust comment.
7663
7664 2011-04-03  Michael Matz  <matz@suse.de>
7665
7666         * cgraphbuild.c (record_reference): Canonicalize constructor values.
7667         * gimple-fold.c (canonicalize_constructor_val): Accept being called
7668         without function context.
7669         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7670         current_function_decl and cfun.
7671
7672 2011-04-03  Michael Matz  <matz@suse.de>
7673
7674         * tree.c (decl_init_priority_insert): Don't create entry for
7675         default priority.
7676         (decl_fini_priority_insert): Ditto.
7677         (fields_compatible_p, find_compatible_field): Remove.
7678         * tree.h (fields_compatible_p, find_compatible_field): Remove.
7679         * gimple.c (gimple_compare_field_offset): Adjust block comment.
7680
7681 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7682
7683         * combine.c (try_combine): Remove useless local variable.
7684
7685 2011-04-03  Richard Guenther  <rguenther@suse.de>
7686             Ira Rosen  <ira.rosen@linaro.org>
7687
7688         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7689         non-variable offsets and compare the remaining bases of the two
7690         accesses instead of looking for exact same data-ref.
7691
7692 2011-04-02  Kai Tietz  <ktietz@redhat.com>
7693
7694         PR target/48416
7695         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7696
7697         * i386.c (ix86_is_msabi_thiscall): New helper function.
7698         (ix86_is_type_thiscall): New helper function.
7699         (ix86_comp_type_attributes): Handle thiscall for method-functions
7700         special.
7701         (init_cumulative_args): Likewise.
7702         (find_drap_reg): Likewise.
7703         (ix86_static_chain): Likewise.
7704         (x86_this_parameter): Likewise.
7705         (x86_output_mi_thunk): Likewise.
7706
7707 2011-04-01  Olivier Hainque  <hainque@adacore.com>
7708             Nicolas Setton  <setton@adacore.com>
7709             Eric Botcazou  <ebotcazou@adacore.com>
7710
7711         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7712         (add_gnat_descriptive_type_attribute): New function.
7713         (gen_array_type_die): Call it.
7714         (gen_enumeration_type_die): Likewise.
7715         (gen_struct_or_union_type_die): Likewise.
7716         (modified_type_die): Likewise.
7717         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7718         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7719         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7720
7721 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7722
7723         PR bootstrap/48148
7724         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7725         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7726
7727         Revert:
7728         2011-03-17  Richard Guenther  <rguenther@suse.de>
7729
7730         PR bootstrap/48148
7731         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7732         origin for decls in other ltrans units.
7733         (input_varpool_node): Likewise.
7734
7735 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7736
7737         PR middle-end/48335
7738         * expr.c (expand_assignment): Handle all possibilities
7739         if TO_RTX is CONCAT.
7740         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7741         (store_split_bit_field): If SUBREG_REG (op0) or
7742         op0 itself has smaller mode than word, return it
7743         for offset 0 and const0_rtx for out-of-bounds stores.
7744         If word is const0_rtx, skip it.
7745
7746 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7747
7748         * config/h8300/h8300.c (print_operand_address): Rename to...
7749         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7750         Call h8300_print_operand and h8300_print_operand_address instead of
7751         print_operand and print_operand_address. Declare.
7752         (print_operand): Renake to...
7753         (h8300_print_operand): ...this. Make static. Adjust comments.
7754         Call h8300_print_operand instead of print_operand. Declare.
7755         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7756         (h8300_register_move_cost): Likewise.
7757         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7758         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7759         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7760         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7761         * config/h8300/h8300-protos.h (print_operand): Delete.
7762         (print_operand_address): Delete.
7763
7764 2011-04-01  Richard Henderson  <rth@redhat.com>
7765
7766         PR 48400
7767         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7768         in strict mode before dwarf4.  Re-order tests to early out
7769         before switching sections.
7770
7771 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7772
7773         * config/h8300/constraints.md: New file.
7774         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7775         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7776         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7777         * config/h8300/predicates.md (bit_operand): Likewise.
7778         (incdec_operand): Use satisfies_constraint_M and
7779         satisfies_constraint_O.  Don't use C code block.
7780         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7781         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7782         (compute_mov_length): Use satisfies_constraint_G.
7783         (fix_bit_operand): Use satisfies_constraint_U.
7784         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7785         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7786         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7787         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7788         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7789         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7790         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7791         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7792         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7793         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7794         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7795         (EXTRA_MEMORY_CONSTRAINT): Delete.
7796
7797 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7798             Michael Meissner  <meissner@linux.vnet.ibm.com>
7799
7800         PR target/48262
7801         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7802         operands, as per the specifications.
7803
7804         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7805         (vec_extract_evenv4sf): Ditto.
7806         (vec_extract_evenv8hi): Ditto.
7807         (vec_extract_evenv16qi): Ditto.
7808         (vec_extract_oddv4si): Ditto.
7809
7810 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7811
7812         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7813         high_pc attribute if the CU has no associated code. Only output
7814         DW_AT_entry_pc for CU if not generating strict dwarf and
7815         dwarf_version < 4.
7816
7817 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7818
7819         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7820         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7821         out of ...
7822         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7823         * final.c (final_start_function): Call the new function rather
7824         than using a NULL argument for dwarf2out_frame_debug.
7825
7826         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7827         that contains the prologue.
7828
7829         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7830         changed.  Print it in debugging output.
7831
7832         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7833
7834         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7835         Split most of the code into...
7836         (begin_move_insn): ... here.  New function.
7837         (ebb_sched_info): Add a pointer to it.
7838         * haifa-sched.c (scheduled_insns): New static variable.
7839         (sched_extend_ready_list): Allocate it.
7840         (schedule_block): Use it to record the order of scheduled insns.
7841         Perform RTL changes to move insns only after all scheduling
7842         decisions have been made.
7843         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7844         begin_move_insn field.
7845         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7846         * sched-int.h (struct haifa_sched_info): Remove second argument
7847         from begin_schedule_ready hook.  Add new member begin_move_insn.
7848         * sched-rgn.c (begin_schedule_ready): Remove second argument.
7849         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7850
7851         * haifa-sched.c (prune_ready_list): New function, broken out of
7852         schedule_block.
7853         (schedule_block): Use it.
7854
7855 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7856
7857         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7858
7859 2011-04-01  Kai Tietz  <ktietz@redhat.com>
7860
7861         * config.gcc (*-*-mingw*): Allow as option the
7862         posix threading model.
7863         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
7864         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7865         definition.
7866         (CPP_SPEC): Add pthread/no-pthread handling.
7867         (LIB_SPEC): Likewise.
7868         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7869         (LIB_SPEC): Likewise.
7870         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7871         flag to pass -pthread option for shared libgcc build.
7872         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7873         for shared libgcc build.
7874         * config/i386/t-mingw-pthread: New file.
7875         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7876         New define to enable use of library pthread by default.
7877         * config/i386/mingw.opt (pthread): New driver option.
7878         (no-pthread): New driver option.
7879         * config/i386/cygming.opt: Make sure trailing empty line is retained.
7880         * config/i386/mingw-w64.opt: Likewise.
7881
7882 2011-04-01  Gary Funck  <gary@intrepid.com>
7883
7884         * c-decl.c (grokdeclarator): Fix formatting.
7885
7886 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7887
7888         * expr.c (emit_block_move_via_movmem): Use n_generator_args
7889         instead of n_operands.
7890         (set_storage_via_setmem): Likewise.
7891         * optabs.c (maybe_gen_insn): Likewise.
7892         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7893         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7894         (mips_expand_builtin_direct): Likewise.
7895         * config/spu/spu.c (expand_builtin_args): Likewise.
7896
7897 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7898
7899         * recog.h (insn_data_d): Add n_generator_args.
7900         * genoutput.c (data): Likewise.
7901         (output_insn_data): Print it.
7902         (max_opno, num_dups): Delete.
7903         (scan_operands): Just fill in "d->operand[...]".
7904         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7905
7906 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7907
7908         * gensupport.h (pattern_stats): New structure.
7909         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7910         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7911         (max_operand_1, max_operand_vec): Delete.
7912         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7913
7914 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
7915
7916         * emit-rtl.c (emit_pattern_after_setloc): New function.
7917         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7918         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7919         (emit_pattern_after): New function.
7920         (emit_insn_after, emit_jump_insn_after): Call it.
7921         (emit_call_insn_after, emit_debug_insn_after): Likewise.
7922         (emit_pattern_before_setloc): New function.
7923         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7924         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7925         Likewise.
7926         (emit_pattern_before): New function.
7927         (emit_insn_before, emit_jump_insn_before): Call it.
7928         (emit_call_insn_before, emit_debug_insn_before): Likewise.
7929
7930 2011-03-31  Richard Henderson  <rth@redhat.com>
7931
7932         * dwarf2out.c (dw_separate_line_info_ref): Remove.
7933         (dw_separate_line_info_entry): Remove.
7934         (enum dw_line_info_opcode): New.
7935         (dw_line_info_entry): Use it.
7936         (dw_line_info_table, dw_line_info_table_p): New.
7937         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7938         (line_info_table, line_info_label_num): Remove.
7939         (line_info_table_in_use): Remove.
7940         (separate_line_info_table): Remove.
7941         (separate_line_info_table_allocated): Remove.
7942         (separate_line_info_table_in_use): Remove.
7943         (LINE_INFO_TABLE_INCREMENT): Remove.
7944         (line_info_label_num): New.
7945         (cur_line_info_table): New.
7946         (text_section_line_info, cold_text_section_line_info): New.
7947         (separate_line_info): New.
7948         (SEPARATE_LINE_CODE_LABEL): Remove.
7949         (print_dwarf_line_table): Remove.
7950         (debug_dwarf): Don't dump it.
7951         (output_one_line_info_table): New.
7952         (output_line_info): Use it.
7953         (new_line_info_table): New.
7954         (set_cur_line_info_table): New.
7955         (dwarf2out_switch_text_section): Use it.
7956         (dwarf2out_begin_function): Likewise.
7957         (push_dw_line_info_entry): New.
7958         (dwarf2out_source_line): Rewrite for new line info tables.
7959         (dwarf2out_init): Remove dead initailizations.
7960
7961 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7962
7963         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
7964         various flags.
7965         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7966         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7967         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7968         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7969         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7970         * opt-functions.awk (flag_init, switch_bit_fields): New.
7971         (switch_flags): Don't handle flags moved to bit-fields.  Don't
7972         generate CL_MISSING_OK or CL_SAVE.
7973         * optc-gen.awk: Update to generate bit-field output as well as
7974         flags field.
7975         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7976         bit-field instead of CL_REJECT_DRIVER flag.
7977         * opts-common.c (generate_canonical_option,
7978         decode_cmdline_option): Use bit-fields instead of CL_* flags.
7979         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7980         instead of CL_REJECT_NEGATIVE flag.
7981         * toplev.c (print_switch_values): Use cl_report bit-field instead
7982         of CL_REPORT flag.
7983
7984 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7985
7986         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7987         a zero minimum index only if it is redundant.
7988
7989 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7990
7991         PR rtl-optimization/48381
7992         * ira-color.c (assign_hard_reg): Use hard reg set intersection
7993         instead of ira_class_hard_reg_index for calculating conflicting
7994         hard registers.
7995
7996 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
7997
7998         * cprop.c: Clean up hash table building.
7999         (reg_avail_info): Remove.
8000         (oprs_available_p): Remove.
8001         (record_last_reg_set_info): Remove.
8002         (record_last_set_info): Remove.
8003         (reg_available_p): New function.
8004         (gcse_constant_p): Do not treat unfolded conditions as constants.
8005         (make_set_regs_unavailable): New function.
8006         (hash_scan_set): Simplify with new reg_available_p.
8007         (compute_hash_table_work): Traverse insns stream only once.
8008         Do not compute reg_avail_info. Traverse insns in reverse order.
8009         Record implicit sets after recording explicit sets from the block.
8010
8011 2011-03-31  Michael Matz  <matz@suse.de>
8012
8013         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8014
8015 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8016
8017         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8018         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8019         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8020         (h8300_mode_dependent_address_p): New function.
8021         (h8300_get_index): Make static.
8022
8023 2011-03-31  Jeff Law  <law@redhat.com>
8024
8025         * reload1.c (elimination_effects): Fix typo in recent change.
8026
8027         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8028         typo potentially leading to null pointer dereference.
8029
8030         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8031         (setup_save_areas): Corresponding changes to avoid useless
8032         assignments.
8033
8034         * jump.c (reversed_comparison_code_parts): Avoid successive return
8035         statements when REVERSE_CONDITION is defined.
8036
8037         * expr.c (expand_assignment): Avoid useless assignments.
8038         (expand_expr_real_1): Likewise.
8039         (expand_expr_real_2): Avoid useless statements.
8040
8041         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8042
8043         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8044
8045         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8046         statements.
8047
8048         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8049
8050 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8051
8052         PR target/47109
8053         * doc/tm.texi.in (TARGET_VERSION): Remove.
8054         * doc/tm.texi: Regenerate.
8055         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8056         * collect2.c (main): Don't use TARGET_VERSION.
8057         * mips-tdump.c (main): Don't use TARGET_VERSION.
8058         * mips-tfile.c (main): Don't use TARGET_VERSION.
8059         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8060         * config/rs6000/vxworksae.h: Remove.
8061         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8062         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8063         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8064         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8065         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8066         * config/arm/arm.h (TARGET_VERSION): Remove.
8067         * config/arm/coff.h (TARGET_VERSION): Remove.
8068         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8069         * config/arm/elf.h (TARGET_VERSION): Remove.
8070         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8071         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8072         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8073         * config/arm/pe.h (TARGET_VERSION): Remove.
8074         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8075         * config/arm/semi.h (TARGET_VERSION): Remove.
8076         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8077         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8078         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8079         * config/avr/avr.h (TARGET_VERSION): Remove.
8080         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8081         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8082         * config/frv/frv.h (TARGET_VERSION): Remove.
8083         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8084         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8085         * config/i386/darwin.h (TARGET_VERSION): Remove.
8086         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8087         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8088         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8089         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8090         * config/i386/gnu.h (TARGET_VERSION): Remove.
8091         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8092         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8093         * config/i386/linux.h (TARGET_VERSION): Remove.
8094         * config/i386/linux64.h (TARGET_VERSION): Remove.
8095         * config/i386/lynx.h (TARGET_VERSION): Remove.
8096         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8097         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8098         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8099         * config/i386/netware.h (TARGET_VERSION): Remove.
8100         * config/i386/nto.h (TARGET_VERSION): Remove.
8101         * config/i386/openbsd.h (TARGET_VERSION): Remove.
8102         * config/i386/vxworks.h (TARGET_VERSION): Remove.
8103         * config/ia64/elf.h (TARGET_VERSION): Remove.
8104         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8105         * config/ia64/hpux.h (TARGET_VERSION): Remove.
8106         * config/ia64/linux.h (TARGET_VERSION): Remove.
8107         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8108         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8109         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8110         * config/lm32/lm32.h (TARGET_VERSION): Remove.
8111         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8112         * config/m32c/m32c.h (TARGET_VERSION): Remove.
8113         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8114         * config/m32r/m32r.h (TARGET_VERSION): Remove.
8115         * config/m68k/linux.h (TARGET_VERSION): Remove.
8116         * config/m68k/m68k.h (TARGET_VERSION): Remove.
8117         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8118         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8119         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8120         * config/mep/mep.h (TARGET_VERSION): Remove.
8121         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8122         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8123         * config/mips/iris6.h (MACHINE_TYPE): Remove.
8124         * config/mips/linux.h (TARGET_VERSION): Remove.
8125         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8126         * config/mips/vxworks.h (TARGET_VERSION): Remove.
8127         * config/mmix/mmix.h (TARGET_VERSION): Remove.
8128         * config/mn10300/linux.h (TARGET_VERSION): Remove.
8129         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8130         * config/pa/pa.h (TARGET_VERSION): Remove.
8131         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8132         * config/picochip/picochip.h (TARGET_VERSION): Remove.
8133         * config/rs6000/aix.h (TARGET_VERSION): Remove.
8134         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8135         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8136         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8137         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8138         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8139         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8140         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8141         * config/rs6000/linux.h (TARGET_VERSION): Remove.
8142         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8143         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8144         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8145         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8146         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8147         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8148         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8149         * config/s390/linux.h (TARGET_VERSION): Remove.
8150         * config/s390/s390.h (TARGET_VERSION): Remove.
8151         * config/s390/tpf.h (TARGET_VERSION): Remove.
8152         * config/score/score.h (TARGET_VERSION): Remove.
8153         * config/sh/linux.h (TARGET_VERSION): Remove.
8154         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8155         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8156         * config/sh/sh.h (TARGET_VERSION): Remove.
8157         * config/sh/sh64.h (TARGET_VERSION): Remove.
8158         * config/sh/superh.h (TARGET_VERSION): Remove.
8159         * config/sh/vxworks.h (TARGET_VERSION): Remove.
8160         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8161         * config/sparc/linux.h (TARGET_VERSION): Remove.
8162         * config/sparc/linux64.h (TARGET_VERSION): Remove.
8163         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8164         TARGET_NAME32, TARGET_NAME): Remove.
8165         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8166         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8167         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8168         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8169         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8170         * config/spu/spu.h (TARGET_VERSION): Remove.
8171         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8172         * config/v850/v850.h (TARGET_VERSION): Remove.
8173         * config/vax/linux.h (TARGET_VERSION): Remove.
8174         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8175         * config/xtensa/elf.h (TARGET_VERSION): Remove.
8176         * config/xtensa/linux.h (TARGET_VERSION): Remove.
8177
8178 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8179
8180         PR target/48142
8181         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8182         frame-related from frame-unrelated adjustments to the stack pointer.
8183
8184 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
8185
8186         * common.opt (fdebug-types-section): Move earlier.
8187         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8188
8189 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
8190
8191         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8192         var.
8193
8194 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
8195
8196         * tree.h (CASE_CHAIN): Define.
8197         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8198         (gimple_redirect_edge_and_branch): Likewise.
8199
8200 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8201
8202         PR middle-end/48367
8203         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8204         calculation.
8205
8206 2011-03-30  Jeff Law  <law@redhat.com>
8207
8208         * PR bootstrap/48371
8209         * reload1.c (reload): Fix botch in last change.
8210
8211         * reload.h (struct reload): Fix typo introduced in last change.
8212
8213 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8214
8215         * config/arm/arm.opt (mhard-float, msoft-float): Mark
8216         Undocumented.  Remove help text.
8217         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8218         -mhard-float.
8219
8220 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8221
8222         * doc/options.texi (NegativeAlias): Document.
8223         (Alias): Mention NegativeAlias.
8224         * opt-functions.awk: Handle NegativeAlias.
8225         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8226         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8227         * opts.h (CL_NEGATIVE_ALIAS): Define.
8228         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8229         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8230         OPT_mspe_.
8231         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8232         Alias entries.
8233         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8234         mno-spe and mno-isel instead of mspe=no and -misel=no.
8235
8236 2011-03-29  Mark Wielaard  <mjw@redhat.com>
8237
8238         * common.opt (fdebug-types-section): New flag.
8239         * doc/invoke.texi: Document new -fno-debug-types-section flag.
8240         * dwarf2out.c (use_debug_types): New define.
8241         (struct die_struct): Mark die_id with GTY desc use_debug_types.
8242         (print_die): Guard output of type unit signatures using
8243         use_debug_types.
8244         (build_abbrev_table): Replace assert of dwarf_version >= 4
8245         with assert on use_debug_types.
8246         (size_of_die): Likewise.
8247         (unmark_dies): Likewise.
8248         (value_format): Decide AT_ref_external form on use_debug_types.
8249         (output_die): Replace dwarf_version version check guard with
8250         use_debug_types where appropriate.
8251         (modified_type_die): Likewise.
8252         (gen_reference_type_die): Likewise.
8253         (dwarf2out_start_source_file): Likewise.
8254         (dwarf2out_end_source_file): Likewise.
8255         (prune_unused_types_walk_attribs): Likewise.
8256         (dwarf2out_finish): Likewise.
8257
8258 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8259
8260         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8261
8262 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8263
8264         PR rtl-optimization/48332
8265         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8266         mode of input operand N and modeN to its actual mode.
8267
8268 2011-03-30  Jeff Law  <law@redhat.com>
8269
8270         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8271         define accessor macro.
8272         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8273         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8274         (reg_equiv_init): Likewise.
8275         (reg_equivs_size): New variable.
8276         (reg_equiv_init_size): Remove.
8277         (allocate_initial_values): Move prototype to here from....
8278         * integrate.h (allocate_initial_values): Remove prototype.
8279         * integrate.c: Include reload.h.
8280         (allocate_initial_values): Corresponding changes.
8281         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8282         (fix_reg_equiv_init, no_equiv): Corresponding changes.
8283         (update_equiv_regs): Corresponding changes.
8284         (ira): Corresponding changes.
8285         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8286         (push_secondary_reload): Corresponding changes.
8287         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8288         (make_memloc, find_reloads_address): Corresponding changes.
8289         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8290         (find_reloads_address_1): Corresponding changes.
8291         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8292         (refers_to_regno_for_reload_p): Corresponding changes.
8293         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8294         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8295         * reload1.c: Include ggc.h.
8296         (grow_reg_equivs): New function.
8297         (replace_pseudos_in, reload): Corresponding changes.
8298         (calculate_needs_all_insns, alter_regs): Corresponding changes.
8299         (eliminate_regs_1, elimination_effects): Corresponding changes.
8300         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8301         (delete_output_reload): Likewise.
8302         * caller-save.c (mark_referenced_regs): Corresponding changes.
8303         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8304         * frv/predicates.md (frv_load_operand): Corresponding changes.
8305         * microblaze/microblaze.c (double_memory_operand): Corresponding
8306         changes.
8307         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8308         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8309         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8310         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8311         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8312         changes.
8313         * pa/pa.c (emit_move_sequence): Corresponding changes.
8314         * vax/vax.c (nonindexed_address_p): Corresponding changes.
8315
8316 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8317
8318         PR target/47551
8319         * config/arm/arm.c (coproc_secondary_reload_class): Handle
8320         structure modes.  Don't check neon_vector_mem_operand for
8321         vector or structure modes.
8322
8323 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8324             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8325
8326         PR target/43590
8327         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8328         operand 1 and reshuffle the operands to match.
8329         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8330
8331 2011-03-30  Christian Schüler  <cschueler@gmx.de>
8332
8333         PR driver/48208
8334         * config/c.opt (F): Added 'Driver' to -F option.
8335
8336         PR driver/48260
8337         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8338           handler function.
8339         * config/darwin.opt: Added '-arch' option.
8340
8341 2011-03-30  Nick Clifton  <nickc@redhat.com>
8342
8343         * config/rx/rx.md: Add peepholes and patterns to combine
8344         extending loads and simple arithmetic instructions.
8345         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8346         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8347         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8348         modes to use pre-decrement and post-increment addressing.
8349         (rx_is_restricted_memory_address): Add range checking of REG+INT
8350         addresses.
8351         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
8352         (rx_memory_move_cost): Adjust cost of stores.
8353         (rx_adjust_insn_length): New function.
8354
8355 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
8356
8357         PR c/48305
8358         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8359         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8360         matching arg00/arg01 types.
8361
8362 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8363
8364         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8365         last_location to UNKNOWN_LOCATION.
8366
8367 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8368
8369         PR target/48349
8370         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8371         FLOAT_SSE_REGS.
8372
8373 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8374             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8375
8376         PR bootstrap/48337
8377         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8378         Init(PROCESSOR_V7).
8379         (sparc_cpu): Likewise.
8380         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8381         PROCESSOR_V7.
8382
8383 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8384
8385         PR target/48336
8386         PR middle-end/48342
8387         PR rtl-optimization/48345
8388         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8389         hard regs for given mode from profitable regs when doing secondary
8390         allocation.
8391
8392 2011-03-29  Jeff Law  <law@redhat.com>
8393
8394         PR bootstrap/48327
8395         * tree-ssa-threadupdate.c (struct redirection_data): Remove
8396         do_not_duplicate field.
8397         (lookup_redirection_data): Corresponding changes.
8398         (create_duplicates): Always create a template block.
8399         (redirect_edges): Remove code which reused the original block
8400         when it was going to become unreachable code.
8401         (thread_block): Don't set do_not_duplicate field.
8402
8403 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
8404
8405         * lto-opts.c (register_user_option_p, lto_register_user_option):
8406         Make type argument unsigned.
8407         * lto-streamer.h (lto_register_user_option): Make type argument
8408         unsigned.
8409         * opth-gen.awk: Make CL_* macros unsigned.
8410         * opts-common.c (find_opt): Make lang_mask argument unsigned.
8411         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8412         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8413         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8414         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8415         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8416         (find_opt): Make lang_mask argument unsigned.
8417
8418 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8419
8420         PR rtl-optimization/48331
8421         PR rtl-optimization/48334
8422         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8423         for any used algorithm.
8424
8425 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8426
8427         * ira-conflicts.c (build_object_conflicts): Add unused attribute
8428         to parent_max.
8429
8430 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
8431
8432         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8433         (alpha_option_override): Don't set alpha_sr_alias_set.
8434         (emit_frame_store_1): Use gen_frame_mem rather than calling
8435         set_mem_alias_set.
8436         (alpha_expand_epilogue): Ditto.
8437
8438 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
8439
8440         PR tree-optimization/48290
8441         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8442         vectorization, check that relevant phis in the basic block after
8443         the inner loop are really inner loop's exit phis.
8444
8445 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
8446
8447         PR debug/48190
8448         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8449         (cached_dw_loc_list_def): New structure.
8450         (cached_dw_loc_list): New typedef.
8451         (cached_dw_loc_list_table): New variable.
8452         (cached_dw_loc_list_table_hash): New function.
8453         (cached_dw_loc_list_table_eq): Likewise.
8454         (add_location_or_const_value_attribute): Take a bool cache_p.
8455         Cache the list when the parameter is true.
8456         (gen_formal_parameter_die): Update caller.
8457         (gen_variable_die): Likewise.
8458         (dwarf2out_finish): Likewise.
8459         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8460         while generating debug info for the decl.
8461         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8462         (dwarf2out_init): Initialize cached_dw_loc_list_table.
8463         (resolve_addr): Cache the result of resolving a chain of
8464         location lists.
8465
8466 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
8467
8468         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8469         conflict object hard regset nodes have intersecting hard reg sets.
8470
8471         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8472         after regstat_init_n_sets_and_refs.
8473
8474         * ira.c: Add more comments at the top.
8475         (setup_stack_reg_pressure_class, setup_pressure_classes):
8476         Add comments how we compute the register pressure classes.
8477         (setup_allocno_and_important_classes): Add more comments.
8478         (setup_class_translate_array, reorder_important_classes)
8479         (setup_reg_class_relations): Add comments.
8480
8481         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
8482         start of the file.
8483
8484         * ira-color.c: Add 2011 to the Copyright line.
8485         (assign_hard_reg):  Add more comments.
8486         (improve_allocation): Ditto.
8487
8488         * ira-costs.c: Add 2011 to the Copyright line.
8489         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8490         comments.
8491         (setup_regno_cost_classes_by_mode): Ditto.
8492
8493         Initial patches from ira-improv branch:
8494
8495         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8496
8497         * ira-build.c (ira_create_object): Remove initialization of
8498         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
8499         (ira_create_allocno): Remove initialization of
8500         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8501         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8502         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8503         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8504         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8505         Initialize ALLOCNO_ADD_DATA.
8506         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8507         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8508         ALLOCNO_REG.
8509         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8510         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8511
8512         * ira.c (ira_reallocate): Remove.
8513         (setup_pressure_classes): Call
8514         ira_init_register_move_cost_if_necessary.  Use
8515         ira_register_move_cost instead of ira_get_register_move_cost.
8516         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8517         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8518
8519         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8520         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8521         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8522         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8523         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8524         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8525         Fix formatting.
8526         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8527         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8528         (struct allocno_color_data): New.
8529         (allocno_color_data_t): New typedef.
8530         (allocno_color_data): New definition.
8531         (ALLOCNO_COLOR_DATA): New macro.
8532         (struct object_color_data): New.
8533         (object_color_data_t): New typedef.
8534         (object_color_data): New definition.
8535         (OBJECT_COLOR_DATA): New macro.
8536         (update_copy_costs, calculate_allocno_spill_cost): Call
8537         ira_init_register_move_cost_if_necessary.  Use
8538         ira_register_move_cost instead of ira_get_register_move_cost.
8539         (move_spill_restore, update_curr_costs): Ditto.
8540         (allocno_spill_priority): Make it inline.
8541         (color_pass): Allocate and free allocno_color_dat and object_color_data.
8542         (struct coalesce_data, coalesce_data_t): New.
8543         (allocno_coalesce_data): New definition.
8544         (ALLOCNO_COALESCE_DATA): New macro.
8545         (merge_allocnos, coalesced_allocno_conflict_p): Use
8546         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8547         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8548         (coalesce_allocnos): Ditto.
8549         (setup_coalesced_allocno_costs_and_nums): Ditto.
8550         (collect_spilled_coalesced_allocnos): Ditto.
8551         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8552         (setup_slot_coalesced_allocno_live_ranges): Ditto.
8553         (coalesce_spill_slots): Ditto.
8554         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
8555         free allocno_coalesce_data.
8556
8557         * ira-conflicts.c: Fix formatting.
8558         (process_regs_for_copy): Call
8559         ira_init_register_move_cost_if_necessary.  Use
8560         ira_register_move_cost instead of ira_get_register_move_cost.
8561         (build_object_conflicts): Optimize.
8562
8563         * ira-costs.c (record_reg_classes): Optimize.  Call
8564         ira_init_register_move_cost_if_necessary.  Use
8565         ira_register_move_cost, ira_may_move_in_cost, and
8566         ira_may_move_out_cost instead of ira_get_register_move_cost and
8567         ira_get_may_move_cost.
8568         (record_address_regs): Ditto.
8569         (scan_one_insn): Optimize.
8570         (find_costs_and_classes): Optimize.
8571         (process_bb_node_for_hard_reg_moves): Call
8572         ira_init_register_move_cost_if_necessary.  Use
8573         ira_register_move_cost instead of ira_get_register_move_cost.
8574
8575         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8576         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8577         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8578         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8579         definitions.
8580         (ira_initiate_emit_data, ira_finish_emit_data)
8581         (create_new_allocno): New functions.
8582         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8583         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8584         Use ira_register_move_cost instead of ira_get_register_move_cost.
8585
8586         * ira-int.h: Fix some comments.
8587         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8588         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8589         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8590         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
8591         add_data.
8592         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
8593         bitfield after mode.  Make hard_regno a short int.  Make
8594         hard_regno short.  Remove first_coalesced_allocno and
8595         next_coalesced_allocno.  Move mem_optimized_dest_p,
8596         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8597         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
8598         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8599         temp, colorable_p.  Add new member add_data.
8600         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8601         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8602         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8603         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8604         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8605         (ALLOCNO_ADD_DATA): New macro.
8606         (ira_emit_data_t): New typedef.
8607         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
8608         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8609         from struct ira_allocno.
8610         (ALLOCNO_EMIT_DATA): New macro.
8611         (ira_allocno_emit_data, allocno_emit_reg): New.
8612         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
8613         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
8614         (OBJECT_ADD_DATA): New macro.
8615         (ira_reallocate): Remove.
8616         (ira_initiate_emit_data, ira_finish_emit_data): New.
8617         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8618         (ira_init_register_move_cost_if_necessary): New.
8619         (ira_object_conflict_iter_next): Merge into
8620         ira_object_conflict_iter_cond.
8621         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
8622
8623         * ira-live.c (process_single_reg_class_operands): Call
8624         ira_init_register_move_cost_if_necessary.  Use
8625         ira_register_move_cost instead of ira_get_register_move_cost.
8626
8627         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8628
8629         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8630
8631         * ira-costs.c: Fix formatting.
8632         (cost_classes, cost_classes_num): Remove.
8633         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8634         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8635         (cost_classes_del, cost_classes_htab): New.
8636         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8637         (initiate_regno_cost_classes, setup_cost_classes): New.
8638         (setup_regno_cost_classes_by_aclass): New.
8639         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
8640         (record_reg_classes): Use regno_cost_classes instead of
8641         cost_classes.  Move checking opposite operand up.
8642         (record_address_regs): Use regno_cost_classes
8643         instead of cost_classes.
8644         (scan_one_insn): Ditto.  Use always general register.
8645         (print_allocno_costs): Use regno_cost_classes instead of
8646         cost_classes.
8647         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
8648         (find_costs_and_classes): Set up cost classes for each registers.
8649         Use also their mode for this.  Use regno_cost_classes instead of
8650         cost_classes.
8651         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8652         cost_classes.
8653         (free_ira_costs, ira_init_costs): Don't use cost_classes.
8654         (ira_costs, ira_set_pseudo_classes): Call
8655         initiate_regno_cost_classes and finish_regno_cost_classes.
8656
8657         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8658
8659         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8660
8661         * target.def (ira_cover_classes): Remove.
8662
8663         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
8664
8665         * doc/tm.texi.in: Ditto.
8666
8667         * ira-conflicts.c: Remove mentioning cover classes from the file.
8668         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
8669         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
8670
8671         * targhooks.c (default_ira_cover_classes): Remove.
8672
8673         * targhooks.h (default_ira_cover_classes): Ditto.
8674
8675         * haifa-sched.c: Remove mentioning cover classes from the file.
8676         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8677         ira_pressure_classes and ira_pressure_classes_num instead of
8678         ira_reg_class_cover_size and ira_reg_class_cover.  Use
8679         sched_regno_pressure_class instead of sched_regno_cover_class.
8680         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8681         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8682
8683         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
8684         classes from the file.
8685         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8686         (struct object_hard_regs, struct object_hard_regs_node): New.
8687         (struct ira_object): New members profitable_hard_regs,
8688         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8689         (struct ira_allocno): Rename cover_class to aclass.  Rename
8690         cover_class_cost and updated_cover_class_cost to class_cost and
8691         updated_class_cost.  Remove splay_removed_p and
8692         left_conflict_size.  Add new members colorable_p.
8693         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8694         (ALLOCNO_COLORABLE_P): New macro.
8695         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8696         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8697         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8698         (OBJECT_...): Rename parameter C to O.
8699         (OBJECT_PROFITABLE_HARD_REGS): New macro.
8700         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8701         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8702         (struct target_ira_int): New members x_ira_max_memory_move_cost,
8703         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8704         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8705         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8706         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
8707         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
8708         x_ira_reg_class_subunion.
8709         (ira_max_memory_move_cost, ira_max_register_move_cost)
8710         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8711         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8712         (ira_important_class_nums, ira_reg_class_superunion): New macros.
8713         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
8714         (ira_reg_class_union): Rename to ira_reg_class_subunion.
8715         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8716         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8717         (ira_tune_allocno_costs_and_cover_classes): Rename to
8718         ira_tune_allocno_costs.
8719         (ira_debug_hard_regs_forest): New.
8720         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8721         (ira_object_conflict_iter_next): Fix comments.
8722         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8723         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8724         cover_class to aclass.
8725         (ira_allocate_and_accumulate_costs): Ditto.
8726         (ira_allocate_and_set_or_copy_costs): Ditto.
8727
8728         * opts.c (decode_options): Remove ira_cover_class check.
8729
8730         * ira-color.c: Remove mentioning cover classes from the file.  Use
8731         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8732         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8733         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8734         (splay-tree.h): Remove include.
8735         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8736         before copy_freq_compare_func.
8737         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8738         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8739         New definitions.
8740         (hard_regs_roots, hard_regs_node_vec): Ditto.
8741         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8742         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8743         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8744         (create_new_object_hard_regs_node): Ditto.
8745         (add_new_object_hard_regs_node_to_forest): Ditto.
8746         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8747         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8748         Ditto.
8749         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8750         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8751         (remove_unused_object_hard_regs_nodes): Ditto.
8752         (enumerate_object_hard_regs_nodes): Ditto.
8753         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8754         (object_hard_regs_subnode_t): Ditto.
8755         (struct object_hard_regs_subnode): Ditto.
8756         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8757         (setup_object_hard_regs_subnode_index): Ditto.
8758         (get_object_hard_regs_subnodes_num): Ditto.
8759         (form_object_hard_regs_nodes_forest): Ditto.
8760         (finish_object_hard_regs_nodes_tree): Ditto.
8761         (finish_object_hard_regs_nodes_forest): Ditto.
8762         (allocnos_have_intersected_live_ranges_p): Rename to
8763         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8764         (pseudos_have_intersected_live_ranges_p): Rename to
8765         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8766         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8767         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8768         (update_copy_costs): Remove assert.  Skip cost update if the hard
8769         reg does not belong the class.
8770         (assign_hard_reg): Process only profitable hard regs.
8771         (uncolorable_allocnos_num): Make it scalar.
8772         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8773         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8774         and ira_reg_class_max_nregs.
8775         (bucket_allocno_compare_func): Check frequency first.
8776         (sort_bucket): Add compare function as a parameter.
8777         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8778         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8779         (push_allocno_to_stack): Rewrite for checking new allocno
8780         colorability.
8781         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8782         (push_only_colorable): Pass new parameter to sort_bucket.
8783         (push_allocno_to_spill): Remove.
8784         (allocno_spill_priority_compare): Make it inline and rewrite.
8785         (splay_tree_allocate, splay_tree_free): Remove.
8786         (allocno_spill_sort_compare): New function.
8787         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8788         build and use splay tree.  Choose first allocno in uncolorable
8789         allocno bucket to spill.  Remove setting spill cost.
8790         (all_conflicting_hard_regs): Remove.
8791         (setup_allocno_available_regs_num): Check only profitable hard
8792         regs.  Print info about hard regs nodes.
8793         (setup_allocno_left_conflicts_size): Remove.
8794         (put_allocno_into_bucket): Don't call
8795         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8796         (improve_allocation): New.
8797         (color_allocnos): Call setup_profitable_hard_regs,
8798         form_object_hard_regs_nodes_forest, improve_allocation,
8799         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8800         (print_loop_title): Use pressure classes.
8801         (color_allocnso): Ditto.
8802         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8803         and allocnos_for_spilling.
8804         (ira_sort_regnos_for_alter_reg): Don't setup members
8805         {first,next}_coalesced_allocno.
8806         (color): Remove allocating and freeing removed_splay_allocno_vec.
8807         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8808         prohibited_class_mode_regs.
8809
8810         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8811         formatting.
8812         (update_allocno_pressure_excess_length): Use pressure classes.
8813         (inc_register_pressure, dec_register_pressure): Check for pressure
8814         class.
8815         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8816         pressure class.  Use ira_reg_class_nregs instead of
8817         ira_reg_class_max_nregs.
8818         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8819         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8820         (single_reg_class): Use ira_reg_class_nregs instead of
8821         ira_reg_class_max_nregs.
8822         (process_bb_node_lives): Use pressure classes.
8823
8824         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8825         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8826         (change_loop): Use pressure classes.
8827         (modify_move_list): Call ira_set_allocno_class instead of
8828         ira_set_allocno_cover_class.
8829
8830         * ira-build.c: Remove mentioning cover classes from the file.  Use
8831         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8832         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8833         ALLOCNO_UPDATED_CLASS_COST instead of
8834         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8835         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8836         (ira_create_allocno): Remove initialization of
8837         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8838         ALLOCNO_COLORABLE_P.
8839         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8840         Update conflict regs for the objects.
8841         (create_cap_allocno): Remove assert.  Don't propagate
8842         ALLOCNO_AVAILABLE_REGS_NUM.
8843         (ira_free_allocno_costs): New function.
8844         (finish_allocno): Change a part of code into call of
8845         ira_free_allocno_costs.
8846         (low_pressure_loop_node_p): Use pressure classes.
8847         (object_range_compare_func): Don't compare classes.
8848         (setup_min_max_conflict_allocno_ids): Ditto.
8849
8850         * loop-invariant.c: Remove mentioning cover classes from the file.
8851         Use ira_pressure_classes and ira_pressure_classes_num instead of
8852         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
8853         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8854         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8855         Use reg_allocno_class instead of reg_cover_class.
8856         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8857         STACK_REG_COVER_CLASS.
8858         (get_regno_cover_class): Rename to get_regno_pressure_class.
8859         (move_loop_invariants): Initialize and finalize regstat.
8860
8861         * ira.c: Remove mentioning cover classes from the file.  Add
8862         comments about coloring without cover classes.  Use ALLOCNO_CLASS
8863         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8864         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8865         setup_class_subset_and_memory_move_costs.
8866         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8867         (setup_cover_and_important_classes): Rename to
8868         setup_allocno_and_important_classes.
8869         (setup_class_translate_array): New.
8870         (setup_class_translate): Call it for allocno and pressure classes.
8871         (cover_class_order): Rename to allocno_class_order.
8872         (comp_reg_classes_func): Use ira_allocno_class_translate instead
8873         of ira_class_translate.
8874         (reorder_important_classes): Set up ira_important_class_nums.
8875         (setup_reg_class_relations): Set up ira_reg_class_superunion.
8876         (print_class_cover): Rename to print_classes.  Add parameter.
8877         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8878         Print pressure classes too.
8879         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
8880         setup_reg_subclasses.
8881         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8882         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8883         (setup_prohibited_class_mode_regs): Use
8884         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
8885         (clarify_prohibited_class_mode_regs): New function.
8886         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8887         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8888         (ira_init_once): Initialize them.
8889         (free_register_move_costs): Process them.
8890         (ira_init): Move calls of find_reg_classes and
8891         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8892         Call clarify_prohibited_class_mode_regs.
8893         (ira_no_alloc_reg): Remove.
8894         (too_high_register_pressure_p): Use pressure classes.
8895
8896         * sched-deps.c: Remove mentioning cover classes from the file.
8897         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8898         ira_pressure_classes and ira_pressure_classes_num instead of
8899         ira_reg_class_cover_size and ira_reg_class_cover.
8900         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8901         sched_regno_pressure_class instead of sched_regno_cover_class.
8902         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
8903         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8904
8905         * ira.h: Add 2010 to Copyright.
8906         (ira_no_alloc_reg): Remove external.
8907         (struct target_ira): Rename x_ira_hard_regno_cover_class,
8908         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8909         x_ira_class_translate to x_ira_hard_regno_allocno_class,
8910         x_ira_allocno_classes_num, x_ira_allocno_classes, and
8911         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
8912         x_ira_pressure_classes, x_ira_pressure_class_translate, and
8913         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
8914         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
8915         x_ira_no_alloc_regs.
8916         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8917         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8918         ira_allocno_classes_num and ira_allocno_classes.
8919         (ira_class_translate): Rename to ira_allocno_class_translate.
8920         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8921         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8922         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8923         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8924         (ira_no_alloc_regs): New.
8925
8926         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
8927         classes from the file.  Use ALLOCNO_CLASS instead of
8928         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
8929         ALLOCNO_COVER_CLASS_COST.
8930         (regno_cover_class): Rename to regno_aclass.
8931         (record_reg_classes): Use ira_reg_class_subunion instead of
8932         ira_reg_class_union.
8933         (record_address_regs): Check overflow.
8934         (scan_one_insn): Ditto.
8935         (print_allocno_costs): Print total mem cost fore regional allocation.
8936         (print_pseudo_costs): Use REG_N_REFS.
8937         (find_costs_and_classes): Use classes intersected with them on the
8938         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
8939         ira_reg_class_union.  Use ira_allocno_class_translate and
8940         regno_aclass instead of ira_class_translate and regno_cover_class.
8941         Modify code for finding regno_aclass.  Setup preferred classes for
8942         the next pass.
8943         (setup_allocno_cover_class_and_costs): Rename to
8944         setup_allocno_class_and_costs.  Use regno_aclass instead of
8945         regno_cover_class.  Use ira_set_allocno_class instead of
8946         ira_set_allocno_cover_class.
8947         (init_costs, finish_costs): Use regno_aclass instead of
8948         regno_cover_class.
8949         (ira_costs): Use setup_allocno_class_and_costs instead of
8950         setup_allocno_cover_class_and_costs.
8951         (ira_tune_allocno_costs_and_cover_classes): Rename to
8952         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
8953         by processing objects.  Use ira_reg_class_max_nregs instead of
8954         ira_reg_class_nregs.
8955
8956         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8957
8958         * sched-int.h: Remove mentioning cover classes from the file.
8959         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8960
8961         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
8962         classes from the file.
8963         (struct reg_pref): Rename coverclass into allocnoclass.
8964         (reg_cover_class): Rename to reg_allocno_class.
8965
8966         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
8967
8968         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8969
8970         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8971
8972         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8973
8974         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8975
8976         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8977
8978         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8979
8980         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8981
8982         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8983
8984         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8985
8986         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8987         (i386_ira_cover_classes): Ditto.
8988
8989         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8990
8991         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8992
8993         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8994
8995         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8996
8997         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8998
8999         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9000
9001         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9002         (mips_ira_cover_classes): Ditto.
9003
9004         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9005
9006         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9007
9008         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9009
9010         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9011
9012         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9013
9014         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9015         (IRA_COVER_CLASSES_VSX): Ditto.
9016
9017         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9018         (rs6000_ira_cover_classes): Ditto.
9019
9020         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9021
9022         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9023
9024         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9025
9026         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9027
9028         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9029
9030         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9031
9032         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9033
9034         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9035
9036         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9037
9038         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9039
9040 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9041
9042         PR debug/48253
9043         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9044         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9045         dw_fde_unlikely_section_end_label, cold_in_std_section,
9046         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9047         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9048         fields.
9049         (output_fde): Use dw_fde_second_{begin,end} if second is
9050         true, otherwise dw_fde_{begin,end}.
9051         (output_call_frame_info): Test dw_fde_second_begin != NULL
9052         instead of dw_fde_switched_sections.
9053         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9054         fields, initialize new fields.  Initialize in_std_section
9055         unconditionally from the first partition.
9056         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9057         dw_fde_second_begin is non-NULL.
9058         (dwarf2out_switch_text_section): Stop initializing removed
9059         dw_fde_struct fields, initialize new fields, initialize
9060         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9061         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9062         (struct var_loc_list_def): Add last_before_switch field.
9063         (arange_table, arange_table_allocated, arange_table_in_use,
9064         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9065         (size_of_aranges): Count !in_std_section and !second_in_std_section
9066         hunks in fdes, instead of looking at arange_table_in_use.
9067         (output_aranges): Add aranges_length argument, don't call
9068         size_of_aranges here.  Instead of using aranges_table*
9069         emit ranges for fdes when !in_std_section resp.
9070         !second_in_std_section.
9071         (dw_loc_list): Break ranges crossing section switch.
9072         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9073         use dw_fde_second_end instead of dw_fde_end as end of last range.
9074         (gen_subprogram_die): Don't call add_arange.  Use
9075         dw_fde_{begin,end} for first partition and if switched
9076         section dw_fde_second_{begin,end} for the second.
9077         (var_location_switch_text_section_1,
9078         var_location_switch_text_section): New functions.
9079         (dwarf2out_begin_function): Initialize cold_text_section even
9080         when function_section () isn't text_section.
9081         (prune_unused_types): Don't walk arange_table.
9082         (dwarf2out_finish): Don't needlessly test
9083         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9084         If info_section_emitted, call size_of_aranges and if it indicates
9085         non-empty .debug_aranges, call output_aranges with the computed
9086         size.  Stop using removed dw_fde_struct fields, use
9087         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9088         for second.
9089
9090         PR debug/48203
9091         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9092         create ENTRY_VALUE if incoming or address of incoming's MEM
9093         is a hard REG.
9094         * dwarf2out.c (mem_loc_descriptor): Don't emit
9095         DW_OP_GNU_entry_value of DW_OP_fbreg.
9096         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9097         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9098         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9099         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9100         ENTRY_VALUE_EXPs.
9101         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9102         is a REG_P or MEM_P with REG_P address, compute hash directly
9103         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9104         (preserve_only_constants): Don't clear VALUES forwaring
9105         ENTRY_VALUE to some other VALUE.
9106
9107 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
9108
9109         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9110         instead of GEN_INT.
9111
9112 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9113
9114         * cfgexpand.c (expand_gimple_cond): Always set the source location and
9115         block before expanding the statement.
9116         (expand_gimple_stmt_1): Likewise.  Set them here...
9117         (expand_gimple_stmt): ...and not here.  Tidy.
9118         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9119         unknown.
9120
9121 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9122
9123         * Makefile.in: New rule for cprop.o.
9124         * gcse.c: Move constant/copy propagation to cprop.c.
9125         (compute_local_properties): Only handle expression tables.
9126         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9127         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9128         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9129         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9130         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9131         compute_cprop_data, find_used_regs, try_replace_reg,
9132         find_avail_set, cprop_jump, constprop_register, cprop_insn,
9133         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9134         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9135         find_bypass_set, reg_killed_on_edge, bypass_block,
9136         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9137         execute_rtl_cprop, pass_rtl_cprop): Move to...
9138         * cprop.c: ...here.  New file, constant/copy propagation for RTL
9139         moved from gcse.c to here with minor cleanups in duplicated code.
9140
9141 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9142
9143         * config/i386/i386.c (flag_opts): Fix a typo in
9144         -mavx256-split-unaligned-store.
9145
9146 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9147
9148         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9149         LIBCALL_VALUE): Remove macros.
9150         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9151         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9152         (h8300_function_value, h8300_libcall_value,
9153         h8300_function_value_regno_p): New functions.
9154
9155 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9156
9157         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9158
9159 2011-03-28  Jeff Law  <law@redhat.com>
9160
9161         * tree-ssa-threadupdate.c (redirect_edges): Call
9162         create_edge_and_update_destination_phis as needed.
9163         (create_edge_and_update_destination_phis): Accept new BB argument.
9164         All callers updated.
9165         (thread_block): Do not update the profile when threading around
9166         intermediate blocks.
9167         (thread_single_edge): Likewise.
9168         (determine_bb_domination_status): If BB is not a successor of the
9169         loop header, return NONDOMINATING.
9170         (register_jump_thread): Note when we register a jump thread around
9171         an intermediate block.
9172         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9173         (thread_across_edge): Use it.
9174
9175 2011-03-28  Tristan Gingold  <gingold@adacore.com>
9176
9177         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9178         when for_return is 2.
9179
9180 2011-03-28  Jeff Law  <law@redhat.com>
9181
9182         * var-tracking.c (canonicalize_values_mark): Delete unused
9183         lhs assignment.
9184         (canonicalize_values_star, set_variable_part): Likewise.
9185         (clobber_variable_part, delete_variable_part): Likewise.
9186
9187 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9188
9189         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9190
9191 2011-03-28  Martin Jambor  <mjambor@suse.cz>
9192
9193         * tree-inline.c (expand_call_inline): Do not check that destination
9194         node is analyzed.
9195         (optimize_inline_calls): Assert that destination node is analyzed.
9196         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9197         not call tree_lowering_passes.
9198         * cgraph.h (cgraph_analyze_function): Declare.
9199         * cgraphunit.c (cgraph_analyze_function): Make public.
9200
9201 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
9202
9203         * config/sparc/sparc-opts.h: New.
9204         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9205         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9206         (sparc_option_override): Store processor_type enumeration rather
9207         than string in cpu_default.  Remove name and enumeration from
9208         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
9209         without using sparc_select.  Use target_flags_explicit instead of
9210         fpu_option_set.
9211         * config/sparc/sparc.h (enum processor_type): Move to
9212         sparc-opts.h.
9213         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9214         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9215         HeaderInclude entry.
9216         (mcpu=, mtune=): Use Var and Enum.
9217         (sparc_processor_type): New Enum and EnumValue entries.
9218
9219 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9220             Iain Sandoe  <iains@gcc.gnu.org>
9221
9222         PR target/48245
9223         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9224
9225 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9226
9227         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9228         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9229         Insert new statements at it in lieu of STMT.
9230         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9231         * tree-vect-stmts.c (vectorizable_store): Likewise.
9232         (vectorizable_load): Likewise.
9233
9234 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
9235
9236         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9237         (divtf3): Ditto.
9238         (multf3): Ditto.
9239         (subtf3): Ditto.
9240
9241 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9242
9243         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9244         unaligned 256bit load/store.
9245         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9246         (*avx_movdqu<avxmodesuffix>): Likewise.
9247
9248 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9249
9250         PR target/48288
9251         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9252         * config/pa/pa.md (iordi3): Use new predicate in expander.
9253         (iorsi3): Likewise.
9254
9255 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
9256
9257         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9258         FUNCTION_VALUE_REGNO_P): Remove macros.
9259         * config/mips/mips-protos.h (mips_function_value): Remove.
9260         * config/mips/mips.c (mips_function_value): Rename to...
9261         (mips_function_value_1): ... this. Make static.  Handle receiving
9262         the function type in 'fn_decl_or_type' argument.
9263         (mips_function_value, mips_libcall_value,
9264         mips_function_value_regno_p): New function.
9265         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9266         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9267
9268 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9269
9270         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9271         and -mavx256-split-unaligned-store.
9272         (ix86_option_override_internal): Split 32-byte AVX unaligned
9273         load/store by default.
9274         (ix86_avx256_split_vector_move_misalign): New.
9275         (ix86_expand_vector_move_misalign): Use it.
9276
9277         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9278         -mavx256-split-unaligned-store.
9279
9280         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9281         256bit load/store.  Generate unaligned store on misaligned memory
9282         operand.
9283         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9284         256bit load/store.
9285         (*avx_movdqu<avxmodesuffix>): Likewise.
9286
9287         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9288         -mavx256-split-unaligned-store.
9289
9290 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9291
9292         PR target/38598
9293         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9294         Update commentary.
9295
9296 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9297
9298         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9299         opno arguments with an expand_operand.  Use create_input_operand.
9300         (mips_prepare_builtin_target): Delete.
9301         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9302         functions.
9303         (mips_expand_builtin_direct): Use create_output_operand and
9304         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
9305         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
9306         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9307
9308 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
9309
9310         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9311         function.
9312         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9313
9314 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9315
9316         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9317         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
9318         basic blocks and call commit_edge_insertions directly.
9319         (fixup_abnormal_edges): Move from here to...
9320         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
9321         on the edges and return whether some have actually been inserted.
9322         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9323         compensation code.
9324
9325 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
9326
9327         PR rtl-optimization/48144
9328         * sel-sched-ir.c (merge_history_vect): Factor out from ...
9329         (merge_expr_data): ... here.
9330         (av_set_intersect): Rename to av_set_code_motion_filter.
9331         Update all callers.  Call merge_history_vect when an expression
9332         is found in both sets.
9333         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9334
9335 2011-03-26  Alan Modra  <amodra@gmail.com>
9336
9337         * config/rs6000/predicates.md (word_offset_memref_op): Handle
9338         cmodel medium addresses.
9339         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9340         64-bit gpr loads and stores.
9341         (rs6000_secondary_reload_ppc64): New function.
9342         * config/rs6000/rs6000-protos.h: Declare it.
9343         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9344
9345 2011-03-26  Alan Modra  <amodra@gmail.com>
9346
9347         PR target/47487
9348         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9349         GNU Go in traceback table.
9350
9351 2011-03-25  Richard Henderson  <rth@redhat.com>
9352
9353         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9354         if there are exactly 6 operands.
9355         (set_storage_via_setmem): Similarly.
9356
9357 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9358
9359         * collect2.c (write_c_file_stat): Handle backslash
9360         as right-hand directory separator.
9361         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9362         checking just for slash.
9363         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9364         instead of checking for trailing slash.
9365         * gcc.c (record_temp_file): Use filename_cmp instead
9366         of strcmp.
9367         (do_spec_1): Likewise.
9368         (replace_outfile_spec_function): Likewise.
9369         (is_directory): Use filename_ncmp instead of strncmp.
9370         (print_multilib_info): Likewise.
9371         * gcov.c (find_source): Use filename_cmp instead
9372         instead of strcmp.
9373         (make_gcov_file_name): Fix order of slash/backslash
9374         checks.
9375         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9376         (add_standard_paths): Likewise.
9377         * mips-tfile.c (saber_stop): Handle backslash.
9378         * prefix.c (update_path): Use filename_ncmp instead of
9379         strncmp.
9380         * profile.c (output_location): Use filename_cmp instead
9381         of strcmp.
9382         * read-md.c (handle_toplevel_file): Handle backslash.
9383         * tlink.c (frob_extension):  Likewise.
9384         * tree-cfg.c (same_line_p): Use filename_cmp instead of
9385         strcmp.
9386         * tree-dump.c (dequeue_and_dump): Handle backslash.
9387         * tree.c (get_file_function_name): Likewise.
9388         * gengtype.c (read_input_list): Likewise.
9389         (get_file_realbasename): Likewise.
9390         (get_output_file_with_visibility): Use filename_cmp
9391         instead of strcmp.
9392
9393 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
9394
9395         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9396         case to VFPv1.
9397
9398 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9399
9400         * fold-const.c (expr_location_or): New function.
9401         (fold_truth_not_expr): Call it.
9402
9403 2011-03-25  Jeff Law  <law@redhat.com>
9404
9405         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9406         va_end.
9407         * c-family/c-common.c (def_fn_type): Likewise.
9408         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9409         * emit-rtl.c (gen_rtvec): Likewise.
9410         * lto/lto-lang.c (def_fn_type): Likewise.
9411
9412 2011-03-25  Richard Guenther  <rguenther@suse.de>
9413
9414         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9415         also generate copies.
9416         (fini_copy_prop): Handle constant values properly.
9417
9418 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
9419
9420         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9421         mode size instead of bitsize with DWARF2_ADDR_SIZE.
9422         (hash_loc_operands, compare_loc_operands): Handle
9423         DW_OP_GNU_entry_value.
9424
9425 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9426
9427         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9428         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9429         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9430         comment and use macro TARGET_64BIT_MS_ABI instead.
9431         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9432         and change default behavior for 32-bit MS_ABI.
9433         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9434         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9435         32-bit, too.
9436         (ix86_cfun_abi): Likewise.
9437         (ix86_maybe_switch_abi): Adjust comment.
9438         (init_cumulative_args): Check for bit-ness in MS_ABI case.
9439         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9440         instead of checking for SYSV_ABI.
9441         (ix86_nsaved_sseregs): Likewise.
9442         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9443         to 16 bytes.
9444         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9445         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9446         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9447         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9448         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9449
9450 2011-03-25  Richard Guenther  <rguenther@suse.de>
9451
9452         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9453         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9454         (verify_gimple): Remove.
9455         * tree-cfg.c (verify_gimple_call): Merge verification
9456         from verify_stmts.
9457         (verify_gimple_phi): Merge verification from verify_stmts.
9458         (verify_gimple_label): New function.
9459         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9460         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9461         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9462         (verify_stmts): Rename to verify_gimple_in_cfg.
9463         (verify_gimple_in_cfg): New function.
9464         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9465         * tree-ssa.c (verify_ssa): Likewise.
9466         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9467
9468 2011-03-25  Richard Guenther  <rguenther@suse.de>
9469
9470         * passes.c (init_optimization_passes): Add FRE pass after
9471         early SRA.
9472
9473 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
9474             Andrew Stubbs  <ams@codesourcery.com>
9475
9476         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9477         for Cortex-A8.
9478         (arm_movdi_vfp_cortexa8): New pattern.
9479         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9480         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9481         instructions when tuning for Cortex-A8.  Set attribute "arch".
9482         * config/arm/arm.md: Move include arm-tune.md up a bit.
9483         (define_attr "arch"): Add "onlya8" and "nota8" values.
9484         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9485
9486 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9487
9488         PR bootstrap/48282
9489         Revert:
9490         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9491
9492         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9493         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9494         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9495         * passes.c (init_optimization_passes): Move
9496         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9497
9498 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9499
9500         * c-typeck.c (comptypes_internal): Replace target
9501         hook call of comp_type_attributes by version in tree.c file.
9502         * gimple.c (gimple_types_compatible_p_1): Likewise.
9503         * tree-ssa.c (useless_type_conversion_p): Likewise.
9504         * tree.c (build_type_attribute_qual_variant): Likewise.
9505         (attribute_value_equal): New static helper function.
9506         (comp_type_attributes): New function.
9507         (merge_attributes): Use attribute_value_equal for comparison.
9508         (attribute_list_contained): Likewise.
9509         * tree.h (comp_type_attributes): New prototype.
9510
9511 2011-03-25  Richard Guenther  <rguenther@suse.de>
9512
9513         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9514         of complex types at -O0.
9515         (verify_gimple_assign_binary): Likewise.
9516         (verify_gimple_assign_ternary): Likewise.
9517
9518 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9519
9520         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9521         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9522
9523 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9524
9525         PR debug/48041
9526         * dwarf2out.c (output_abbrev_section): Only write table when
9527         abbrev_die_table_in_use > 1.
9528
9529 2011-02-24  Richard Henderson  <rth@redhat.com>
9530
9531         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9532         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9533         (alpha_expand_unaligned_load_words): Use extql.
9534         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9535         (emit_insxl): Handle all modes for consistency.
9536
9537 2011-02-24  Richard Henderson  <rth@redhat.com>
9538
9539         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9540         (alpha_expand_unaligned_load): Likewise.
9541         (alpha_expand_unaligned_store): Likewise.
9542         (alpha_expand_unaligned_load_words): Likewise.
9543         (alpha_expand_unaligned_store_words): Likewise.
9544         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9545         (alpha_split_lock_test_and_set_12): Likewise.
9546         (print_operand, alpha_fold_builtin_extxx): Likewise.
9547         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9548         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9549         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9550         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9551         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9552         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9553         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9554         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9555         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9556         (extwl, extll, extql): Similarly.
9557         (inswh, inslh, insqh): Similarly.
9558         (mskbl, mskwl, mskll, mskql): Similarly.
9559         (mskwh, msklh, mskqh): Similarly.
9560
9561 2011-02-24  Richard Henderson  <rth@redhat.com>
9562
9563         * config/alpha/alpha.md (attribute isa): Add er, ner.
9564         (attribute enabled): Handle them.
9565         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9566
9567 2011-02-24  Richard Henderson  <rth@redhat.com>
9568
9569         * config/alpha/alpha.md (attribute isa): Add vms.
9570         (attribute enabled): Handle it.
9571         (*movsf): Merge *movsf_{nofix,fix,nofp}.
9572         (*movdf): Merge *movdf_{nofix,fix,nofp}.
9573         (*movtf): Rename from *movtf_internal for consistency.
9574         (*movsi): Merge with *movsi_nt_vms.
9575         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9576         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9577         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9578         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9579
9580 2011-02-24  Richard Henderson  <rth@redhat.com>
9581
9582         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9583         (extendqisi2, extendhisi2): Likewise.
9584         (extendqidi2): Simplify BWX/non-BWX expansions.
9585         (extendhidi2): Similarly.
9586
9587 2011-02-24  Richard Henderson  <rth@redhat.com>
9588
9589         * config/alpha/alpha.md (attribute isa): New.
9590         (attribute enabled): New.
9591         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9592         (zero_extendqisi2, zero_extendqidi2): Similarly.
9593         (zero_extendhisi2, zero_extendhidi2): Similarly.
9594         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9595
9596 2011-02-24  Richard Henderson  <rth@redhat.com>
9597
9598         * config/alpha/predicates.md (input_operand): Revert last change;
9599         update comment to mention 32-bit VMS rather than Windows.
9600
9601 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9602
9603         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9604         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9605         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9606         * passes.c (init_optimization_passes): Move
9607         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9608
9609 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9610
9611         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9612
9613 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9614
9615         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9616         correctly.
9617
9618 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR debug/48204
9621         * simplify-rtx.c (simplify_const_unary_operation): Call
9622         real_convert when changing mode class with FLOAT_EXTEND.
9623
9624 2011-03-24  Nick Clifton  <nickc@redhat.com>
9625
9626         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9627         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9628         * config/rx/rx.c (rx_option_override): Set align_jumps,
9629         align_loops and align_labels if not set by the user.
9630         (rx_align_for_label): New function.
9631         (rx_max_skip_for_label): New function.
9632         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9633         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9634         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9635         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9636         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9637
9638 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9639
9640         PR rtl-optimization/48263
9641         * optabs.c (expand_binop_directly): Reinstate convert_modes code
9642         and original commutative_p handling.  Use maybe_gen_insn.
9643
9644 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9645
9646         * reload.c (find_reloads_subreg_address): Add address_reloaded
9647         parameter and return true there if the full address has been
9648         reloaded.
9649         (find_reloads_toplev): Pass address_reloaded flag.
9650         (find_reloads_address_1): Don't use address_reloaded parameter.
9651
9652 2011-03-24  Jeff Law  <law@redhat.com>
9653
9654         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9655         unused variable "ann".
9656         (remove_unused_locals): Likewise.
9657
9658         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9659         statement.
9660
9661         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9662         after it is freed.
9663
9664 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9665
9666         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9667         for invalid symbolic addresses.
9668         (s390_secondary_reload): Don't use s390_check_symref_alignment for
9669         larl operands.
9670
9671 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9672
9673         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9674         the argument in calls to fold_truth_not_expr.
9675
9676 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9677
9678         * tree.c (record_node_allocation_statistics): New function.
9679         (make_node_stat, copy_node_stat, build_string): Call it.
9680         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9681         (build1_stat, build_omp_clause): Likewise.
9682
9683 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9684
9685         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9686         last commit.
9687
9688 2011-03-24  Richard Guenther  <rguenther@suse.de>
9689
9690         PR tree-optimization/48271
9691         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9692         blocks that still exist.
9693
9694 2011-03-24  Richard Guenther  <rguenther@suse.de>
9695
9696         PR tree-optimization/48270
9697         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9698         not free datarefs before ddrs.
9699
9700 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9701
9702         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9703         from the address built for a reference with variable offset.
9704
9705 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9706
9707         PR target/48237
9708         * config/i386/i386.md (*movdf_internal_rex64): Do not split
9709         alternatives that can be handled with movq or movabsq insn.
9710         (*movdf_internal): Disable for !TARGET_64BIT.
9711         (*movdf_internal_nointeger): Ditto.
9712         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9713
9714 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9715
9716         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9717         (FUNCTION_ARG_ADVANCE): Likewise.
9718         * tm.texi.in: Change references to them to hook references.
9719         * tm.texi: Regenerate.
9720         * targhooks.c (default_function_arg): Eliminate check for target macro.
9721         (default_function_incoming_arg): Likewise.
9722         (default_function_arg_advance): Likewise.
9723         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9724         (function_arg_advance): Likewise.
9725         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9726
9727 2011-03-24  Richard Guenther  <rguenther@suse.de>
9728
9729         PR middle-end/48269
9730         * tree-object-size.c (addr_object_size): Do not double-account
9731         for MEM_REF offsets.
9732
9733 2011-03-24  Diego Novillo  <dnovillo@google.com>
9734
9735         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9736         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9737         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9738         Update all users.
9739         (lto_input_string): Rename from input_string.  Make extern.
9740         Update all users.
9741         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9742         output_string_with_length.
9743         Output 0 to indicate a non-NULL string.  Update all callers to
9744         not emit 0.
9745         (lto_output_string): Rename from output_string.  Make extern.
9746         Update all users.
9747         (lto_output_decl_state_streams): Make extern.
9748         (lto_output_decl_state_refs): Make extern.
9749         * lto-streamer.h (lto_input_string): Declare.
9750         (lto_input_data_block): Declare.
9751         (lto_output_string): Declare.
9752         (lto_output_string_with_length): Declare.
9753         (lto_output_decl_state_streams): Declare.
9754         (lto_output_decl_state_refs): Declare.
9755
9756 2011-03-24  Richard Guenther  <rguenther@suse.de>
9757
9758         PR tree-optimization/46562
9759         * tree.c (build_invariant_address): New function.
9760         * tree.h (build_invariant_address): Declare.
9761         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9762         a renamed function moved ...
9763         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9764         Take valueization callback parameter.
9765         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9766         * gimple-fold.h: New file.
9767         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9768         (ccp_fold, fold_const_aggregate_ref,
9769         fold_ctor_reference, fold_nonarray_ctor_reference,
9770         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9771         get_base_constructor): Move ...
9772         * gimple-fold.c: ... here.
9773         (gimple_fold_stmt_to_constant_1): New function
9774         split out from ccp_fold.  Take a valueization callback parameter.
9775         Valueize all operands.
9776         (gimple_fold_stmt_to_constant): New wrapper function.
9777         (fold_const_aggregate_ref_1): New function split out from
9778         fold_const_aggregate_ref.  Take a valueization callback parameter.
9779         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9780         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9781         invariant POINTER_PLUS_EXPRs to invariant form.
9782         (vn_valueize): New function.
9783         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9784         * tree-vrp.c (vrp_valueize): New function.
9785         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9786         to fold statements to constants.
9787         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9788         function declarations.
9789         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9790         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9791
9792 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9793
9794         * config/h8300/predicates.md (jump_address_operand): Fix register
9795         mode check.
9796
9797 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9798
9799         * doc/invoke.texi (max-stores-to-sink): Document.
9800         * params.h (MAX_STORES_TO_SINK): Define.
9801         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9802         if either vectorization or if-conversion is disabled.
9803         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9804         tree-vect-data-refs.c vect_equal_offsets.
9805         (dr_equal_offsets_p): New function.
9806         (find_data_references_in_bb): Remove static.
9807         * tree-data-ref.h (find_data_references_in_bb): Declare.
9808         (dr_equal_offsets_p): Likewise.
9809         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9810         (vect_drs_dependent_in_basic_block): Update calls to
9811         vect_equal_offsets.
9812         (vect_check_interleaving): Likewise.
9813         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9814         (cond_if_else_store_replacement): Rename to...
9815         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9816         documentation.
9817         (cond_if_else_store_replacement): New function.
9818         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9819         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9820
9821 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9822
9823         PR target/46934
9824         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9825         to subtract lower bound instead of GEN_INT().
9826
9827 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9828
9829         PR other/48179
9830         PR other/48221
9831         PR other/48234
9832         * doc/extend.texi (Alignment): Move section to match order in TOC.
9833         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9834         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9835
9836 2011-03-23  Jeff Law  <law@redhat.com>
9837
9838         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9839         before removing the edge.
9840
9841         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9842         it may have been freed by redirect_branch_edge or
9843         redirect_edge_succ_nodup.
9844
9845 2011-03-23  Richard Guenther  <rguenther@suse.de>
9846
9847         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
9848         (check_va_list_escapes): Likewise.
9849         (check_all_va_list_escapes): Likewise.
9850
9851 2011-03-23  Richard Guenther  <rguenther@suse.de>
9852
9853         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9854         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9855         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9856         (alias.o): Likewise.
9857         (ipa-type-escape.o): Remove.
9858         (ipa-struct-reorg.o): Likewise.
9859         (GTFILES): Remove ipa-struct-reorg.c.
9860         * alias.c: Do not include ipa-type-escape.h.
9861         * tree-ssa-alias.c: Likewise.
9862         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9863         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9864         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9865         and ipa-type-escape passes.
9866         * tree-pass.h (pass_ipa_type_escape): Remove.
9867         (pass_ipa_struct_reorg): Likewise.
9868         * ipa-struct-reorg.h: Remove.
9869         * ipa-struct-reorg.c: Likewise.
9870         * ipa-type-escape.h: Likewise.
9871         * ipa-type-escape.c: Likewise.
9872         * doc/invoke.texi (-fipa-struct-reorg): Remove.
9873         (--param struct-reorg-cold-struct-ratio): Likewise.
9874         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9875         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9876         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9877
9878 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9879
9880         * config/s390/2084.md: Enable all insn reservations also for z9_ec
9881         cpu attribute value.
9882         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9883         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9884         * config/s390/s390.c (processor_flags_table): New constant array.
9885         (s390_handle_arch_option): Remove.
9886         (s390_handle_option): Remove s390_handle_arch_option invocations
9887         and OPT_mwarn_framesize_ handling.
9888         (s390_option_override): Remove s390_handle_arch_option invocation.
9889         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9890         warnings.
9891         * config/s390/s390.md (cpu attribute): Add z9_ec value.
9892         * config/s390/s390.opt (s390_tune, s390_arch)
9893         (march=): Replace s390_arch_option enum and values with
9894         processor_type.  Set variable name to s390_arch.  Set
9895         initialization value.
9896         (mtune=): Replace s390_arch_option with processor_type.  Set
9897         variable name to s390_tune.  Set initialization value.
9898
9899 2011-03-23  Julian Brown  <julian@codesourcery.com>
9900
9901         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9902         accesses which are not naturally aligned.
9903
9904 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9905
9906         PR target/47553
9907         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9908
9909 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9910
9911         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9912         parameter from "int" to "enum insn_code".
9913         (expand_operand_type): New enum.
9914         (expand_operand): New structure.
9915         (create_expand_operand): New function.
9916         (create_fixed_operand, create_output_operand): Likewise
9917         (create_input_operand, create_convert_operand_to): Likewise.
9918         (create_convert_operand_from, create_address_operand): Likewise.
9919         (create_integer_operand): Likewise.
9920         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9921         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9922         (expand_insn, expand_jump_insn): Likewise.
9923         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9924         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9925         (expand_movstr, expand_builtin___clear_cache): Likewise.
9926         (expand_builtin_lock_release): Likewise.
9927         * explow.c (allocate_dynamic_stack_space): Likewise.
9928         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
9929         and use the default handling in that case.
9930         * expmed.c (check_predicate_volatile_ok): Delete.
9931         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9932         (emit_cstore): Likewise.
9933         * expr.c (emit_block_move_via_movmem): Likewise.
9934         (set_storage_via_setmem, expand_assignment): Likewise.
9935         (emit_storent_insn, try_casesi): Likewise.
9936         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
9937         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9938         (expand_vec_shift_expr, expand_binop_directly): Likewise.
9939         (expand_twoval_unop, expand_twoval_binop): Likewise.
9940         (expand_unop_direct, emit_indirect_jump): Likewise.
9941         (emit_conditional_move, vector_compare_rtx): Likewise.
9942         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9943         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9944         (expand_sync_lock_test_and_set): Likewise.
9945         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
9946         (emit_unop_insn): Likewise.
9947         (expand_copysign_absneg): Change icode to an insn_code.
9948         (create_convert_operand_from_type): New function.
9949         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9950         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9951         (expand_insn, expand_jump_insn): Likewise.
9952         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9953         than const_int_operand for operand 2.
9954
9955 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9956
9957         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9958         if possible.
9959
9960 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9961
9962         * emit-rtl.c (emit_pattern_before_noloc): New function.
9963         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9964         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9965         (emit_pattern_after_noloc): New function.
9966         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9967         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9968
9969 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9970
9971         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9972         (__ffsDI2): Likewise.
9973
9974 2011-03-22  Richard Henderson  <rth@redhat.com>
9975
9976         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9977         of !TARGET_ABI_OPEN_VMS.
9978         (alpha_trampoline_init, alpha_start_function): Likewise.
9979         (alpha_expand_epilogue, alpha_file_start): Likewise.
9980         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9981         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9982         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9983         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9984         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9985
9986 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9987
9988         * config/s390/s390-opts.h: New.
9989         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9990         s390_arch_flags, s390_warn_framesize, s390_stack_size,
9991         s390_stack_guard): Remove.
9992         (s390_handle_arch_option): Return void.  Take enum
9993         s390_arch_option value instead of string and searching array.
9994         (s390_handle_option): Don't assert that global structures are in
9995         use.  Access variables via opts pointer.  Use error_at.  Don't use
9996         sscanf for -mstack-guard= or -mstack-size=.  Update call to
9997         s390_handle_arch_option.
9998         (s390_option_override): Update call to s390_handle_arch_option.
9999         (s390_emit_prologue): Use %d format for s390_stack_size in
10000         diagnostic.  Use %wd for HOST_WIDE_INT.
10001         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10002         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10003         * config/s390/s390.opt (config/s390/s390-opts.h): New
10004         HeaderInclude entry.
10005         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10006         s390_arch_flags, s390_warn_framesize): New Variable entries.
10007         (s390_arch_option): New Enum and EnumValue entries.
10008         (march=): Use Enum instead of Var.
10009         (mstack-guard=, mstack-size=): Use UInteger and Var.
10010         (mtune=): Use Enum.
10011
10012 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10013
10014         * config/score/score.c (score_handle_option): Don't assert that
10015         global structures are in use.  Access target_flags via opts
10016         pointer.  Use value of -march= option to determine target_flags
10017         settings.
10018         * config/score/score.opt (march=): Use Enum.
10019         (score_arch): New Enum and EnumValue entries.
10020
10021 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10022
10023         * config/mep/mep.c (option_mtiny_specified): Remove.
10024         (mep_option_override): Move register handling for -mivc2 from
10025         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10026         instead of option_mtiny_specified.
10027         (mep_handle_option): Access target_flags via opts pointer.  Don't
10028         assert that global structures are in use.  Defer part of -mivc2
10029         handling and move it to mep_option_override.
10030         * config/mep/mep.opt (IVC2): New Mask entry.
10031         (mivc2): Use Var and Defer instead of Mask.
10032
10033 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10034
10035         * config/v850/v850-opts.h: New.
10036         * config/v850/v850.c (small_memory): Replace with
10037         small_memory_physical_max array.  Make that array static const.
10038         (v850_handle_memory_option): Take integer value of argument.  Take
10039         gcc_options pointer, option text and location.  Return void.
10040         Update for changes to small memory structures.
10041         (v850_handle_option): Access target_flags via opts pointer.  Don't
10042         assert that global structures are in use.  Update calls to
10043         v850_handle_memory_option.
10044         (v850_encode_data_area): Update references to small memory settings.
10045         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10046         (enum small_memory_type): Move to v850-opts.h.
10047         * config/v850/v850.opt (config/v850/v850-opts.h): New
10048         HeaderInclude entry.
10049         (small_memory_max): New Variable entry.
10050         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10051         (mtda, mzda): Likewise.
10052
10053 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10054
10055         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10056         pointer.  Don't assert that global structures are in use.
10057
10058 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10059
10060         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10061         via opts pointer.  Don't assert that global structures are in use.
10062
10063 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10064
10065         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10066         (munix=93): Use Var.
10067         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10068         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10069         * config/pa/pa-opts.h: New.
10070         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10071         (pa_handle_option): Don't assert that global structures are in
10072         use.  Access target_flags via opts pointer.  Don't handle
10073         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10074         OPT_munix_98 here.
10075         (pa_option_override): Handle deferred OPT_mfixed_range_.
10076
10077 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10078
10079         * config/mn10300/mn10300-opts.h: New.
10080         * config/mn10300/mn10300.c (mn10300_processor,
10081         mn10300_tune_string): Remove.
10082         (mn10300_handle_option): Don't assert that global structures are
10083         in use.  Access mn10300_processor via opts pointer.  Don't handle
10084         OPT_mtune_ here.
10085         * config/mn10300/mn10300.h (enum processor_type): Move to
10086         mn10300-opts.h.
10087         (mn10300_processor): Remove.
10088         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10089         HeaderInclude entry.
10090         (mn10300_processor): New Variable entry.
10091         (mtune=): Use Var.
10092
10093 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10094
10095         * config/microblaze/microblaze.c: Don't include opts.h.
10096         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10097         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10098         (mno-clearbss): Use Var and Warn.
10099
10100 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10101
10102         * config/m32r/m32r-opts.h: New.
10103         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10104         (m32r_handle_option): Don't assert that global structures are in
10105         use.  Access target_flags and m32r_cache_flush_func via opts
10106         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
10107         OPT_mno_flush_trap here.
10108         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10109         include of m32r-opts.h.
10110         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10111         HeaderInclude entry.
10112         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10113         (mmodel=): Use Enum and Var.
10114         (m32r_model): New Enum and EnumValue entries.
10115         (mno-flush-trap): Use Var.
10116         (msdata=): Use Enum and Var.
10117         (m32r_sdata): New Enum and EnumValue entries.
10118
10119 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10120
10121         * config/m32c/m32c.c: Don't include opts.h.
10122         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10123         m32c_handle_option): Remove.
10124         (m32c_option_override): Check global_options_set.x_target_memregs
10125         instead of target_memregs_set.
10126         * config/m32c/m32c.h (target_memregs): Remove.
10127         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10128         variable.
10129
10130 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10131
10132         * config/iq2000/iq2000-opts.h: New.
10133         * config/iq2000/iq2000.c: Don't include opts.h.
10134         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10135         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10136         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10137         HeaderInclude entry.
10138         (iq2000_tune): New Variable entry.
10139         (march=): Add comment.  Use Enum.
10140         (iq2000_arch): New Enum and EnumValue entries.
10141         (mcpu=): Use Enum and Var.
10142         (iq2000_tune): New Enum and EnumValue entries.
10143
10144 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10145
10146         * config/ia64/ia64-opts.h: New.
10147         * config/ia64/ia64.c (ia64_tune): Remove.
10148         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10149         here.  Use error_at.
10150         (ia64_option_override): Handle deferred OPT_mfixed_range_.
10151         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10152         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10153         HeaderInclude entry.
10154         (ia64_tune): New Variable entry.
10155         (mfixed-range=): Use Defer and Var.
10156         (mtune=): Use Enum and Var.
10157         (ia64_tune): New Enum and EnumValue entries.
10158
10159 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10160
10161         * config/frv/frv-opts.h: New.
10162         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10163         frv-opts.h.
10164         (frv_cpu_type): Remove.
10165         * config/frv/frv.c: Don't include opts.h.
10166         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10167         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10168         (frv_cpu_type): New Variable entry.
10169         (frv_cpu): New Enum and EnumValue entries.
10170
10171 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10172
10173         * config/cris/cris.c (cris_handle_option): Access target_flags via
10174         opts pointer.  Don't assert that global structures are in use.
10175         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10176         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10177
10178 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10179
10180         * config/bfin/bfin-opts.h: New.
10181         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10182         bfin_si_revision, bfin_workarounds): Remove.
10183         (bfin_cpus): Make static const.
10184         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10185         not bfin_lib_id_given.
10186         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
10187         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10188         pointer. Use error_at.  Don't assert that global structures are in use.
10189         * config/bfin/bfin.h: Include bfin-opts.h.
10190         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10191         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10192         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10193         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10194         entries.
10195
10196 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10197
10198         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10199         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10200         or -msoft-float here.
10201         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10202         -msoft-float and -mhard-float.
10203         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10204         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10205         msoft-float.
10206         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10207         -msoft-float.
10208         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10209         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10210         not mhard-float.
10211         (LIBGCC_SPEC): Don't handle -msoft-float.
10212         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10213         -mhard-float.
10214         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10215         msoft-float.
10216         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10217         -mfloat-abi=*, not -msoft-float and -mhard-float.
10218         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10219         -msoft-float.
10220         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10221         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10222         mhard-float and msoft-float.
10223         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10224         mfloat-abi=soft in comments, not mhard-float and msoft-float.
10225         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10226         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10227         mhard-float.
10228         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10229         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10230         msoft-float.
10231         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10232         not mhard-float.
10233         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10234         not msoft-float.
10235
10236 2011-03-22  Richard Henderson  <rth@redhat.com>
10237
10238         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10239         TARGET_ABI_WINDOWS_NT.
10240         (alpha_output_function_end_prologue): Likewise.
10241         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10242         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10243         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10244         (trap, *movsi_nt_vms): Likewise.
10245         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10246         (*tablejump_osf_nt_internal): Remove.
10247         * config/alpha/predicates.md (input_operand): Only test Pmode.
10248
10249 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10250
10251         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10252         via opts pointer.  Use error_at.  Don't assert that global
10253         structures are in use.
10254
10255 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10256
10257         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10258         (ix86_handle_option): Access ix86_isa_flags and
10259         ix86_isa_flags_explicit via opts pointer.  Don't assert that
10260         global structures are in use.
10261         (ix86_function_specific_save, ix86_function_specific_restore):
10262         Update ix86_isa_flags_explicit field name.
10263         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10264         (ix86_isa_flags_explicit): Rename TargetSave entry to
10265         x_ix86_isa_flags_explicit.
10266
10267 2011-03-22  Richard Henderson  <rth@redhat.com>
10268
10269         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10270         (alpha_option_override, direct_return): Likewise.
10271         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10272         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10273         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10274         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10275         (alpha_expand_epilogue, alpha_end_function): Likewise.
10276         (alpha_init_libfuncs): Likewise.
10277         (struct machine_function): Remove unicosmk members.
10278         (print_operand) ['t']: Remove.
10279         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10280         unicosmk_output_module_name, unicosmk_output_common,
10281         current_section_align, unicosmk_output_text_section_asm_op,
10282         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10283         unicosmk_section_type_flags, unicosmk_unique_section,
10284         unicosmk_asm_named_section, unicosmk_insert_attributes,
10285         unicosmk_output_align, unicosmk_defer_case_vector,
10286         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10287         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10288         unicosmk_output_ssib, unicosmk_add_call_info_word,
10289         unicosmk_extern_head, unicosmk_output_default_externs,
10290         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10291         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10292         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10293         * config/alpha/alpha-protos.h: Update.
10294         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10295         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10296         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10297         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10298         (*mulsi_se, mulvsi3): Likewise.
10299         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10300         (*divmodsi_internal, call, call_value, realign): Likewise.
10301         (moddi3, umoddi3): Likewise; remove duplicate expander.
10302         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10303         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10304         (*movdi_nofix): Remove r/U alternative.
10305         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10306         * config/alpha/constraints.md ("U"): Remove.
10307         * config/alpha/predicates.md (call_operand"): Don't test
10308         TARGET_ABI_UNICOSMK.
10309
10310 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10311
10312         * target.def (handle_option): Take gcc_options and
10313         cl_decoded_option pointers and location_t.
10314         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10315         * doc/tm.texi: Regenerate.
10316         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10317         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10318         * lto-opts.c (lto_reissue_options): Generate option structure for
10319         targetm.handle_option call.
10320         * opts.c (target_handle_option): Update call to
10321         targetm.handle_option.  Remove assertions about values now passed
10322         down to hook.
10323         * targhooks.c (default_target_handle_option): New.
10324         * targhooks.h (default_target_handle_option): Declare.
10325         * config/alpha/alpha.c: Include opts.h.
10326         (alpha_handle_option): Update to new hook interface.
10327         * config/arm/arm.c: Include opts.h.
10328         (arm_handle_option): Update to new hook interface.
10329         * config/arm/t-arm (arm.o): Update dependencies.
10330         * config/bfin/bfin.c: Include opts.h.
10331         (bfin_handle_option): Update to new hook interface.
10332         * config/cris/cris.c: Include opts.h.
10333         (cris_handle_option): Update to new hook interface.
10334         * config/frv/frv.c: Include opts.h.
10335         (frv_handle_option): Update to new hook interface.
10336         * config/i386/i386.c: Include opts.h.
10337         (ix86_handle_option): Update to new hook interface.
10338         (ix86_valid_target_attribute_inner_p): Generate option structure
10339         for call to ix86_handle_option.
10340         * config/i386/t-i386 (i386.o): Update dependencies.
10341         * config/ia64/ia64.c: Include opts.h.
10342         (ia64_handle_option): Update to new hook interface.
10343         * config/ia64/t-ia64 (ia64.o): Update dependencies.
10344         * config/iq2000/iq2000.c: Include opts.h.
10345         (iq2000_handle_option): Update to new hook interface.
10346         * config/m32c/m32c.c: Include opts.h.
10347         (m32c_handle_option): Update to new hook interface.
10348         * config/m32r/m32r.c: Include opts.h.
10349         (m32r_handle_option): Update to new hook interface.
10350         * config/m68k/m68k.c: Include opts.h.
10351         (m68k_handle_option): Update to new hook interface.
10352         * config/mep/mep.c: Include opts.h.
10353         (mep_handle_option): Update to new hook interface.
10354         * config/microblaze/microblaze.c: Include opts.h.
10355         (microblaze_handle_option): Update to new hook interface.
10356         * config/mips/mips.c: Include opts.h.
10357         (mips_handle_option): Update to new hook interface.
10358         * config/mn10300/mn10300.c: Include opts.h.
10359         (mn10300_handle_option): Update to new hook interface.
10360         * config/pa/pa.c: Include opts.h.
10361         (pa_handle_option): Update to new hook interface.
10362         * config/pdp11/pdp11.c: Include opts.h.
10363         (pdp11_handle_option): Update to new hook interface.
10364         * config/rs6000/rs6000.c: Include opts.h.
10365         (rs6000_handle_option): Update to new hook interface.
10366         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10367         * config/rx/rx.c: Include opts.h.
10368         (rx_handle_option): Update to new hook interface.
10369         * config/s390/s390.c: Include opts.h.
10370         (s390_handle_option): Update to new hook interface.
10371         * config/score/score.c: Include opts.h.
10372         (score_handle_option): Update to new hook interface.
10373         * config/sh/sh.c: Include opts.h.
10374         (sh_handle_option): Update to new hook interface.
10375         * config/sparc/sparc.c: Include opts.h.
10376         (sparc_handle_option): Update to new hook interface.
10377         * config/v850/v850.c: Include opts.h.
10378         (v850_handle_option): Update to new hook interface.
10379
10380 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10381
10382         * gcc.c (driver_unknown_option_callback): Only permit and save
10383         unknown -Wno- options.
10384         (driver_wrong_lang_callback): Save options directly instead of via
10385         driver_unknown_option_callback.
10386
10387 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10388
10389         * combine.c (simplify_set): Try harder to find the best CC mode when
10390         simplifying a nested COMPARE on the RHS.
10391
10392 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10393
10394         * config/alpha/gnu.h: Remove.
10395         * config/arc: Remove directory.
10396         * config/arm/netbsd.h: Remove.
10397         * config/arm/t-pe: Remove.
10398         * config/crx: Remove directory.
10399         * config/i386/netbsd.h: Remove.
10400         * config/m68hc11: Remove directory.
10401         * config/m68k/uclinux-oldabi.h: Remove.
10402         * config/mcore/mcore-pe.h: Remove.
10403         * config/mcore/t-mcore-pe: Remove.
10404         * config/netbsd-aout.h: Remove.
10405         * config/rs6000/gnu.h: Remove.
10406         * config/sh/sh-symbian.h: Remove.
10407         * config/sh/symbian-base.c: Remove.
10408         * config/sh/symbian-c.c: Remove.
10409         * config/sh/symbian-cxx.c: Remove.
10410         * config/sh/symbian-post.h: Remove.
10411         * config/sh/symbian-pre.h: Remove.
10412         * config/sh/t-symbian: Remove.
10413         * config/svr3.h: Remove.
10414         * config/vax/netbsd.h: Remove.
10415         * config.build: Don't handle i[34567]86-*-pe.
10416         * config.gcc: Remove handling of deprecations for most deprecated
10417         targets.
10418         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10419         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10420         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10421         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10422         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10423         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10424         Remove cases.
10425         * config.host: Don't handle i[34567]86-*-pe.
10426         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10427         (ASM_SPEC32): Don't handle -mcall-gnu.
10428         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10429         -mcall-gnu.
10430         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10431         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10432         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10433         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10434         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10435         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10436         conditional on SYMBIAN.
10437         * configure.ac: Don't handle powerpc*-*-gnu*.
10438         * configure: Regenerate.
10439         * doc/extend.texi (interrupt attribute): Don't mention CRX.
10440         * doc/install-old.texi (m6811, m6812): Don't mention.
10441         * doc/install.texi (arc-*-elf*): Don't document multilib option.
10442         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10443         (m68k-uclinuxoldabi): Don't mention.
10444         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10445         Remove.
10446         (-mcall-gnu): Remove.
10447         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10448         families): Remove constraint documentation.
10449
10450 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
10451
10452         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10453         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10454         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10455
10456 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10457
10458         PR target/48226
10459         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10460         vector when peeking at the next token for vector, don't expand the
10461         keywords.
10462
10463 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
10464
10465         * config/avr/avr-protos.h (expand_epilogue): Change prototype
10466         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10467         * config/avr/avr.c (init_cumulative_args)
10468         (avr_function_arg_advance): Use it.
10469         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10470         sibcall epilogues.
10471         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10472         (avr_function_ok_for_sibcall): ...this new function.
10473         (avr_lookup_function_attribute1): New static Function.
10474         (avr_naked_function_p, interrupt_function_p)
10475         (signal_function_p, avr_OS_task_function_p)
10476         (avr_OS_main_function_p): Use it.
10477         * config/avr/avr.md ("sibcall", "sibcall_value")
10478         ("sibcall_epilogue"): New expander.
10479         ("*call_insn", "*call_value_insn"): New insn.
10480         ("call_insn", "call_value_insn"): Remove
10481         ("call", "call_value", "epilogue"): Change expander to handle
10482         sibling calls.
10483
10484 2011-03-21  Nick Clifton  <nickc@redhat.com>
10485
10486         * doc/invoke.texi (Overall Options): Move closing brace to end of
10487         options list.
10488         (Optimization Options): Add missing @gol.
10489         (Directory Options): Likewise.
10490         (i386 and x86-64 Options): Likewise.
10491         (RS6000 and PowerPC Options): Likewise.
10492         (i386 and x86-64 Windows Options): Likewise.
10493         (V850 Options): Add text missing from descriptions.
10494
10495 2011-03-22  Richard Henderson  <rth@redhat.com>
10496
10497         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10498         (avr_incoming_return_addr_rtx): New.
10499         (emit_push_byte): New.
10500         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
10501         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
10502         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
10503         (emit_pop_byte): New.
10504         (expand_epilogue): Use it.  Pop frame pointer by bytes.
10505         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10506         (INCOMING_RETURN_ADDR_RTX): New.
10507         (INCOMING_FRAME_SP_OFFSET): New.
10508         (ARG_POINTER_CFA_OFFSET): New.
10509         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10510         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10511         (pophi): Remove.
10512
10513         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10514
10515 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10516
10517         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10518         (FUNCTION_ARG_ADVANCE): Likewise.
10519         * tm.texi.in: Change references to them to hook references.
10520         * tm.texi: Regenerate.
10521         * targhooks.c (default_function_arg): Eliminate check for target
10522         macro.
10523         (default_function_incoming_arg): Likewise.
10524         (default_function_arg_advance): Likewise.
10525         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10526         (function_arg_advance): Likewise.
10527         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10528
10529 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10530
10531         * tree.c (build_call_1): New function.
10532         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10533
10534 2011-03-22  Richard Guenther  <rguenther@suse.de>
10535
10536         PR tree-optimization/48228
10537         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10538         for single-arg PHIs.
10539
10540 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
10541
10542         PR rtl-optimization/48143
10543         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10544         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10545         sse2_cvtps2pd): Likewise.
10546
10547 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10548
10549         * recog.c (canonicalize_change_group): Use validate_unshare_change.
10550
10551 2011-03-22  Richard Guenther  <rguenther@suse.de>
10552
10553         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10554         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10555         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10556         and REALIGN_LOAD_EXPR.
10557         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10558         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10559         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10560         DOT_PROD_EXPR case ...
10561         (expand_expr_real_2): ... here.
10562         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10563         and REALIGN_LOAD_EXPR.
10564         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10565         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10566         (vect_create_epilog_for_reduction): Likewise.
10567         (vectorizable_reduction): Likewise.
10568         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10569         * tree-vect-stmts.c (vectorizable_load): Likewise.
10570
10571 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10572
10573         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10574
10575 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10576
10577         * config/s390/s390.c (s390_delegitimize_address): Fix offset
10578         handling for PLTOFF/GOTOFF.
10579
10580 2011-03-22  Nick Clifton  <nickc@redhat.com>
10581
10582         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10583         trailing backslash from the end of the macro definition.
10584
10585 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10586
10587         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10588         and PLT unspecs.
10589
10590 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
10591
10592         * expr.h (prepare_operand): Move to...
10593         * optabs.h (prepare_operand): ...here and change the insn code
10594         parameter from "int" to "enum insn_code".
10595         (insn_operand_matches): Declare.
10596         * expr.c (init_expr_target): Use insn_operand_matches.
10597         (compress_float_constant): Likewise.
10598         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10599         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10600         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10601         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10602         Likewise.
10603         (gen_cond_trap): Likewise.
10604         (prepare_operand): Likewise.  Change icode to an insn_code.
10605         (insn_operand_matches): New function.
10606         * reload.c (find_reloads_address_1): Use insn_operand_matches.
10607         * reload1.c (gen_reload): Likewise.
10608         * targhooks.c (default_secondary_reload): Likewise.
10609
10610 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10611
10612         * config/alpha/alpha.md (unspec): New define_c_enum.
10613         (unspecv): Ditto.
10614
10615 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10616
10617         PR debug/48214
10618         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10619         between a call and its CALL_ARG_LOCATION note.
10620
10621 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
10622
10623         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10624
10625 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10626
10627         PR c/42544
10628         PR c/48197
10629         * c-common.c (shorten_compare): If primopN is first sign-extended
10630         to opN and then zero-extended to result type, set primopN to opN.
10631
10632 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
10633
10634         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10635         for barrier handlers.
10636
10637 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10638
10639         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10640         UNSPEC constants to be in the unspec enumeration, and redefine
10641         all UNSPECV constants to be in the unspecv enumeration, so that
10642         dumps print which unspec/unspec_volatile this is.
10643         * config/rs6000/vector.md (UNSPEC_*): Ditto.
10644         * config/rs6000/paired.md (UNSPEC_*): Ditto.
10645         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10646         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10647         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10648
10649         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10650         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10651         UNSPECV_LWSYNC, since these are used as unspec_volatile.
10652         * config/rs6000/sync.md (isync, lwsync): Ditto.
10653
10654 2011-03-21  Richard Guenther  <rguenther@suse.de>
10655
10656         * params.def (lto-min-partition): Fix typo.
10657
10658 2011-03-21  Richard Guenther  <rguenther@suse.de>
10659
10660         PR c/47939
10661         * c-decl.c (grokdeclarator): Drop to the main variant only
10662         for array types.  Drop flag_gen_aux_info check.
10663
10664 2011-03-21  Richard Guenther  <rguenther@suse.de>
10665
10666         PR translation/47911
10667         * params.def (lto-partitions): Fix typo.
10668         (lto-min-partition): Fix wording.
10669
10670 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
10671
10672         * config/rs6000/t-freebsd: Remove duplication from file.
10673
10674 2011-03-21  Richard Guenther  <rguenther@suse.de>
10675
10676         PR middle-end/47661
10677         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10678
10679 2011-03-21  Richard Guenther  <rguenther@suse.de>
10680
10681         PR lto/48210
10682         * params.def (lto-partitions): Require at least 1 partition.
10683
10684 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10685
10686         * gthr-solaris.h: Remove.
10687         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10688         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10689         (LIB_SPEC): Likewise.
10690         * config/sol2.opt (threads): Remove.
10691         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
10692         (sparc*-*-solaris2*): Likewise.
10693         * configure.ac (enable_threads): Enable solaris support.
10694         * configure: Regenerate.
10695         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
10696         * doc/install.texi (Configuration, --enable-threads=lib): Remove
10697         solaris.
10698
10699 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10700
10701         * config.gcc: Obsolete *-*-solaris2.8*.
10702         * doc/install.texi (Specific, *-*-solaris2*): Document it.
10703
10704 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10705
10706         PR bootstrap/48135
10707         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10708         reference.  Solaris 8 perl works.
10709
10710 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10711
10712         PR bootstrap/48135
10713         * doc/install.texi (Prerequisites): Move jar etc. up.
10714         Explain support library version requirements.
10715
10716 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10717
10718         PR bootstrap/48135
10719         * doc/install.texi (Prerequisites): Move Perl to build
10720         requirements.  Always necessary on Solaris 2 with Sun ld.
10721
10722 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10723
10724         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10725         binutils 2.21.
10726         (Specific, i?86-*-solaris2.[89]): Likewise.
10727         (Specific, i?86-*-solaris2.10): Likewise.
10728         (Specific, mips-sgi-irix6): Likewise.
10729         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10730         Update for binutils 2.21.
10731
10732 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10733
10734         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10735         Allow -fuse-linker-plugin for non-default plugin linker.
10736         * configure: Regenerate.
10737
10738 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10739
10740         PR bootstrap/48167
10741         * gengtype.c (files_rules): Added rule for cp/parser.h.
10742
10743 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10744
10745         PR target/48213
10746         * config/s390/s390.c (s390_delegitimize_address): Don't call
10747         lowpart_subreg if orig_x has BLKmode.
10748
10749 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10750
10751         PR target/12171
10752         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10753         * tree.h (attribute_spec): Add new member affects_type_identity.
10754         * attribs.c (empty_attribute_table): Adjust attribute_spec
10755         initializers.
10756         * config/alpha/alpha.c: Likewise.
10757         * config/arc/arc.c: Likewise.
10758         * config/arm/arm.c: Likewise.
10759         * config/avr/avr.c: Likewise.
10760         * config/bfin/bfin.c: Likewise.
10761         * config/crx/crx.c: Likewise.
10762         * config/darwin.h: Likewise.
10763         * config/h8300/h8300.c: Likewise.
10764         * config/i386/cygming.h: Likewise.
10765         * config/i386/i386.c: Likewise.
10766         * config/ia64/ia64.c: Likewise.
10767         * config/m32c/m32c.c: Likewise.
10768         * config/m32r/m32r.c: Likewise.
10769         * config/m68hc11/m68hc11.c: Likewise.
10770         * config/m68k/m68k.c: Likewise.
10771         * config/mcore/mcore.c: Likewise.
10772         * config/mep/mep.c: Likewise.
10773         * config/microblaze/microblaze.c: Likewise.
10774         * config/mips/mips.c: Likewise.
10775         * config/rs6000/rs6000.c: Likewise.
10776         * config/rx/rx.c: Likewise.
10777         * config/sh/sh.c: Likewise.
10778         * config/sol2.h: Likewise.
10779         * config/sparc/sparc.c: Likewise.
10780         * config/spu/spu.c: Likewise.
10781         * config/stormy16/stormy16.c: Likewise.
10782         * config/v850/v850.c: Likewise.
10783
10784 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10785
10786         * simplify-rtx.c (simplify_binary_operation_1): Handle
10787         (xor (and A B) C) case when B and C are both constants.
10788
10789 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10790
10791         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10792
10793 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10794
10795         PR bootstrap/48168
10796         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10797
10798 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10799
10800         PR rtl-optimization/48156
10801         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10802         assume df and df_lr are not NULL.
10803
10804 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10805
10806         PR debug/48023
10807         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10808         between a call and its CALL_ARG_LOCATION note.
10809
10810 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10811
10812         PR debug/48178
10813         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10814         between a call and its corresponding CALL_ARG_LOCATION note.
10815
10816 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10817
10818         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10819         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10820         * haifa-sched.c (setup_ref_regs): Ditto.
10821         * caller-save.c (add_used_regs_1): Ditto.
10822         * dse.c (look_for_hardregs): Ditto.
10823         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10824         * sched-rgn.c (check_live_1): Ditto.
10825
10826 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10827
10828         * c-decl.c (diagnose_mismatched_decls): Give an error for
10829         redefining a typedef with variably modified type.
10830
10831 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10832
10833         * c-decl.c (grokfield): Don't allow typedefs for structures or
10834         unions with no tag by default.
10835         * doc/extend.texi (Unnamed Fields): Update.
10836
10837 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10838
10839         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10840         Rewrite using indirect functions.
10841         (lwp_slwpcb): Ditto.
10842         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10843         (avx_vinsertf128<mode>): Ditto.
10844
10845 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10846
10847         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10848         unspecs.
10849
10850 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10851
10852         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
10853         splitting between a call and its corresponding CALL_ARG_LOCATION note.
10854
10855 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10856
10857         PR rtl-optimization/48170
10858         * gcse.c (hoist_code): Remove bogus asserts.
10859
10860 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
10861
10862         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10863         computation for prologue/epilogue.
10864
10865 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10866
10867         * Makefile.in (check-consistency): Remove.
10868
10869 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
10870
10871         PR debug/48176
10872         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10873         arange_table_in_use is 0, but either text_section_used or
10874         cold_text_section_used is true.  Don't call it if
10875         !info_section_emitted.
10876
10877 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
10878
10879         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10880         FUNCTION_VALUE_REGNO_P): Remove.
10881         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10882         Remove.
10883         * config/avr/avr.c (avr_ret_register): Make static inline.
10884         (avr_function_value_regno_p): New function.
10885         (avr_libcall_value): Make static. Add 'func' argument.
10886         (avr_function_value): Make static. Rename 'func' argument to
10887         'fn_decl_or_type', forward it to avr_libcall_value. Call
10888         avr_ret_register function instead of RET_REGISTER macro.
10889         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10890
10891 2011-03-18  Jason Merrill  <jason@redhat.com>
10892
10893         PR c++/23372
10894         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10895
10896 2011-03-18  Richard Guenther  <rguenther@suse.de>
10897
10898         * doc/install.texi (--enable-gold): Remove.
10899         (--with-plugin-ld): Document.
10900         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10901
10902 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
10903
10904         PR middle-end/47790
10905         * expr.c (optimize_bitfield_assignment_op): Revamp to work
10906         again after expansion changes.
10907
10908 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
10909
10910         * combine.c (try_combine): Do simplification only call of
10911         subst() on i2 even when i1 is present. Update comments.
10912
10913 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10914
10915         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10916         and UNSPEC_PCREL_SYMOFF.
10917
10918 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10919
10920         * config/s390/s390.md: Use define_c_enum for the unspec constant
10921         definitions.
10922
10923 2011-03-18  Richard Henderson  <rth@redhat.com>
10924             Jakub Jelinek  <jakub@redhat.com>
10925
10926         PR bootstrap/48161
10927         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10928         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10929
10930 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10931
10932         PR middle-end/47725
10933         * combine.c (cant_combine_insn_p): Don't check zero/sign
10934         extended hard registers.
10935
10936 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10937
10938         PR middle-end/47725
10939         * combine.c (cant_combine_insn_p): Check zero/sign extended
10940         hard registers.
10941
10942 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
10943
10944         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10945         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10946         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10947         Change return type to bool.
10948         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10949
10950 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10951
10952         PR debug/48163
10953         * var-tracking.c (prepare_call_arguments): If CALL target
10954         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10955         pc instead of looking it up using cselib_lookup and use
10956         Pmode for it if x has VOIDmode.
10957         * dwarf2out.c (gen_subprogram_die): If also both first and
10958         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10959
10960         PR debug/48163
10961         * function.c (assign_parms): For data.passed_pointer parms
10962         use MEM of data.entry_parm instead of data.entry_parm itself
10963         as DECL_INCOMING_RTL.
10964         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10965         also when passed and declared mode is the same, DECL_RTL
10966         is a MEM with pseudo as address and DECL_INCOMING_RTL is
10967         a MEM too.
10968
10969 2011-03-16  Jeff Law  <law@redhat.com>
10970
10971         PR rtl-optimization/37273
10972         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10973         handle them like argument loads from stack slots.  Do not double
10974         count memory for memory constants and argument loads from stack slots.
10975
10976 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10977
10978         PR debug/48160
10979         * var-tracking.c (prepare_call_arguments): Check SUBREG.
10980
10981 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10982
10983         PR target/48171
10984         * config/i386/i386.opt: Add Save to -mavx and -mfma.
10985
10986 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10987
10988         PR bootstrap/48153
10989         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10990         if dwarf_strict.
10991         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10992         Clear call_arg_locations and call_arg_loc_last always.
10993
10994         PR middle-end/48152
10995         * var-tracking.c (prepare_call_arguments): If argument needs to be
10996         passed by reference, adjust argtype and mode.
10997
10998 2011-03-17  Richard Guenther  <rguenther@suse.de>
10999
11000         PR middle-end/48134
11001         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11002         a value make sure to fold the statement.
11003
11004 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11005
11006         PR target/43872
11007         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11008         return condition with !cfun->calls_alloca.
11009
11010 2011-03-17  Richard Guenther  <rguenther@suse.de>
11011
11012         PR bootstrap/48148
11013         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11014         origin for decls in other ltrans units.
11015         (input_varpool_node): Likewise.
11016
11017 2011-03-17  Richard Guenther  <rguenther@suse.de>
11018
11019         PR middle-end/48165
11020         * tree-object-size.c (compute_object_offset): Properly return
11021         the offset operand of MEM_REFs as sizetype.
11022
11023 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11024
11025         PR rtl-optimization/48141
11026         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11027         * dse.c: Include params.h.
11028         (active_local_stores_len): New variable.
11029         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11030         to NULL.
11031         (record_store, check_mem_read_rtx): Decrease it when removing
11032         from the chain.
11033         (scan_insn): Likewise.  Increase it when adding to chain, if it
11034         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11035         set active_local_stores to NULL before the addition.
11036         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11037
11038         PR rtl-optimization/48141
11039         * dse.c (record_store): If no positions are needed in an insn
11040         that cannot be deleted, at least unchain it from active_local_stores.
11041
11042 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11043
11044         PR debug/47510
11045         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11046         (lookup_type_die_strip_naming_typedef): ... here.
11047         (get_context_die): Use it.
11048         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11049         the anonymous struct named by the naming typedef.
11050
11051 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11052
11053         PR target/48154
11054         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11055         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11056
11057 2011-03-16  Jeff Law  <law@redhat.com>
11058
11059         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11060         check for operands of conditional.  Allow type to be a pointer.
11061
11062 2011-03-16  Richard Guenther  <rguenther@suse.de>
11063
11064         PR tree-optimization/48149
11065         * fold-const.c (fold_binary_loc): Fold
11066         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11067
11068 2011-03-16  Richard Guenther  <rguenther@suse.de>
11069
11070         PR tree-optimization/26134
11071         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11072         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11073         (non_rewritable_mem_ref_base): Handle complex type component
11074         accesses, constrain offsets for vector and complex extracts
11075         more properly.
11076
11077 2011-03-16  Richard Guenther  <rguenther@suse.de>
11078
11079         PR tree-optimization/48146
11080         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11081         operands avoiding the need for renaming.
11082
11083 2011-03-16  Richard Guenther  <rguenther@suse.de>
11084
11085         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11086         constant folding.  Move MEM_REF canonicalization first.
11087         Rely on fold_const_aggregate_ref for initializer folding.
11088         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11089
11090 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11091
11092         PR middle-end/48136
11093         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11094         arg0/arg1 or their arguments are always fold converted to matching
11095         types.
11096
11097         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11098         to nargs.
11099
11100 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11101
11102         PR lto/46944
11103         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11104         Handle in-tree gold.
11105         (ld_vers): Extract binutils version for gold.
11106         (gcc_cv_ld_hidden): Handle gold here.
11107         (gcc_cv_lto_plugin): Determine level of linker plugin support.
11108         * configure: Regenerate.
11109         * config.in: Regenerate.
11110         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11111         -fuse-linker-plugin otherwise.
11112         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
11113         (LINK_COMMAND_SPEC): Use it.
11114         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11115
11116 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11117
11118         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11119         * calls.c: Remove debug.h include.
11120         (emit_call_1): Don't call virtual_call_token debug hook.
11121         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11122         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11123         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11124         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11125         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11126         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11127         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11128         dwarf2out_virtual_call): Remove.
11129         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11130         copy_call_info and virtual_call hooks.
11131         (dwarf2out_init): Don't initialize vcall_insn_table,
11132         debug_dcall_section and debug_vcall_section.
11133         (prune_unused_types): Don't mark nodes from dcall_table.
11134         (dwarf2out_finish): Don't output dcall or vcall tables.
11135         * final.c (final_scan_insn): Don't call direct_call or
11136         virtual_call debug hooks.
11137         * debug.h (struct gcc_debug_hooks): Remove direct_call,
11138         virtual_call_token, copy_call_info and virtual_call hooks.
11139         (debug_nothing_uid): Remove prototype.
11140         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11141         copy_call_info and virtual_call hooks.
11142         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11143         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11144         * debug.c (do_nothing_debug_hooks): Likewise.
11145         (debug_nothing_uid): Remove.
11146         * doc/invoke.texi (-fenable-icf-debug): Remove.
11147         * common.opt (-fenable-icf-debug): Likewise.
11148
11149         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11150         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11151         call's MEM.  Handle functions returning aggregate through a hidden
11152         first pointer.  For virtual calls add clobbered pc to call arguments
11153         chain.
11154         * dwarf2out.c (gen_subprogram_die): Emit
11155         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11156         can't be emitted.
11157
11158         PR debug/45882
11159         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11160         * rtl.h (ENTRY_VALUE_EXP): Define.
11161         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11162         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11163         * print-rtl.c (print_rtx): Likewise.
11164         * gengtype.c (adjust_field_rtx_def): Likewise.
11165         * var-tracking.c (vt_add_function_parameter): Adjust
11166         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11167         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11168         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11169         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11170         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11171
11172         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11173         Call var_location debug hook even on CALL_INSNs.
11174         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11175         * rtl.def (ENTRY_VALUE): New.
11176         * dwarf2out.c: Include cfglayout.h.
11177         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11178         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11179         (struct call_arg_loc_node): New type.
11180         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11181         tail_call_site_count): New variables.
11182         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11183         DW_TAG_GNU_call_site_parameter.
11184         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11185         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11186         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11187         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11188         and DW_AT_GNU_all_source_call_sites.
11189         (mem_loc_descriptor): Handle ENTRY_VALUE.
11190         (add_src_coords_attributes): Don't add enything if
11191         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11192         (dwarf2out_abstract_function): Save and clear call_arg_location,
11193         call_site_count and tail_call_site_count around dwarf2out_decl call.
11194         (gen_call_site_die): New function.
11195         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11196         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11197         (dwarf2out_function_decl): Clear call_arg_locations,
11198         call_arg_loc_last, set call_site_count and tail_call_site_count
11199         to -1 and free block_map.
11200         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11201         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
11202         followed by any real instructions.
11203         (dwarf2out_begin_function): Set call_site_count and
11204         tail_call_site_count to 0.
11205         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11206         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11207         attempt to force a DIE for it and worst case remove the attribute.
11208         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11209         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11210         the decl itself.
11211         * var-tracking.c: Include tm_p.h.
11212         (vt_stack_adjustments): For calls call note_register_arguments.
11213         (argument_reg_set): New variable.
11214         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11215         ensure the VALUE is resolved.
11216         (call_arguments): New variable.
11217         (prepare_call_arguments): New function.
11218         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11219         (struct expand_loc_callback_data): Add ignore_cur_loc field.
11220         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11221         always use the best expression.
11222         (vt_expand_loc): Add ignore_cur_loc argument.
11223         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11224         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11225         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11226         note for all calls.
11227         (vt_add_function_parameter): Use cselib_lookup_from_insn.
11228         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11229         argument.  Don't call cselib_preserve_only_values and
11230         cselib_reset_table.
11231         (note_register_arguments): New function.
11232         (vt_initialize): Compute argument_reg_set.  Call
11233         vt_add_function_parameters before processing basic blocks instead of
11234         afterwards.  For calls call prepare_call_arguments before calling
11235         cselib_process_insn.
11236         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11237         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11238         (var-tracking.o): Depend on $(TM_P_H).
11239         * cfglayout.h (insn_scope): New prototype.
11240         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11241         * cfglayout.c (insn_scope): No longer static.
11242         * insn-notes.def (CALL_ARG_LOCATION): New.
11243         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11244         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11245         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11246         nothing for DECL_EXTERNAL BLOCK_VARS.
11247
11248 2011-03-16  Alan Modra  <amodra@gmail.com>
11249
11250         PR target/45844
11251         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11252         create invalid offset address for vsx splat insn.
11253         * config/rs6000/predicates.md (splat_input_operand): New.
11254         * config/rs6000/vsx.md (vsx_splat_*): Use it.
11255
11256 2011-03-15  Xinliang David Li  <davidxl@google.com>
11257
11258         PR c/47837
11259         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11260         (normalize_preds): New function.
11261         (is_use_properly_guarded): Normalize def predicates.
11262
11263 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11264
11265         PR target/46788
11266         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11267         in the output template.
11268
11269 2011-03-15  Richard Guenther  <rguenther@suse.de>
11270
11271         PR middle-end/47650
11272         * tree-pretty-print.c (dump_function_declaration): Properly
11273         dump unprototyped and varargs function types.
11274
11275 2011-03-15  Richard Guenther  <rguenther@suse.de>
11276
11277         PR tree-optimization/13954
11278         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11279         and friends.
11280
11281 2011-03-15  Richard Guenther  <rguenther@suse.de>
11282
11283         PR tree-optimization/48037
11284         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11285         selects into BIT_FIELD_REFs.
11286         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11287         vector select.
11288
11289 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
11290
11291         PR tree-optimization/48129
11292         * builtins.c (fold_builtin_snprintf): Convert to type of
11293         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11294         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11295
11296 2011-03-15  Richard Guenther  <rguenther@suse.de>
11297
11298         PR tree-optimization/41490
11299         * tree-ssa-dce.c (propagate_necessity): Handle returns without
11300         value but with VUSE.
11301         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11302         return statements.
11303         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11304         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11305         * tree-tailcall.c (find_tail_calls): Ignore returns.
11306
11307 2011-03-15  Richard Guenther  <rguenther@suse.de>
11308
11309         PR middle-end/48031
11310         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11311         or variable-indexed array accesses when in gimple form.
11312
11313 2011-03-15  Richard Guenther  <rguenther@suse.de>
11314
11315         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11316
11317 2011-03-15  Alan Modra  <amodra@gmail.com>
11318
11319         PR target/48032
11320         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11321         presume symbol_refs without a symbol_ref_decl are suitably
11322         aligned, nor other trees we may see here.  Handle anchor symbols.
11323         (legitimate_constant_pool_address_p): Comment.  Add mode param.
11324         Check cmodel=medium addresses.  Adjust all calls.
11325         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11326         creating cmodel=medium optimized access to locals.
11327         * config/rs6000/constraints.md (R): Pass QImode to
11328         legitimate_constant_pool_address_p.
11329         * config/rs6000/predicates.md (input_operand): Pass mode to
11330         legitimate_constant_pool_address_p.
11331         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11332         Update prototype.
11333
11334 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11335
11336         PR target/48053
11337         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11338         64-bit constants being loaded into registers other than GPRs such
11339         as loading 0 into a VSX register.
11340
11341 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11342
11343         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11344
11345 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11346
11347         PR middle-end/47917
11348         * builtins.c (fold_builtin_snprintf): New function.
11349         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11350         (fold_builtin_4): Likewise.
11351
11352         PR middle-end/38878
11353         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11354         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
11355         and C - X == X also strip nops from +/-/p+ operand.
11356         When optimizing -X == C, fold C to arg0's type.
11357
11358         PR debug/47946
11359         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11360         emit it as add_AT_int instead of add_AT_unsigned.
11361
11362 2011-03-14  Tom Tromey  <tromey@redhat.com>
11363
11364         * unwind-dw2.c: Include sys/sdt.h if it exists.
11365         (_Unwind_DebugHook): Use STAP_PROBE2.
11366         * config.in, configure: Rebuild.
11367         * configure.ac: Check for sys/sdt.h.
11368
11369 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
11370
11371         * config/i386/i386.md (ROUND_FLOOR): New constant.
11372         (ROUND_CEIL): Ditto.
11373         (ROUND_TRUNC): Ditto.
11374         (ROUND_MXCSR): Ditto.
11375         (ROUND_NO_EXC): Ditto.
11376         (rint<mode>2): Use new defines instead of numerical constants.
11377         (floor<mode>2): Ditto.
11378         (ceil<mode>2): Ditto.
11379         (btrunc<mode>2): Ditto.
11380         * config/i386/i386-builtin-types.def: Define ROUND function type
11381         aliases.
11382         * config/i386/i386.c (enum ix86_builtins): Add
11383         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11384         (struct builtin_description): Add
11385         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11386         (ix86_expand_sse_round): New static function.
11387         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11388         function types.
11389         (ix86_builtin_vectorized_function): Handle
11390         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11391
11392 2011-03-14  Tom Tromey  <tromey@redhat.com>
11393
11394         * c-parser.c (c_parser_asm_string_literal): Clear
11395         warn_overlength_strings.
11396
11397 2011-03-14  Tom Tromey  <tromey@redhat.com>
11398
11399         * c-parser.c (disable_extension_diagnostics): Save
11400         warn_overlength_strings.
11401         (restore_extension_diagnostics): Restore warn_overlength_strings.
11402
11403 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11404
11405         * BASE-VER: Change to 4.7.0.
11406
11407 2011-03-14  Richard Guenther  <rguenther@suse.de>
11408
11409         PR middle-end/48098
11410         * tree.c (build_vector_from_val): Adjust assert to requirements
11411         and reality.
11412
11413 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11414
11415         PR bootstrap/48102
11416         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11417
11418 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
11419
11420         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11421         terms of target_flags_explicit. Adjust copyright year.
11422
11423         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11424         * config/rs6000/t-freebsd: New file. Add override for
11425         LIB2FUNCS_EXTRA.
11426
11427 2011-03-13  Chris Demetriou  <cgd@google.com>
11428
11429         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11430         (-fno-diagnostics-show-option): this, to reflect current default.
11431         (-Werror=): Update text about -fno-diagnostics-show-option.
11432
11433 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
11434
11435         PR target/48053
11436         * config/rs6000/predicates.md (easy_vector_constant_add_self,
11437         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11438         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11439         mode is not V2DImode or V2DFmode.
11440         (vspltis_constant): Do not handle V2DImode and V2DFmode.
11441         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11442         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11443         registers to 0.
11444         (movdi_internal64): Likewise.
11445
11446 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
11447
11448         PR tree-optimization/47127
11449         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11450         parameter.
11451         (set_cloog_options): Same.
11452         (scop_to_clast): Same.
11453         (print_clast_stmt): Do not call cloog_state_malloc and
11454         cloog_state_free.
11455         (print_generated_program): Same.
11456         (gloog): Same.
11457         * graphite-clast-to-gimple.h (cloog_state): Declared.
11458         (scop_to_clast): Adjust declaration.
11459         * graphite.c (cloog_state): Defined here.
11460         (graphite_initialize): Call cloog_state_malloc.
11461         (graphite_finalize): Call cloog_state_free.
11462
11463 2011-03-11  Jason Merrill  <jason@redhat.com>
11464
11465         * attribs.c (lookup_attribute_spec): Take const_tree.
11466         * tree.h: Adjust.
11467
11468 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
11469
11470         * config/sparc/sparc.c (sparc_option_override): Use
11471         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11472
11473 2011-03-11  Richard Guenther  <rguenther@suse.de>
11474
11475         PR tree-optimization/48067
11476         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11477         multiplication result will be only used once on the target
11478         stmt.
11479
11480 2011-03-11  Richard Guenther  <rguenther@suse.de>
11481
11482         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11483
11484 2011-03-11  Richard Guenther  <rguenther@suse.de>
11485
11486         PR lto/48073
11487         * tree.c (find_decls_types_r): Do not walk types only reachable
11488         from IDENTIFIER_NODEs.
11489
11490 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11491
11492         PR middle-end/48044
11493         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11494         all vnode->force_output nodes as needed.
11495
11496 2011-03-11  Jason Merrill  <jason@redhat.com>
11497
11498         PR c++/48069
11499         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11500         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11501
11502 2011-03-11  Martin Jambor  <mjambor@suse.cz>
11503
11504         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11505         cgraph_node.
11506
11507 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11508
11509         PR tree-optimization/48063
11510         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11511         inline functions called once if !tree_can_inline_p (node->callers).
11512
11513 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11514
11515         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11516         extra_objs.
11517         * config/score/score3.c: Delete.
11518         * config/score/score3.h: Delete.
11519         * config/score/mul-div.S: Delete.
11520         * config/score/sfp-machine.h: Add new file.
11521         * config/score/constraints.md: Add new file.
11522         * config/score/t-score-softfp: Add new file.
11523         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11524         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11525         (score7_extra_constraint): Delete.
11526         (score7_option_override): Remove unused code.
11527         * config/score/score.c: Remove score3 and score5 define and code.
11528         * config/score/score.h: Remove score3 and score5 define and code.
11529         * config/score/score.md: Remove score3 template and unusual insn.
11530         * config/score/score.opt: Remove score3 and score5 options.
11531
11532 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11533
11534         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11535         when _HPUX_SOURCE is defined.
11536         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11537
11538 2011-03-10  Jason Merrill  <jason@redhat.com>
11539
11540         PR c++/48029
11541         * stor-layout.c (layout_type): Don't set structural equality
11542         on arrays of incomplete type.
11543         * tree.c (type_hash_eq): Handle comparing them properly.
11544
11545 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
11546
11547         PR debug/48043
11548         * config/s390/s390.c (s390_delegitimize_address): Make sure the
11549         result mode matches original rtl mode.
11550
11551 2011-03-10  Nick Clifton  <nickc@redhat.com>
11552
11553         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11554         (andsi3, andsi3_flags): Fix timings for three operand alternative.
11555
11556 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
11557
11558         PR rtl-optimization/47866
11559         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11560         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11561         if target wasn't scalar.
11562         * function.c (assign_stack_temp_for_type): Assert that neither
11563         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11564         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11565         macro.
11566         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11567
11568 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11569
11570         * config/s390/s390-protos.h (s390_label_align): New prototype.
11571         * config/s390/s390.c (s390_label_align): New function.
11572         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11573
11574 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11575
11576         PR target/47755
11577         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11578         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
11579         (output_vec_const_move): Ditto.
11580
11581 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
11582
11583         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11584         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11585         * config/mips/mips.c (mips_preferred_reload_class): Make static.
11586         Change 'rclass' argument and result type to reg_class_t.
11587         (TARGET_PREFERRED_RELOAD_CLASS): Define.
11588
11589 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
11590
11591         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11592         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11593         (TARGET_MEMORY_MOVE_COST): Define.
11594         (avr_register_move_cost, avr_memory_move_cost): New Functions.
11595
11596 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
11597
11598         PR debug/47881
11599         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11600         removed anything.
11601
11602         PR tree-optimization/48022
11603         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11604         for EQ/NE_EXPR.
11605
11606 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
11607
11608         PR debug/47991
11609         * var-tracking.c (find_use_val): Return NULL for
11610         cui->sets && cui->store_p BLKmode MEMs.
11611
11612 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
11613
11614         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11615         Remove.
11616         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11617         xstormy16_print_operand_address): Remove.
11618         * config/stormy16/stormy16.c (xstormy16_print_operand,
11619         xstormy16_print_operand_address): Make static.
11620         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11621
11622 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
11623
11624         PR target/47862
11625         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11626         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11627         before definition.
11628
11629 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
11630
11631         PR bootstrap/48000
11632         * cfgloopmanip.c (fix_bb_placements): Return immediately
11633         if FROM is BASE_LOOP's header.
11634
11635 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
11636
11637         * gimplify.c (gimplify_function_tree): Fix building calls
11638         to __builtin_return_address.
11639
11640 2011-03-07  Alan Modra  <amodra@gmail.com>
11641
11642         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11643         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11644         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11645         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11646         return_mode args.
11647         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11648         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11649         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11650         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11651         * config/rs6000/rs6000.c
11652         (rs6000_elf_end_indicate_exec_stack): Rename to..
11653         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
11654         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
11655         (rs6000_file_start): ..here.
11656         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11657         file scope variables.
11658         (call_ABI_of_interest): New function.
11659         (init_cumulative_args): Set above vars when function return value
11660         is a float, vector, or small struct.
11661         (rs6000_function_arg_advance_1): Likewise for function args.
11662         (rs6000_va_start): Set rs6000_passes_float if variable arg function
11663         references float args.
11664
11665 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
11666
11667         * doc/cfg.texi: Remove "See" before @ref.
11668         * doc/invoke.texi: Likewise.
11669
11670 2011-03-05  Jason Merrill  <jason@redhat.com>
11671
11672         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11673
11674 2011-03-05  Anthony Green  <green@moxielogic.com>
11675
11676         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11677
11678 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
11679
11680         PR rtl-optimization/47899
11681         * cfgloopmanip.c (fix_bb_placements): Fix first argument
11682         to flow_loop_nested_p when moving the loop upward.
11683
11684 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
11685
11686         PR target/47719
11687         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
11688
11689 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
11690
11691         PR tree-optimization/47967
11692         * ipa-cp.c (build_const_val): Return NULL instead of creating
11693         VIEW_CONVERT_EXPR for mismatching sizes.
11694         (ipcp_create_replace_map): Return NULL if build_const_val failed.
11695         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11696         give up on versioning.
11697
11698 2011-03-05  Alan Modra  <amodra@gmail.com>
11699
11700         PR target/47986
11701         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11702         full cmodel medium/large lo_sum + high addresses.
11703
11704 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11705
11706         * config/s390/s390.c (s390_decompose_address): Reject non-literal
11707         pool references in UNSPEC_LTREL_OFFSET.
11708
11709 2011-03-04  Jan Hubicka  <jh@suse.cz>
11710
11711         PR lto/47497
11712         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11713         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
11714         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11715         Add node pointers.
11716         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11717         cgraph_add_thunk): Add node pointers.
11718         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11719         associated to right node.
11720         (input_node): Update use of cgraph_same_body_alias
11721         and cgraph_add_thunk.
11722
11723 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11724
11725         * config/i386/i386.opt (mprefer-avx128): New flag.
11726         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11727         modes when the flag -mprefer-avx128 is on.
11728
11729 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11730
11731         * dwarf2out.c (compare_loc_operands): Fix address handling.
11732
11733 2011-03-04  Alan Modra  <amodra@gmail.com>
11734
11735         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11736
11737 2011-03-04  Richard Guenther  <rguenther@suse.de>
11738
11739         PR middle-end/47968
11740         * expmed.c (extract_bit_field_1): Prefer vector modes that
11741         vec_extract patterns can handle.
11742
11743 2011-03-04  Richard Guenther  <rguenther@suse.de>
11744
11745         PR middle-end/47975
11746         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11747
11748 2011-03-04  Richard Henderson  <rth@redhat.com>
11749
11750         * explow.c (emit_stack_save): Remove 'after' parameter.
11751         (emit_stack_restore): Likewise.
11752         * expr.h: Update to match.
11753         * builtins.c, calls.c, stmt.c: Likewise.
11754         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11755         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11756         * function.c (expand_function_end): Insert the emit_stack_save
11757         sequence before parm_birth_insn instead of after.
11758
11759 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11760
11761         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11762         (ssse3_pmaddubsw128): Ditto.
11763         (ssse3_pmaddubsw): Ditto.
11764
11765 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11766
11767         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11768
11769 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11770
11771         PR c/47963
11772         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11773         on TYPE_SIZE_UNIT if it is a DECL.
11774
11775         PR debug/47283
11776         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11777         first operand is not is_gimple_mem_ref_addr, try to fold it.
11778         If the operand still isn't is_gimple_mem_ref_addr, clear
11779         MEM_EXPR on op0.
11780
11781 2011-03-03  Richard Guenther  <rguenther@suse.de>
11782
11783         PR middle-end/47283
11784         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11785         match comment.
11786         (refs_may_alias_p_1): For release branches return true if
11787         we are confused by our input.
11788
11789 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11790
11791         * config/s390/s390.c (s390_function_value): Rename to ...
11792         (s390_function_and_libcall_value): ... this.
11793         (s390_function_value): New function.
11794         (s390_libcall_value): New function.
11795         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11796         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11797         target macro definitions.
11798         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11799
11800 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11801
11802         * config/i386/freebsd64.h (CC1_SPEC): Define.
11803         * config/i386/linux64.h (CC1_SPEC): Define.
11804         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11805
11806 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11807
11808         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11809         Remove.
11810         * config/stormy16/stormy16.c: Include reload.h.
11811         (xstormy16_memory_move_cost): New function.
11812         (TARGET_MEMORY_MOVE_COST): Define.
11813
11814 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11815
11816         PR rtl-optimization/47925
11817         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11818         with side effects.  Remove the more-specific check for volatile asms.
11819
11820 2011-03-02  Alan Modra  <amodra@gmail.com>
11821
11822         PR target/47935
11823         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11824         toc relative addresses for valid offsets.
11825
11826 2011-03-01  Richard Guenther  <rguenther@suse.de>
11827
11828         PR tree-optimization/47890
11829         * tree-vect-loop.c (get_initial_def_for_induction): Set
11830         related stmt properly.
11831
11832 2011-03-01  Richard Guenther  <rguenther@suse.de>
11833
11834         PR lto/47924
11835         * lto-streamer.c (lto_record_common_node): Also register
11836         the canonical type.
11837
11838 2011-03-01  Richard Guenther  <rguenther@suse.de>
11839
11840         PR lto/46911
11841         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11842         Do not stream DECL_ABSTRACT_ORIGIN.
11843         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11844         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11845         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11846         Do not stream DECL_ABSTRACT_ORIGIN.
11847         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11848         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11849
11850 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
11851
11852         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11853         FUNCTION_VALUE_REGNO_P): Remove.
11854         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
11855         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11856         Add 'outgoing' argument.
11857         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11858         function.
11859         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11860         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11861
11862 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
11863
11864         PR debug/28047
11865         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11866         (lookup_filename): Likewise.
11867         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
11868
11869 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
11870             Jakub Jelinek  <jakub@redhat.com>
11871
11872         PR middle-end/47893
11873         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11874         (assign_stack_local_1): Change last argument type to int.
11875         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11876         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
11877         don't record padding space into frame_space_list nor use those areas.
11878         (assign_stack_local): Adjust caller.
11879         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11880         of assign_stack_local, pass 0 as last argument.
11881         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11882         callers.
11883
11884 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
11885
11886         PR debug/47283
11887         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11888         Use target address_mode and pointer_mode hooks instead of hardcoded
11889         Pmode and ptr_mode.  Handle some simple cases of extending if
11890         POINTERS_EXTEND_UNSIGNED < 0.
11891         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11892         Call convert_debug_memory_address.
11893         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11894         convert_debug_memory_address.
11895
11896         PR middle-end/46790
11897         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11898         * configure: Regenerated.
11899         * config.in: Regenerated.
11900         * varasm.c (default_function_section): Return NULL
11901         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
11902
11903 2011-02-28  Martin Jambor  <mjambor@suse.cz>
11904
11905         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11906         the description to match the printed values.
11907
11908 2011-02-28  Richard Guenther  <rguenther@suse.de>
11909
11910         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11911         of the copied scope tree.
11912
11913 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11914
11915         * doc/extend.texi (Function Attributes): Avoid deeply (and
11916         wrongly) nested tables.
11917
11918 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
11919
11920         PR middle-end/47903
11921         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11922         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11923         r isn't op0 nor op1.
11924
11925 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11926
11927         * config/avr/avr.md: Remove magic comment for emacs.
11928
11929 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11930
11931         PR target/45261
11932         * config/avr/avr.c (avr_option_override): Use error on bad options.
11933         (avr_help): New function.
11934         (TARGET_HELP): Define.
11935
11936 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
11937
11938         PR target/42240
11939         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11940         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11941
11942 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
11943
11944         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11945         (ARM Options): Ditto.
11946         (i386 and x86-64 Options): Ditto.
11947         (RX Options): Ditto.
11948         (SPARC Options): Ditto.
11949
11950 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
11951
11952         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11953         FreeBSD 6 and later.  Generally use cpu generic.
11954
11955 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11956
11957         * doc/cpp.texi: Update copyright years.
11958
11959 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11960
11961         PR target/46898
11962         * config/lm32/lm32.md (ashrsi3): Added needed variable.
11963
11964 2011-02-25  Jon Beniston  <jon@beniston.com>
11965
11966         PR target/46898
11967         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11968         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11969         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11970         (lm32_block_move_inline): Add type cast to remove warning.
11971         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
11972         (gen_int_relational): Move declarations to start of function.
11973
11974 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11975
11976         PR tree-optimization/45470
11977         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11978         can throw internally only.
11979         * tree-vect-stmts.c (vectorizable_call): Likewise.
11980
11981 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
11982
11983         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11984         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11985         * config/stormy16/stormy16-protos.h
11986         (xstormy16_preferred_reload_class): Remove.
11987         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11988         static. Change 'rclass' argument and return type to reg_class_t.
11989         (TARGET_PREFERRED_RELOAD_CLASS,
11990         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11991
11992 2011-02-24  Richard Guenther  <rguenther@suse.de>
11993
11994         * lto-streamer-in.c (input_bb): Do not find referenced vars
11995         in debug statements.
11996
11997 2011-02-23  Jason Merrill  <jason@redhat.com>
11998
11999         * common.opt (fabi-version): Document v5 and v6.
12000
12001 2011-02-23  Richard Guenther  <rguenther@suse.de>
12002
12003         PR tree-optimization/47849
12004         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12005
12006 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12007
12008         * opts-common.c (decode_cmdline_option): Print empty string
12009         argument as "" in decoded->orig_option_with_args_text.
12010         * gcc.c (execute): Print empty string argument as ""
12011         in the verbose output.
12012         (do_spec_1): Keep empty string argument.
12013
12014 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12015
12016         * config.gcc: Declare score-* and crx-* obsolete.
12017
12018 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12019
12020         PR rtl-optimization/47763
12021         * web.c (web_main): Ignore naked clobber when replacing register.
12022
12023 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12024
12025         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12026         Remove.
12027
12028 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12029
12030         PR doc/47848
12031         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12032
12033 2011-02-22  Mike Stump  <mikestump@comcast.net>
12034
12035         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12036         assembler.
12037         * configure: Regenerate.
12038
12039 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12040
12041         PR rtl-optimization/46002
12042         * ira-color.c (update_copy_costs): Change class intersection
12043         test to reg_class_contents[] test of 'hard_regno'.
12044
12045 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12046
12047         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12048         than Driver option.
12049         * config/hpux11.opt (mt): Likewise.
12050         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12051         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12052         * config/vax/elf.opt (mno-asm-pic): Likewise.
12053         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12054
12055 2011-02-21  Mike Stump  <mikestump@comcast.net>
12056
12057         PR target/47822
12058         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12059         tree so we can get save the type.
12060         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12061         for CFString instead of trying to use past the end of the builtins.
12062         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12063         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12064         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12065         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12066         Rename to darwin_builtin_cfstring.
12067         (darwin_init_cfstring_builtins): Return the built type.
12068
12069 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12070
12071         PR target/47840
12072         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12073         (_mm256_insert_epi64): Use _mm_insert_epi64.
12074
12075 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12076
12077         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12078         * config/stormy16/stormy16-protos.h
12079         (xstormy16_mode_dependent_address_p): Remove.
12080         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12081         Make static. Change return type to bool. Change argument type to
12082         const_rtx. Remove dead code.
12083         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12084
12085 2011-02-21  Richard Guenther  <rguenther@suse.de>
12086
12087         PR lto/47820
12088         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12089         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12090         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12091         TUs context.
12092         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12093         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12094
12095 2011-02-20  Richard Guenther  <rguenther@suse.de>
12096
12097         PR lto/47822
12098         * tree.c (free_lang_data_in_decl): Clean builtins from
12099         the TU decl BLOCK_VARS.
12100
12101 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
12102
12103         PR debug/47620
12104         PR debug/47630
12105         * haifa-sched.c (fix_tick_ready): Skip tick computation
12106         for debug insns.
12107
12108 2011-02-19  Richard Guenther  <rguenther@suse.de>
12109
12110         PR lto/47647
12111         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12112         Remove lazy BLOCK_VARS streaming.
12113         (lto_input_ts_block_tree_pointers): Likewise.
12114         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12115
12116 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12117
12118         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12119
12120 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12121
12122         * config/i386/biarch32.h, config/i386/mach.h,
12123         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12124
12125 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
12126
12127         PR target/47800
12128         * config/i386/i386.md (peephole2 for shift and plus): Use
12129         operands[1] original mode in the first insn.
12130
12131 2011-02-18  Mike Stump  <mikestump@comcast.net>
12132
12133         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12134
12135 2011-02-18  Jan Hubicka  <jh@suse.cz>
12136
12137         PR middle-end/47788
12138         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12139         to zero when the function is not inlinable at all.
12140
12141 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12142
12143         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12144         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12145         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12146         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12147         * config/pa/t-pa64: Likewise.
12148         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12149
12150 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12151
12152         PR driver/47787
12153         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12154
12155 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12156
12157         PR target/47792
12158         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12159
12160 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
12161
12162         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12163         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12164         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12165         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12166         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12167         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12168         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12169         m32r_load_postinc_p, m32r_store_preinc_predec_p,
12170         m32r_legitimate_address_p): New functions.
12171         * config/m32r/constraints.md (constraint "S"): Don't use
12172         STORE_PREINC_PREDEC_P.
12173         (constraint "U"): Don't use LOAD_POSTINC_P.
12174
12175 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
12176
12177         PR rtl-optimization/46178
12178         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12179         compute ira_hard_regno_cover_class[].
12180
12181 2011-02-18  Richard Guenther  <rguenther@suse.de>
12182
12183         PR lto/47798
12184         * lto-streamer.h (lto_global_var_decls): Declare.
12185         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12186         statics for global var processing.
12187
12188 2011-02-18  Richard Guenther  <rguenther@suse.de>
12189
12190         PR tree-optimization/47737
12191         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12192         edge dominance check.
12193
12194 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12195
12196         PR debug/47780
12197         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12198         avoid invalid rtx sharing.
12199
12200 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
12201
12202         * doc/cpp.texi (Obsolete Features): Add background on the
12203         origin of assertions.
12204
12205 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
12206
12207         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12208         objc_abi == 2.
12209         * config/darwin.c (output_objc_section_asm_op): Added support for
12210         ABI v1 and v2.
12211         (is_objc_metadata): New.
12212         (darwin_objc2_section): New.
12213         (darwin_objc1_section): New.
12214         (machopic_select_section): Added support for ABI v1 and v2.
12215         (darwin_emit_objc_zeroed): New.
12216         (darwin_output_aligned_bss): Detect objc metadata and treat it
12217         appropriately.
12218         (darwin_asm_output_aligned_decl_common): Same.
12219         (darwin_asm_output_aligned_decl_local): Same.
12220         * config/darwin-sections.def: Updated for ABI v1 and v2.
12221         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12222         compiling Objective-C code for the NeXT runtime, default to using
12223         ABI version 0 for 32-bit, and version 2 for 64-bit.
12224
12225 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12226
12227         * common.opt (optimize_fast): New Variable.
12228         * opts.c (default_options_optimization): Use opts->x_optimize_fast
12229         instead of local variable ofast.
12230
12231 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
12232
12233         * doc/invoke.texi (fobjc-abi-version): Documented.
12234         (fobjc-nilcheck): Documented.
12235         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12236         version.
12237
12238 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12239
12240         PR driver/47390
12241         * common.opt (export-dynamic): New Driver option.
12242         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12243
12244 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12245
12246         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12247
12248 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
12249             Jan Hubicka  <jh@suse.cz>
12250
12251         PR debug/47106
12252         PR debug/47402
12253         * cfgexpand.c (account_used_vars_for_block): Remove.
12254         (estimated_stack_frame_size): Use referenced vars.
12255         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12256         that were referenced in the original function.  Test src_fn
12257         rather than cfun.  Drop redundant get_var_ann.
12258         (setup_one_parameter): Drop redundant get_var_ann.
12259         (declare_return_variable): Likewise.
12260         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12261         (copy_arguments_for_versioning): Drop redundant get_var_ann.
12262         * ipa-inline.c (compute_inline_parameters): Do not compute
12263         disregard_inline_limits here.
12264         (compute_inlinable_for_current, pass_inlinable): New.
12265         (pass_inline_parameters): Require PROP_referenced_vars.
12266         * cgraphunit.c (cgraph_process_new_functions): Don't run
12267         compute_inline_parameters explicitly unless function is in SSA form.
12268         (cgraph_analyze_function): Set .disregard_inline_limits.
12269         * tree-sra.c (convert_callers): Compute inliner parameters
12270         only for functions already in SSA form.
12271
12272 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12273
12274         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12275         -mlittle-endian-data.
12276
12277 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12278
12279         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12280         -mno-fpu, not -fpu and -no-fpu.
12281         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12282         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12283
12284 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
12285
12286         PR target/43653
12287         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12288         input reload with PLUS RTX.
12289
12290 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12291
12292         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12293         of InverseVar(MDMX).
12294
12295 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12296
12297         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12298         --m4-340.
12299
12300 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12301
12302         * config/mn10300/mn10300.opt (mno-crt0): New.
12303
12304 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12305
12306         * config/m68k/uclinux.opt (static-libc): New Driver option.
12307
12308 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12309
12310         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12311
12312 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12313
12314         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12315         %{muser-extend-enabled}.
12316
12317 2011-02-16  Richard Guenther  <rguenther@suse.de>
12318
12319         PR tree-optimization/47738
12320         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12321         the TODO from tree_predictive_commoning.
12322
12323 2011-02-15  Jeff Law  <law@redhat.com>
12324
12325         Revert
12326         2011-01-25  Jeff Law  <law@redhat.com>
12327
12328         PR rtl-optimization/37273
12329         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12330         handle them like argument loads from stack slots.  Do not double
12331         count memory for memory constants and argument loads from stack slots.
12332
12333 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12334
12335         PR middle-end/47725
12336         * combine.c (cant_combine_insn_p): Revert the last change.
12337
12338 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
12339
12340         PR target/47755
12341         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12342         mode for vector constants.  Remove code that checks for TImode.
12343
12344 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12345
12346         PR debug/47106
12347         PR debug/47402
12348         * cgraph.h (compute_inline_parameters): Return void.
12349         * ipa-inline.c (compute_inline_parameters): Adjust.
12350
12351 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12352
12353         PR debug/47106
12354         PR debug/47402
12355         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12356         rather than decl.
12357         * cfgexpand.c (estimated_stack_frame_size): Likewise.
12358         * ipa-inline.c (compute_inline_parameters): Adjust.
12359
12360 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12361
12362         PR debug/47106
12363         PR debug/47402
12364         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12365         Adjust all users.  Pass FN to...
12366         * tree-flow-inline.h (first_referenced_var): ... this.  Add
12367         fn argument.
12368         * ipa-struct-reorg.c: Adjust.
12369         * tree-dfa.c: Adjust.
12370         * tree-into-ssa.c: Adjust.
12371         * tree-sra.c: Adjust.
12372         * tree-ssa-alias.c: Adjust.
12373         * tree-ssa-live.c: Adjust.
12374         * tree-ssa.c: Adjust.
12375         * tree-ssanames.c: Adjust.
12376         * tree-tailcall.c: Adjust.
12377
12378 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12379
12380         PR debug/47106
12381         PR debug/47402
12382         * tree-flow.h (referenced_var_lookup): Add fn parameter.
12383         Adjust all callers.
12384         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12385         * tree-flow-inline.h: Adjust.
12386         * gimple-pretty-print.c: Adjust.
12387         * tree-into-ssa.c: Adjust.
12388         * tree-ssa.c: Adjust.
12389         * cfgexpand.c: Adjust.
12390
12391 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12392
12393         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12394         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12395         (EXTRA_CONSTRAINT): Delete.
12396         * config/iq2000/constraints.md: New file.
12397         * config/iq2000/iq2000.md: Include it.
12398         (define_insn ""): Delete.
12399         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12400         unsupported constraint letters from patterns.
12401         (call_value, call_value_internal1): Likewise.
12402         (call_value_multiple_internal1): Likewise.
12403
12404 2011-02-15  Nick Clifton  <nickc@redhat.com>
12405
12406         * config/mn10300/mn10300.c: Include tm-constrs.h.
12407         (struct liw_data): New data structure describing an LIW candidate
12408         instruction.
12409         (extract_bundle): Use struct liw_data.  Allow small integer
12410         operands for some instructions.
12411         (check_liw_constraints): Use struct liw_data.  Remove swapped
12412         parameter.  Add comments describing the checks.  Fix bug when
12413         assigning the source of liw1 to the source of liw2.
12414         (liw_candidate): Delete.  Code moved into extract_bundle.
12415         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
12416         before swapping.
12417         * config/mn10300/predicates.md (liw_operand): New predicate.
12418         Allows registers and small integer constants.
12419         * config/mn10300/constraints.md (O): New constraint.  Accetps
12420         integers in the range -8 to +7 inclusive.
12421         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12422         for moving a small integer into a register.  Give this alternative
12423         LIW attributes.
12424         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12425         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12426         using the J,K,L and M constraints,
12427         (liw): Remove SI mode on second operands to allow for HI and QI
12428         mode values.
12429         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
12430         instruction.
12431
12432 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12433
12434         PR middle-end/47725
12435         * combine.c (cant_combine_insn_p): Check zero/sign extended
12436         hard registers.
12437
12438 2011-02-15  Richard Guenther  <rguenther@suse.de>
12439
12440         PR tree-optimization/47743
12441         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12442         for a non-type-compatible VN lookup bail out.
12443
12444 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12445
12446         * config/fr30/constraints.md: New file.
12447         * config/fr30/fr30.md: Include it.
12448         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12449         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12450         (EXTRA_CONSTRAINT): Delete.
12451
12452 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12453
12454         * config/frv/constraints.md: New file.
12455         * config/frv/predicates.md: Include it.
12456         * config/frv/frv.c (reg_class_from_letter): Delete.
12457         (frv_option_override): Don't initialize it.
12458         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12459         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12460         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12461         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12462         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12463         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12464         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12465         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12466         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12467         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12468         (REG_CLASS_FROM_CONSTRAINT): Delete.
12469
12470 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
12471
12472         PR middle-end/47581
12473         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12474         if frame size is 0 in a leaf function.
12475
12476 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12477
12478         PR pch/14940
12479         * config/alpha/host-osf.c: New file.
12480         * config/alpha/x-osf: New file.
12481         * config.host (alpha*-dec-osf*): Use it.
12482
12483 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12484
12485         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12486         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12487         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12488         (rx_mode_dependent_address_p): ...this. Make static. Change argument
12489         type to const_rtx.
12490         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12491
12492 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12493
12494         * config/stormy16/constraints.md: New file.
12495         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12496         Use satisfies_constraint_Q and satisfies_constraint_R.
12497         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12498         Delete.
12499         (xstormy16_legitiamte_address_p): Declare.
12500         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12501         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12502         (EXTRA_CONSTRAINT): Delete.
12503         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12504         Un-staticize.
12505         (xstormy16_extra_constraint_p): Delete.
12506
12507 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12508
12509         PR tree-optimization/46494
12510         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12511         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12512         (pass_rtl_loop_done): Add TODO_verify_flow.
12513         * fwprop.c (pass_rtl_fwprop): Likewise.
12514         * modulo-sched.c (pass_sms): Likewise.
12515         * tree-ssa-dom.c (pass_dominator): Likewise.
12516         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12517         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12518         (pass_tree_loop_done): Likewise.
12519         * tree-ssa-pre.c (execute_pre): Likewise.
12520         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12521         * tree-ssa-sink.c (pass_sink_code): Likewise.
12522         * tree-vrp.c (pass_vrp): Likewise.
12523
12524 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12525
12526         * config/v850/constraints.md: New file.
12527         * config/v850/v850.md: Include it.
12528         * config/v850/predicates.md (reg_or_0_operand): Use
12529         satisfies_constraint_G.
12530         (special_symbolref_operand): Use satisfies_constraint_K.
12531         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12532         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12533         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12534         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12535         (EXTRA_CONSTRAINT): Delete.
12536         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12537         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12538         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12539
12540 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12541
12542         PR target/47696
12543         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12544         description.
12545
12546 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12547
12548         * config/mcore/constraints.md: New file.
12549         * config/mcore/mcore.md: Include it.
12550         * config/mcore/mcore.c (reg_class_from_letter): Delete.
12551         * config/mcore/mcore.h (reg_class_from_letter): Delete.
12552         (REG_CLASS_FROM_LETTER): Delete.
12553         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12554         insn_const_int_ok_for_constraint.
12555         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12556         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12557         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12558         (EXTRA_CONSTRAINT): Delete.
12559
12560 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12561
12562         PR ada/41929
12563         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12564         (IS_SIGHANDLER): Define.
12565         (sparc64_is_sighandler): New function, split off from
12566         sparc64_fallback_frame_state.
12567         (sparc_is_sighandler): New function, split off from
12568         sparc_fallback_frame_state.
12569         (sparc64_fallback_frame_state): Merge with ...
12570         (sparc_fallback_frame_state): ... this into ...
12571         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12572         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
12573         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
12574         stack instead of hardcoded offsets.
12575
12576 2011-02-14  Andriy Gapon  <avg@freebsd.org>
12577
12578         PR target/45808
12579         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12580
12581 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12582
12583         * configure: Regenerate.
12584
12585 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
12586
12587         PR driver/45731
12588         * gcc.c (asm_options): Correct spec matching --target-help.
12589
12590 2011-02-12  Martin Jambor  <mjambor@suse.cz>
12591
12592         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12593         to gimple call error.
12594
12595 2011-02-12  Mike Stump  <mikestump@comcast.net>
12596
12597         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12598         comments in backslash regions.
12599
12600 2011-02-12  Mike Stump  <mikestump@comcast.net>
12601             Jakub Jelinek  <jakub@redhat.com>
12602             Iain Sandoe  <iains@gcc.gnu.org>
12603
12604         PR target/47324
12605         * dwarf2out.c (output_cfa_loc): When required, apply the
12606         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12607         (output_loc_sequence): Likewise.
12608         (output_loc_operands_raw): Likewise.
12609         (output_loc_sequence_raw): Likewise.
12610         (output_cfa_loc): Likewise.
12611         (output_loc_list): Suppress register number adjustment when
12612         calling output_loc_sequence()
12613         (output_die): Likewise.
12614
12615 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
12616
12617         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12618         Remove macros.
12619         * config/xtensa/xtensa.c (xtensa_register_move_cost,
12620         xtensa_memory_move_cost): New functions.
12621         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12622
12623 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
12624
12625         PR lto/47225
12626         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12627         in the current directory.
12628         * configure: Rebuilt.
12629
12630 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12631
12632         * config/darwin.c (darwin_override_options): Add a hunk missed
12633         from the commit of r168571.  Trim comment line lengths and
12634         correct indents of the preceding block.
12635
12636 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12637
12638         * gcc.c (driver_handle_option): Concatenate the argument to -F with
12639         the switch.
12640
12641 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12642
12643         * common.opt (nostartfiles): New Driver option.
12644
12645 2011-02-11  Xinliang David Li  <davidxl@google.com>
12646
12647         PR tree-optimization/47707
12648         * tree-chrec.c (convert_affine_scev): Keep type precision.
12649
12650 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12651
12652         PR tree-optimization/47420
12653         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12654
12655 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
12656
12657         PR rtl-optimization/47614
12658         * rtl.h (check_for_inc_dec): Declare.
12659         * dse.c (check_for_inc_dec): Externalize...
12660         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12661         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12662
12663 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12664
12665         PR driver/47678
12666         * gcc.c (main): Do not compile inputs if there were errors in
12667         option handling.
12668         * opts-common.c (read_cmdline_option): Check for wrong language
12669         after other error checks.
12670
12671 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
12672
12673         * cgraph.c: Fix comment typos.
12674         * cgraph.h: Likewise.
12675         * cgraphunit.c: Likewise.
12676         * ipa-cp.c: Likewise.
12677         * ipa-inline.c: Likewise.
12678         * ipa-prop.c: Likewise.
12679         * ipa-pure-const.c: Likewise.
12680         * ipa-ref.c: Likewise.
12681         * ipa-reference.c: Likewise.
12682
12683 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
12684
12685         PR debug/47684
12686         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
12687
12688 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12689
12690         PR testsuite/47400
12691         * doc/sourcebuild.texi (Require Support): Document
12692         dg-require-ascii-locale.
12693
12694 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
12695
12696         * doc/lto.texi (Write summary): Fix missing parentheses.
12697
12698 2011-02-10  DJ Delorie  <dj@redhat.com>
12699
12700         * config/m32c/m32c.c (m32c_option_override): Disable
12701         -fcombine-stack-adjustments until flag value tracking and compare
12702         optimization can be rewritten.
12703
12704 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
12705
12706         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12707         PROCESSOR_POWER7.
12708         (PROCESSOR_DEFAULT64): Likewise.
12709
12710 2011-02-10  Richard Henderson  <rth@redhat.com>
12711
12712         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12713         change from 2011-02-03.
12714         * config/rx/rx.c (flags_from_code): Likewise.
12715         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12716         is valid, n/pz otherwise.
12717         (rx_select_cc_mode): Return CCmode if Y is not zero.
12718
12719 2011-02-10  Richard Guenther  <rguenther@suse.de>
12720
12721         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
12722
12723 2011-02-10  Richard Guenther  <rguenther@suse.de>
12724
12725         PR tree-optimization/47677
12726         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12727
12728 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12729
12730         PR target/47665
12731         * combine.c (make_compound_operation): Only change shifts into
12732         multiplication for SCALAR_INT_MODE_P.
12733
12734 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12735
12736         PR testsuite/47622
12737         Revert
12738         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12739         PR debug/42631
12740         * web.c (entry_register): Don't clobber the number of the
12741         first uninitialized reference in used[].
12742
12743 2011-02-09  Richard Guenther  <rguenther@suse.de>
12744
12745         PR tree-optimization/47664
12746         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12747         all edges again.
12748
12749 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12750
12751         PR target/46481
12752         PR target/47032
12753         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12754         PROCESSOR_POWER7.
12755         (PROCESSOR_DEFAULT64): Same.
12756         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12757
12758 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12759
12760         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12761
12762 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12763
12764         PR middle-end/45505
12765         * tree-sra.c (struct access): New flags grp_scalar_read and
12766         grp_scalar_write.  Changed description of assignment read and write
12767         flags.
12768         (dump_access): Dump new flags, reorder all of them.
12769         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12770         to detect multiple scalar reads.
12771         (analyze_access_subtree): Use the new scalar read write flags instead
12772         of the old flags.  Adjusted comments.
12773
12774 2011-02-08  DJ Delorie  <dj@redhat.com>
12775
12776         PR target/47548
12777         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12778         patterns.
12779
12780 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12781
12782         * config/m68k/uclinux.opt: New.
12783         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12784
12785 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12786
12787         * config/cris/elf.opt (sim): New Driver option.
12788
12789 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12790
12791         * config/xtensa/elf.opt: New.
12792         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12793
12794 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12795
12796         * config/vax/elf.opt: New.
12797         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12798
12799 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12800
12801         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12802
12803 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12804
12805         * config/gnu-user.opt: New.
12806         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12807         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12808         *-*-uclinux*): Use gnu-user.opt.
12809
12810 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12811
12812         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12813         * config/i386/gnu.h (CPP_SPEC): Likewise.
12814
12815 2011-02-08  Ian Lance Taylor  <iant@google.com>
12816
12817         * common.opt (fcx-limited-range): Add SetByCombined flag.
12818         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12819         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12820         (fassociative-math, freciprocal-math): Likewise.
12821         (funsafe-math-optimizations): Likewise.
12822         * opth-gen.awk: Handle SetByCombined.
12823         * optc-gen.awk: Likewise.
12824         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12825         (set_unsafe_math_optimizations_flags): Likewise.
12826         * doc/options.texi (Option properties): Document SetByCombined.
12827
12828 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12829
12830         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12831         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12832         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12833         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12834         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12835
12836 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12837
12838         PR tree-optimization/46834
12839         PR tree-optimization/46994
12840         PR tree-optimization/46995
12841         * graphite-sese-to-poly.c (used_outside_reduction): New.
12842         (detect_commutative_reduction): Call used_outside_reduction.
12843         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12844         translate_scalar_reduction_to_array only when at least one
12845         loop-phi/close-phi tuple has been detected.
12846
12847 2011-02-08  Richard Guenther  <rguenther@suse.de>
12848
12849         PR middle-end/47639
12850         * tree-vect-generic.c (expand_vector_operations_1): Update
12851         stmts here ...
12852         (expand_vector_operations): ... not here.  Cleanup EH info
12853         and the CFG if required.
12854
12855 2011-02-08  Richard Guenther  <rguenther@suse.de>
12856
12857         PR tree-optimization/47641
12858         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12859         require type compatibility.
12860
12861 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12862
12863         * gimple-low.c (lower_function_body): Don't remove the location of
12864         the return statement here.
12865         (lower_gimple_return): Do it here instead but only if the return
12866         statement is actually used twice.
12867
12868 2011-02-08  Richard Guenther  <rguenther@suse.de>
12869
12870         PR tree-optimization/47632
12871         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12872         unused up_to_stmt parameter, return whether cfg-cleanup is
12873         necessary, remove EH info properly.
12874         (forward_propagate_into_gimple_cond): Adjust caller.
12875         (forward_propagate_into_cond): Likewise.
12876         (forward_propagate_comparison): Likewise.
12877         (tree_ssa_forward_propagate_single_use_vars): Make
12878         forward_propagate_comparison case similar to the two others.
12879
12880 2011-02-08  Nick Clifton  <nickc@redhat.com>
12881
12882         * config/mn10300/mn10300.opt (mliw): New command line option.
12883         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12884         (liw_bundling): New automaton.
12885         (liw): New attribute.
12886         (liw_op): New attribute.
12887         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12888         (movsi_internal): Add LIW attributes.
12889         (andsi3): Likewise.
12890         (iorsi3): Likewise.
12891         (xorsi3): Likewise.
12892         (addsi3): Separate register and immediate alternatives.
12893         Add LIW attributes.
12894         (subsi3): Likewise.
12895         (cmpsi): Likewise.
12896         (aslsi3): Likewise.
12897         (lshrsi3): Likewise.
12898         (ashrsi3): Likewise.
12899         (liw): New pattern.
12900         * config/mn10300/mn10300.c (liw_op_names): New
12901         (mn10300_print_operand): Handle 'W' operand descriptor.
12902         (extract_bundle): New function.
12903         (check_liw_constraints): New function.
12904         (liw_candidate): New function.
12905         (mn10300_bundle_liw): New function.
12906         (mn10300_reorg): New function.
12907         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12908         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12909         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12910         __LIW__ or __NO_LIW__.
12911         * doc/invoke.texi: Describe the -mliw command line option.
12912
12913 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12914
12915         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12916         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12917         pthread_mutex_unlock): Remove.
12918         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12919         * config/pa/t-pa64: Likewise.
12920         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12921         shared libc if not linking against libpthread.
12922         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12923
12924 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
12925
12926         PR target/47558
12927         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12928         on 10.6 and later to ensure that we always use the unwinder from
12929         the system.  Only add -no_compact_unwind when tarteting darwin
12930         10.6 or later.
12931
12932 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
12933
12934         PR target/46997
12935         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12936         (vec_interleave_lowv2sf): Ditto.
12937         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12938         (vec_extract_oddv2sf): Ditto.
12939
12940 2011-02-07  Mike Stump  <mikestump@comcast.net>
12941
12942         PR target/42333
12943         Add __ieee_divdc3 entry point.
12944         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12945         entry point.
12946         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12947         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12948         * config/darwin.c (darwin_rename_builtins): Add.
12949         * config/darwin-protos.h (darwin_rename_builtins): Add.
12950
12951 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
12952
12953         PR target/47636
12954         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12955         for the condition.
12956
12957 2011-02-07  Mike Stump  <mikestump@comcast.net>
12958
12959         * config/darwin.opt (mmacosx-version-min): Update default OS version.
12960
12961 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
12962
12963         PR target/47534
12964         * config/avr/libgcc.S (exit): Move .endfunc
12965
12966 2011-02-07  Richard Guenther  <rguenther@suse.de>
12967
12968         PR tree-optimization/47615
12969         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12970         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12971         (run_scc_vn): Initialize it.
12972         (visit_reference_op_load): Use it.
12973         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12974
12975 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12976
12977         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12978         DImode trapping arithmetic libfuncs.
12979
12980 2011-02-07  Richard Guenther  <rguenther@suse.de>
12981
12982         PR tree-optimization/47621
12983         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12984         two duplicates ...
12985         (execute_update_addresses_taken): ... here.  Make it more
12986         conservative in what we accept.
12987
12988 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12989
12990         * config/sparc/freebsd.h (ASM_SPEC): Define.
12991         * config/sparc/vxworks.h (ASM_SPEC): Define.
12992
12993 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12994
12995         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12996
12997 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
12998
12999         * doc/invoke.texi: Remove reference to compiler internals from
13000         user documentation.
13001
13002         * reg-notes.def: Remove REG_VALUE_PROFILE.
13003         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13004
13005 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13006
13007         PR middle-end/47610
13008         * varasm.c (default_section_type_flags): If decl is NULL,
13009         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13010
13011 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13012
13013         PR debug/42631
13014         * web.c (entry_register): Don't clobber the number of the
13015         first uninitialized reference in used[].
13016
13017 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13018
13019         PR tree-optimization/46194
13020         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13021         (build_classic_dist_vector_1): Do not represent classic distance
13022         vectors when the access functions are variating in different loops.
13023
13024 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13025
13026         * config/mips/iris6.opt: New.
13027         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13028
13029 2011-02-04  Richard Henderson  <rth@redhat.com>
13030             Steve Ellcey  <sje@cup.hp.com>
13031
13032         PR target/46997
13033         * config/ia64/predicates.md (mux1_brcst_element): New.
13034         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13035         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13036         (ia64_unpack_sign): New.
13037         (ia64_expand_unpack): Rewrite using new routines.
13038         (ia64_expand_widen_sum): Ditto.
13039         (ia64_expand_dot_prod_v8qi): Ditto.
13040         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13041         routines, add endian check.
13042         (pmpy2_even): Rename from pmpy2_r, add endian check.
13043         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13044         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13045         (vec_widen_smult_hi_v4hi): Ditto.
13046         (vec_widen_umult_lo_v4hi): Ditto.
13047         (vec_widen_umult_hi_v4hi): Ditto.
13048         (mulv2si3): Change endian checks.
13049         (sdot_prodv4hi): Rewrite with new calls.
13050         (udot_prodv4hi): New.
13051         (vec_pack_ssat_v4hi): Add endian check.
13052         (vec_pack_usat_v4hi): Ditto.
13053         (vec_pack_ssat_v2si): Ditto.
13054         (max1_even): Rename from max1_r, add endian check.
13055         (max1_odd): Rename from max1_l, add endian check.
13056         (*mux1_rev): Format change.
13057         (*mux1_mix): Ditto.
13058         (*mux1_shuf): Ditto.
13059         (*mux1_alt): Ditto.
13060         (*mux1_brcst_v8qi): Use new predicate.
13061         (vec_extract_evenv8qi): Remove endian check.
13062         (vec_extract_oddv8qi): Ditto.
13063         (vec_interleave_lowv4hi): Format change.
13064         (vec_interleave_highv4hi): Ditto.
13065         (mix2_even): Rename from mix2_r, add endian check.
13066         (mix2_odd): Rename from mux2_l, add endian check.
13067         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13068         (vec_extract_evenodd_helper): Format change.
13069         (vec_extract_evenv4hi): Remove endian check.
13070         (vec_extract_oddv4hi): Remove endian check.
13071         (vec_interleave_lowv2si): Format change.
13072         (vec_interleave_highv2si): Format change.
13073         (vec_initv2si): Remove endian check.
13074         (vecinit_v2si): Add endian check.
13075         (reduc_splus_v2sf): Add endian check.
13076         (reduc_smax_v2sf): Ditto.
13077         (reduc_smin_v2sf): Ditto.
13078         (vec_initv2sf): Remove endian check.
13079         (fpack): Add endian check.
13080         (fswap): Add endian check.
13081         (vec_interleave_highv2sf): Add endian check.
13082         (vec_interleave_lowv2sf): Add endian check.
13083         (fmix_lr): Add endian check.
13084         (vec_setv2sf): Format change.
13085         (*vec_extractv2sf_0_be): Use shift to extract operand.
13086         (*vec_extractv2sf_1_be): New.
13087         (vec_pack_trunc_v4hi): Add endian check.
13088         (vec_pack_trunc_v2si): Format change.
13089
13090 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13091
13092         PR inline-asm/23200
13093         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13094         do bb, locus and block comparison and disallow loads if it is not set.
13095         (stmt_is_replaceable_p): New function.
13096         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13097         callers.
13098         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13099         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13100         SSA_NAME_DEF_STMT.
13101         * tree-flow.h (stmt_is_replaceable_p): New prototype.
13102
13103 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13104
13105         * config/rs6000/xilinx.opt: New.
13106         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13107
13108 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13109
13110         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13111
13112 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
13113
13114         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13115         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13116         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13117         secondary_reload_info, xtensa_secondary_reload): Remove.
13118         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13119         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13120         (xtensa_preferred_reload_class): Make static. Change return and
13121         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13122         Use CONST_DOUBLE_P predicate.
13123         (xtensa_preferred_output_reload_class): New function.
13124         (xtensa_secondary_reload): Make static.
13125
13126 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
13127
13128         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13129         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13130         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13131
13132 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13133
13134         PR middle-end/31490
13135         * output.h (SECTION_RELRO): Define.
13136         (SECTION_MACH_DEP): Adjust.
13137         (get_variable_section): New prototype.
13138         * varpool.c (varpool_finalize_named_section_flags): New function.
13139         (varpool_assemble_pending_decls): Call it.
13140         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13141         * cgraphunit.c (cgraph_output_in_order): Call
13142         varpool_finalize_named_section_flags.
13143         * varasm.c (get_section): Allow section flags conflicts between
13144         relro and read-only sections if the section hasn't been declared yet.
13145         Set SECTION_OVERRIDE after diagnosing section type conflict.
13146         (get_variable_section): No longer static.
13147         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13148         readonly sections that need relocations.
13149         (decl_readonly_section_1): New function.
13150         (decl_readonly_section): Use it.
13151
13152         Revert:
13153         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
13154                     Steve Ellcey  <sje@cup.hp.com>
13155
13156         PR middle-end/31490
13157         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13158         if section attribute used.
13159
13160 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13161
13162         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13163         * config/darwin.c (SECTION_NO_ANCHOR): Define.
13164         (darwin_init_sections): Remove assertion.
13165
13166 2011-02-03  Nick Clifton  <nickc@redhat.com>
13167
13168         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13169         lt and ge.
13170         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13171         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13172         instead of "n" and "pz".
13173         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13174         CC_FLAG_S.
13175
13176 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13177
13178         PR target/47312
13179         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13180         fma, expand FMA_EXPR as fma{,f,l} call.
13181
13182         PR lto/47274
13183         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13184         copy them into a unsigned char variable and pass address of it to
13185         lto_output_data_stream.
13186
13187         PR target/47564
13188         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13189         around backend_init_target and lang_dependent_init_target calls.
13190         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13191         (verify_cgraph_node): Don't call set_cfun here.  Use
13192         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13193         Set error_found for incorrectly represented calls to thunks.
13194
13195 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13196
13197         PR debug/43092
13198         PR rtl-optimization/43494
13199         * rtl.h (for_each_inc_dec_fn): New type.
13200         (for_each_inc_dec): Declare.
13201         * rtlanal.c (struct for_each_inc_dec_ops): New type.
13202         (for_each_inc_dec_find_inc_dec): New fn.
13203         (for_each_inc_dec_find_mem): New fn.
13204         (for_each_inc_dec): New fn.
13205         * dse.c (struct insn_size): Remove.
13206         (replace_inc_dec, replace_inc_dec_mem): Remove.
13207         (emit_inc_dec_insn_before): New fn.
13208         (check_for_inc_dec): Use it, along with for_each_inc_dec.
13209         (canon_address): Pass mem modes to cselib_lookup.
13210         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
13211         (cselib_lookup_from_insn): Likewise.
13212         (cselib_subst_to_values): Likewise.
13213         * cselib.c (find_slot_memmode): New var.
13214         (cselib_find_slot): New fn.  Use it instead of
13215         htab_find_slot_with_hash everywhere.
13216         (entry_and_rtx_equal_p): Use find_slot_memmode.
13217         (autoinc_split): New fn.
13218         (rtx_equal_for_cselib_p): Rename and implement in terms of...
13219         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
13220         Deal with autoinc.  Special-case recursion into MEMs.
13221         (cselib_hash_rtx): Likewise.
13222         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
13223         address and MEM modes.
13224         (cselib_subst_to_values): Add memmode, pass it on.
13225         Deal with autoinc.
13226         (cselib_lookup): Add memmode argument, pass it on.
13227         (cselib_lookup_from_insn): Add memmode.
13228         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13229         (struct cselib_record_autoinc_data): New.
13230         (cselib_record_autoinc_cb): New fn.
13231         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
13232         mode to cselib_lookup.  Reset autoinced REGs here instead of...
13233         (cselib_process_insn): ... here.
13234         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13235         to cselib_lookup.
13236         (add_uses): Likewise, also to cselib_subst_to_values.
13237         (add_stores): Likewise.
13238         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
13239         cselib_subst_to_values.
13240         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
13241         * gcse.c (do_local_cprop): Adjusted.
13242         * postreload.c (reload_cse_simplify_set): Adjusted.
13243         (reload_cse_simplify_operands): Adjusted.
13244         * sel-sched-dump (debug_mem_addr_value): Pass mode.
13245
13246 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13247
13248         PR tree-optimization/45122
13249         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13250         unsafe assumptions when there's more than one loop exit.
13251
13252 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13253
13254         PR target/47272
13255         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13256         Document using vector double with the load/store builtins, and
13257         that the load/store builtins always use Altivec instructions.
13258
13259         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13260         to use altivec memory instructions, even on VSX.
13261         (vector_altivec_store_<mode>): Ditto.
13262
13263         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13264         function.
13265
13266         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13267         V2DF, V2DI support to load/store overloaded builtins.
13268
13269         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13270         altivec load/store builtins for V2DF/V2DI types.
13271
13272         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13273         set avoid indexed addresses on power6 if -maltivec.
13274         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13275         vector_altivec_load/vector_altivec_store builtins.
13276         (altivec_expand_st_builtin): Ditto.
13277         (altivec_expand_builtin): Add VSX memory builtins.
13278         (rs6000_init_builtins): Add V2DI types to internal types.
13279         (altivec_init_builtins): Add support for V2DF/V2DI altivec
13280         load/store builtins.
13281         (rs6000_address_for_altivec): Insure memory address is appropriate
13282         for Altivec.
13283
13284         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13285         vec_vsx_ld and vec_vsx_st.
13286         (vsx_store_<mode>): Ditto.
13287
13288         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13289         variables to hold long long types for VSX vector memory builtins.
13290         (RS6000_BTI_unsigned_long_long): Ditto.
13291         (long_long_integer_type_internal_node): Ditti.
13292         (long_long_unsigned_type_internal_node): Ditti.
13293
13294         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13295         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13296         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13297
13298         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13299         short cuts.
13300         (vec_vsx_st): Ditto.
13301
13302 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13303
13304         * config/pa/pa-hpux10.opt: New.
13305         * config/hpux11.opt (pthread): New Driver option.
13306         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13307         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13308
13309 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13310
13311         * config/ia64/vms.opt: New.
13312         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13313
13314 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13315
13316         PR target/47580
13317         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13318         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13319         generator functions.
13320         (vsx_floatuns<VSi><mode>2): Ditto.
13321         (vsx_fix_trunc<mode><VSi>2): Ditto.
13322         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13323
13324 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13325
13326         * config/i386/djgpp.opt (posix): New Driver option.
13327
13328 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13329
13330         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13331         Move to the unsupported targets list.
13332
13333 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
13334
13335         PR rtl-optimization/47525
13336         * df-scan.c: Update copyright years.
13337         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13338         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13339
13340 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13341
13342         * config/i386/sysv4.h (TARGET_VERSION): Remove.
13343         (SUBTARGET_RETURN_IN_MEMORY): Remove.
13344         (ASM_OUTPUT_ASCII): Remove.
13345         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13346
13347 2011-02-02  Jeff Law  <law@redhat.com>
13348
13349         PR middle-end/47543
13350         * reload.c (find_reloads_address): Handle reg+d address where both
13351         components are invalid by reloading the entire address.
13352
13353 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13354             Richard Guenther  <rguenther@suse.de>
13355
13356         PR tree-optimization/40979
13357         PR bootstrap/47044
13358         * passes.c (init_optimization_passes): After LIM call copy_prop
13359         and DCE to clean up.
13360         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13361
13362 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13363
13364         PR tree-optimization/47576
13365         PR tree-optimization/47555
13366         * doc/invoke.texi (scev-max-expr-complexity): Documented.
13367         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13368         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13369         * tree-scalar-evolution.c (follow_ssa_edge): Use
13370         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13371
13372 2011-02-02  Richard Guenther  <rguenther@suse.de>
13373
13374         PR tree-optimization/47566
13375         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13376
13377 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13378
13379         PR debug/47106
13380         PR debug/47402
13381         * tree-inline.c (declare_return_variable): Remove unused caller
13382         variable.
13383
13384         PR debug/47106
13385         PR debug/47402
13386         * tree-flow-inline.h (clear_is_used, is_used_p): New.
13387         * cfgexpand.c (account_used_vars_for_block): Use them.
13388         * tree-nrv.c (tree_nrv): Likewise.
13389         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13390         (dump_scope_block): Likewise.
13391         (remove_unused_locals): Likewise.
13392
13393         PR debug/47106
13394         PR debug/47402
13395         * tree-inline.c (declare_return_variable): Add result decl to
13396         local decls only once.
13397         * gimple-low.c (record_vars_into): Mark newly-created variables
13398         as referenced.
13399
13400 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13401
13402         PR debug/47498
13403         PR debug/47501
13404         PR debug/45136
13405         PR debug/45130
13406         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13407         debug insns.
13408         (no_real_insns_p, schedule_block, set_priorities): Drop special
13409         treatment of boundary debug insns.
13410         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13411         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13412         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13413         (BOUNDARY_DEBUG_INSN_P): Likewise.
13414         (SCHEDULE_DEBUG_INSN_P): Likewise.
13415         * sched-rgn.c (init_ready_list): Drop special treatment of
13416         boundary debug insns.
13417         * final.c (rest_of_clean_state): Clear notes' BB.
13418
13419 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13420
13421         * config/openbsd.opt (assert=): New Driver option.
13422
13423 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13424
13425         * config/i386/nto.opt: New.
13426         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13427
13428 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13429
13430         * config/i386/netware.opt: New.
13431         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13432
13433 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13434
13435         * config/interix.opt (posix): New Driver option.
13436
13437 2011-02-01  DJ Delorie  <dj@redhat.com>
13438
13439         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13440
13441         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13442         class for A0/A1.
13443
13444 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
13445
13446         PR tree-optimization/47561
13447         * toplev.c (process_options): Print the Graphite flags.  Add
13448         flag_loop_flatten to the list of options requiring Graphite.
13449
13450 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13451
13452         * config/i386/cygming.opt (posix): New Driver option.
13453
13454 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13455
13456         * config/arm/vxworks.opt: New.
13457         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13458
13459 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13460
13461         * config/alpha/elf.opt: New.
13462         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13463         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13464
13465 2011-02-01  Richard Guenther  <rguenther@suse.de>
13466
13467         PR tree-optimization/47559
13468         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13469         store-motion on references that can throw.
13470
13471 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
13472
13473         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13474         * tree-pass.h (TDF_CSELIB): New macro.
13475         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13476         cselib_lookup): Check for it rather than for TDF_DETAILS.
13477
13478 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
13479
13480         PR driver/47547
13481         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13482         is HOST_BIT_BUCKET.
13483
13484         * opts.c (finish_options): Don't add x_aux_base_name if it is
13485         HOST_BIT_BUCKET.
13486
13487 2011-02-01  Richard Guenther  <rguenther@suse.de>
13488
13489         PR tree-optimization/47555
13490         Revert
13491         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
13492
13493         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13494
13495 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
13496
13497         PR gcc/46692
13498         * config/lm32/t-lm32: Add multilib for all CPU options.
13499
13500 2011-02-01  Richard Guenther  <rguenther@suse.de>
13501
13502         PR tree-optimization/47541
13503         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13504         sure to have a field at offset zero.
13505
13506 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13507
13508         * config/arc/arc.opt (EB, EL): New Driver options.
13509
13510 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13511
13512         * config/alpha/osf5.opt: New.
13513         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13514
13515 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13516
13517         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13518
13519 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13520
13521         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13522         -floop-interchange.
13523         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13524         is an alias of -floop-interchange and that it requires the
13525         Graphite infrastructure.
13526         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13527         flag_loop_interchange based on the value of flag_tree_loop_linear.
13528
13529 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13530             Richard Guenther  <rguenther@suse.de>
13531
13532         PR tree-optimization/47538
13533         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13534         type instead of r1type, except for comparisons.  For right
13535         shifts and comparisons punt if there are mismatches in
13536         sizetype vs. non-sizetype types.
13537
13538 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13539
13540         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13541         avx_runtime.
13542
13543 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13544
13545         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13546         version number.
13547         * configure: Regenerate.
13548
13549 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13550
13551         * configure.ac (gcc_cv_ld_static_option): Define.
13552         (gcc_cv_ld_dynamic_option): Define.
13553         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13554         instead.
13555         (HAVE_LD_STATIC_DYNAMIC): Update message.
13556         (LD_STATIC_OPTION): Define.
13557         (LD_DYNAMIC_OPTION): Define.
13558         * configure: Regenerate.
13559         * config.in: Regenerate.
13560         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13561         HAVE_LD_STATIC_DYNAMIC]: Use them.
13562
13563 2011-01-31  Nick Clifton  <nickc@redhat.com>
13564
13565         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13566         registers inside interrupt handlers if the handler is not a leaf
13567         function.
13568
13569 2011-01-31  Nick Clifton  <nickc@redhat.com>
13570
13571         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13572         reg_renumber returning an INVALID_REGNUM.
13573
13574 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13575
13576         PR libgcj/44341
13577         * doc/install.texi: Document host options discarded when cross
13578         configuring target libraries.
13579
13580 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13581
13582         Reverted:
13583         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13584         PR debug/45136
13585         PR debug/45130
13586         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13587         debug insns.
13588         (no_real_insns_p, schedule_block, set_priorities): Drop special
13589         treatment of boundary debug insns.
13590         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13591         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13592         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13593         (BOUNDARY_DEBUG_INSN_P): Likewise.
13594         (SCHEDULE_DEBUG_INSN_P): Likewise.
13595         * sched-rgn.c (init_ready_list): Drop special treatment of
13596         boundary debug insns.
13597         * final.c (rest_of_clean-state): Clear notes' BB.
13598
13599 2011-01-31  Alan Modra  <amodra@gmail.com>
13600
13601         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13602         toc relative expressions as we do in print_operand_address.
13603
13604 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
13605
13606         * doc/extend.texi: Follow spelling conventions.
13607         * doc/invoke.texi: Fix a typo.
13608
13609 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
13610
13611         * config/hpux11.opt: New.
13612         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13613         ia64*-*-hpux*): Use hpux11.opt.
13614
13615 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
13616
13617         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13618         to tmake_file.
13619
13620 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13621
13622         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13623         support sites.
13624
13625 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13626
13627         * doc/install.texi (Binaries): Remove outdated reference for
13628         Motorola 68HC11/68HC12 downloads.
13629
13630 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13631
13632         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13633         Drepper's paper.
13634
13635 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
13636
13637         PR bootstrap/47147
13638         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13639         used by NetBSD.
13640
13641 2011-01-28  Ahmad Sharif  <asharif@google.com>
13642
13643         * value-prof.c (check_counter): Corrected error message.
13644
13645 2011-01-29  Jie Zhang  <jie@codesourcery.com>
13646
13647         * config/arm/arm.c (arm_legitimize_reload_address): New.
13648         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13649         arm_legitimize_reload_address.
13650         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
13651
13652 2011-01-28  Ian Lance Taylor  <iant@google.com>
13653
13654         * godump.c (go_define): Ignore macros whose definitions include
13655         two adjacent operands.
13656
13657 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
13658
13659         PR target/42894
13660         * varasm.c (force_const_mem): Store copy of x in desc->constant
13661         instead of x itself.
13662         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13663         itself into REG_EQUAL note.
13664
13665 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
13666
13667         * config/freebsd.opt (posix, rdynamic): New Driver options.
13668
13669 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13670
13671         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13672         -Bstatic/-Bdynamic.
13673         * configure: Regenerate.
13674
13675 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
13676
13677         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13678         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13679
13680 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
13681
13682         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13683         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13684         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13685         (s390_preferred_reload_class): Make static. Change return and
13686         'rclass' argument type to reg_class_t.
13687
13688 2011-01-27  Jan Hubicka  <jh@suse.cz>
13689
13690         PR middle-end/46949
13691         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13692         (process_function_and_variable_attributes): Check defined weakrefs.
13693
13694 2011-01-27  Martin Jambor  <mjambor@suse.cz>
13695
13696         PR tree-optimization/47228
13697         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13698         build_ref_for_offset.
13699
13700 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13701
13702         * config/spu/spu-elf.h (ASM_SPEC): Remove.
13703
13704 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
13705
13706         PR rtl-optimization/46856
13707         * postreload.c (reload_combine_recognize_const_pattern): Do not
13708         separate cc0 setter and user on cc0 targets.
13709
13710 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
13711
13712         PR c/43082
13713         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13714         passed a VOID_TYPE expression, immediately emit an error and
13715         return error_mark_node.
13716
13717 2011-01-26  Jeff Law  <law@redhat.com>
13718
13719         PR rtl-optimization/47464
13720         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13721         rather than may_trap_p as needed.
13722
13723 2011-01-26  DJ Delorie  <dj@redhat.com>
13724
13725         PR rtl-optimization/46878
13726         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13727         setter/user dependency as well.
13728
13729 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13730
13731         PR rtl-optimization/44469
13732         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13733         after removing trivially dead basic blocks.
13734
13735 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13736
13737         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13738         * config/frv/frv.h (LINK_SPEC): Likewise.
13739         * config/i386/netware.h (LINK_SPEC): Likewise.
13740         * config/m68k/linux.h (ASM_SPEC): Likewise.
13741         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13742         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13743         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13744         * config/sparc/linux.h (ASM_SPEC): Likewise.
13745         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13746         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13747
13748 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13749
13750         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13751         * config/frv/frv.h (ASM_SPEC): Likewise.
13752         * config/m68k/linux.h (ASM_SPEC): Likewise.
13753         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13754         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13755         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13756         * config/sparc/linux.h (ASM_SPEC): Likewise.
13757         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13758         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13759
13760 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13761
13762         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13763         * config/frv/frv.h (LINK_SPEC): Likewise.
13764         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13765
13766 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13767
13768         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13769         * config/frv/frv.h (ASM_SPEC): Likewise.
13770         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13771         * config/m68k/linux.h (ASM_SPEC): Likewise.
13772         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13773         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13774         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13775         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13776         * config/sparc/linux.h (ASM_SPEC): Likewise.
13777         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13778         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13779         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13780
13781 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13782
13783         PR target/46997
13784         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13785         (*mux2): Ditto.
13786         (vec_extract_evenodd_help): Ditto.
13787         (vec_extract_evenv4hi): Ditto.
13788         (vec_extract_oddv4hi): Ditto.
13789         (vec_interleave_lowv2si): Ditto.
13790         (vec_interleave_highv2si): Ditto.
13791         (vec_extract_evenv2si): Ditto.
13792         (vec_extract_oddv2si: Ditto.
13793         (vec_pack_trunc_v2si): Ditto.
13794
13795 2011-01-22  Jan Hubicka  <jh@suse.cz>
13796
13797         PR target/47237
13798         * cgraph.h (cgraph_local_info): New field can_change_signature.
13799         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13800         signature can change.
13801         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13802         can change.
13803         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13804         (cgraph_function_versioning): We can not change signature of functions
13805         that don't allow that.
13806         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13807         (lto_input_node): Likewise.
13808         * ipa-inline.c (compute_inline_parameters): Compute
13809         local.can_change_signature.
13810         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13811         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13812         functions that can not change signature.
13813         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13814         init_cumulative_args): Do not use local calling conventions
13815         for functions that can not change signature.
13816
13817 2011-01-22  Jan Hubicka  <jh@suse.cz>
13818
13819         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13820
13821 2011-01-26  Richard Guenther  <rguenther@suse.de>
13822
13823         PR tree-optimization/47190
13824         * cgraphunit.c (process_common_attributes): New function.
13825         (process_function_and_variable_attributes): Use it.
13826
13827 2011-01-26  Richard Guenther  <rguenther@suse.de>
13828
13829         PR lto/47423
13830         * cgraphbuild.c (record_eh_tables): Record reference to personality
13831         function.
13832
13833 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13834
13835         PR debug/45454
13836         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13837         non-debug insns from moving up.
13838
13839 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13840
13841         PR target/40125
13842         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13843         t-dlldir{,-x} fragment for build and add it to tmake_file.
13844         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13845         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13846         * config/i386/t-dlldir: New file.
13847         (SHLIB_DLLDIR): Define.
13848         * config/i386/t-dlldir-x: New file.
13849         (SHLIB_DLLDIR): Define.
13850         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13851         (SHLIB_INSTALL): Use it.
13852
13853 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
13854
13855         PR target/47246
13856         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13857         lower bound of the allowed Thumb-2 coprocessor load/store
13858         index range to -256. Add explaining comment.
13859
13860 2011-01-25  Ian Lance Taylor  <iant@google.com>
13861
13862         * godump.c (go_define): Improve lexing of macro expansion to only
13863         accept expressions which match Go spec.
13864
13865 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13866
13867         PR c++/43601
13868         * tree.c (handle_dll_attribute): Handle it.
13869         * doc/extend.texi (@item dllexport): Mention it.
13870         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13871
13872 2011-01-25  Ian Lance Taylor  <iant@google.com>
13873
13874         PR tree-optimization/26854
13875         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13876         (decl_jump_unsafe): Move higher in file, with no other change.
13877         (bind): Set has_jump_unsafe_decl if appropriate.
13878         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13879         (check_earlier_gotos): Likewise.
13880         (c_check_switch_jump_warnings): Likewise.
13881
13882 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
13883
13884         * doc/invoke.texi (Warning Options): Add missing hyphen.
13885         (-fprofile-dir): Minor grammatical fixes.
13886         (-fbranch-probabilities): Likewise.
13887
13888 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13889
13890         PR debug/45136
13891         PR debug/45130
13892         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13893         debug insns.
13894         (no_real_insns_p, schedule_block, set_priorities): Drop special
13895         treatment of boundary debug insns.
13896         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13897         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13898         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13899         (BOUNDARY_DEBUG_INSN_P): Likewise.
13900         (SCHEDULE_DEBUG_INSN_P): Likewise.
13901         * sched-rgn.c (init_ready_list): Drop special treatment of
13902         boundary debug insns.
13903         * final.c (rest_of_clean-state): Clear notes' BB.
13904
13905 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13906
13907         * Makefile.in (LAMBDA_H): Removed.
13908         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13909         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13910         lambda-trans.o, and tree-loop-linear.o.
13911         (lto-symtab.o): Remove dependence on LAMBDA_H.
13912         (tree-loop-linear.o): Remove rule.
13913         (lambda-mat.o): Same.
13914         (lambda-trans.o): Same.
13915         (lambda-code.o): Same.
13916         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13917         (tree-vect-slp.o): Same.
13918         * hwint.h (gcd): Moved here.
13919         (least_common_multiple): Same.
13920         * lambda-code.c: Removed.
13921         * lambda-mat.c: Removed.
13922         * lambda-trans.c: Removed.
13923         * lambda.h: Removed.
13924         * tree-loop-linear.c: Removed.
13925         * lto-symtab.c: Do not include lambda.h.
13926         * omega.c (gcd): Removed.
13927         * passes.c (init_optimization_passes): Remove pass_linear_transform.
13928         * tree-data-ref.c (print_lambda_vector): Moved here.
13929         (lambda_vector_copy): Same.
13930         (lambda_matrix_copy): Same.
13931         (lambda_matrix_id): Same.
13932         (lambda_vector_first_nz): Same.
13933         (lambda_matrix_row_add): Same.
13934         (lambda_matrix_row_exchange): Same.
13935         (lambda_vector_mult_const): Same.
13936         (lambda_vector_negate): Same.
13937         (lambda_matrix_row_negate): Same.
13938         (lambda_vector_equal): Same.
13939         (lambda_matrix_right_hermite): Same.
13940         * tree-data-ref.h: Do not include lambda.h.
13941         (lambda_vector): Moved here.
13942         (lambda_matrix): Same.
13943         (dependence_level): Same.
13944         (lambda_transform_legal_p): Removed declaration.
13945         (lambda_collect_parameters): Same.
13946         (lambda_compute_access_matrices): Same.
13947         (lambda_vector_gcd): Same.
13948         (lambda_vector_new): Same.
13949         (lambda_vector_clear): Same.
13950         (lambda_vector_lexico_pos): Same.
13951         (lambda_vector_zerop): Same.
13952         (lambda_matrix_new): Same.
13953         * tree-flow.h (least_common_multiple): Removed declaration.
13954         * tree-parloops.c (lambda_trans_matrix): Moved here.
13955         (LTM_MATRIX): Same.
13956         (LTM_ROWSIZE): Same.
13957         (LTM_COLSIZE): Same.
13958         (LTM_DENOMINATOR): Same.
13959         (lambda_trans_matrix_new): Same.
13960         (lambda_matrix_vector_mult): Same.
13961         (lambda_transform_legal_p): Same.
13962         * tree-pass.h (pass_linear_transform): Removed declaration.
13963         * tree-ssa-loop.c (tree_linear_transform): Removed.
13964         (gate_tree_linear_transform): Removed.
13965         (pass_linear_transform): Removed.
13966         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13967         flag_loop_interchange.
13968
13969 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13970
13971         PR tree-optimization/47265
13972         PR tree-optimization/47443
13973         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13974         if name still has some uses.
13975
13976 2011-01-25  Martin Jambor  <mjambor@suse.cz>
13977
13978         PR tree-optimization/47382
13979         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13980         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13981
13982 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
13983
13984         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13985         sjlj_except_unwind_info.
13986
13987 2011-01-25  Richard Guenther  <rguenther@suse.de>
13988
13989         PR tree-optimization/47426
13990         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13991         visible functions results escape.
13992
13993 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13994
13995         PR target/45701
13996         * config/arm/arm.c (any_sibcall_uses_r3): New function.
13997         (arm_get_frame_offsets): Use it.
13998
13999 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14000             Jakub Jelinek  <jakub@redhat.com>
14001
14002         PR tree-optimization/47271
14003         * tree-if-conv.c (bb_postdominates_preds): New.
14004         (if_convertible_bb_p): Call bb_postdominates_preds.
14005         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14006         (predicate_scalar_phi): Call bb_postdominates_preds.
14007
14008 2011-01-25  Nick Clifton  <nickc@redhat.com>
14009
14010         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14011         * config/rx/rx.c (rx_function_value): Likewise.
14012         (rx_promote_function_mode): Likewise.
14013         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14014         in order to make it legitimate.
14015         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14016         make sure that the first operand is the same as the result register.
14017         (addsi3_unspec): Delete.
14018         (subdi3): Do not accept immediate operands.
14019         (subdi3_internal): Likewise.
14020
14021 2011-01-25  Jeff Law  <law@redhat.com>
14022
14023         PR rtl-optimization/37273
14024         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14025         handle them like argument loads from stack slots.  Do not double
14026         count memory for memory constants and argument loads from stack slots.
14027
14028 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14029
14030         PR tree-optimization/47427
14031         PR tree-optimization/47428
14032         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14033         coalesce if the new root var would be TREE_READONLY.
14034
14035 2011-01-25  Richard Guenther  <rguenther@suse.de>
14036
14037         PR middle-end/47414
14038         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14039         correct type for TBAA.
14040
14041 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14042
14043         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14044         (close_phi_written_to_memory): Call for_each_index with
14045         dr_indices_valid_in_loop.
14046
14047 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14048
14049         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14050         when it is initialized.
14051
14052 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14053
14054         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14055         call to graphite_find_data_references_in_stmt.
14056         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14057         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14058         call to graphite_find_data_references_in_stmt.
14059         (analyze_drs_in_stmts): Same.
14060         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14061         in which the scalar analysis of indices is performed.
14062         (create_data_ref): Same.  Update call to dr_analyze_indices.
14063         (find_data_references_in_stmt): Update call to create_data_ref.
14064         (graphite_find_data_references_in_stmt): Same.
14065         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14066         declaration.
14067         (create_data_ref): Same.
14068         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14069         call to create_data_ref.
14070
14071 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14072
14073         * graphite-sese-to-poly.c (build_poly_scop): Move
14074         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14075
14076 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14077
14078         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14079         VAR_DECL, PARM_DECL, and RESULT_DECL.
14080
14081 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14082
14083         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14084         in a reduction PBB.
14085         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14086         that have already been marked as PBB_IS_REDUCTION.
14087
14088 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14089
14090         * graphite-scop-detection.c (same_close_phi_node): New.
14091         (remove_duplicate_close_phi): New.
14092         (make_close_phi_nodes_unique): New.
14093         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14094
14095 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14096
14097         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14098         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14099         of both data references to be the same.
14100
14101 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14102
14103         * graphite-dependences.c (build_lexicographical_constraint): Remove
14104         the gdim parameter.
14105         (build_lexicographical_constraint): Adjust call to
14106         ppl_powerset_is_empty.
14107         (dependence_polyhedron): Same.
14108         (graphite_legal_transform_dr): Same.
14109         (graphite_carried_dependence_level_k): Same.
14110         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14111         parameter.
14112         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14113
14114 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14115
14116         * graphite-sese-to-poly.c
14117         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14118         (close_phi_written_to_memory): New.
14119         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14120         and unshare_expr.
14121
14122 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14123
14124         * doc/install.texi: Update the expected version number of PPL to 0.11.
14125         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14126         #if PPL_VERSION_MINOR < 11.
14127
14128 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14129
14130         * graphite-dependences.c: Include graphite-cloog-util.h.
14131         (new_poly_ddr): Inlined into dependence_polyhedron.
14132         (free_poly_ddr): Moved close by new_poly_ddr.
14133         (dependence_polyhedron_1): Renamed dependence_polyhedron.
14134         Early return NULL when ppl_powerset_is_empty returns true.
14135         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
14136         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
14137         (graphite_legal_transform_dr): Call new_poly_ddr.
14138         (graphite_carried_dependence_level_k): Same.
14139         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
14140         (dot_transformed_deps_stmt_1): Removed.
14141         (dot_deps_stmt_1): Call dot_deps_stmt_2.
14142         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
14143         (dot_deps_1): Call dot_deps_2.
14144         * Makefile.in (graphite-dependences.o): Add missing dependence on
14145         graphite-cloog-util.h.
14146
14147 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14148
14149         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14150         (build_lexicographical_constraint): Same.
14151         (dependence_polyhedron_1): Same.
14152         (graphite_legal_transform_dr): Same.
14153         (graphite_carried_dependence_level_k): Same.
14154         * graphite-ppl.c (ppl_powerset_is_empty): New.
14155         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14156         * tree-data-ref.c (dump_data_reference): Print the basic block index.
14157
14158 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14159
14160         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14161         the "a followed by b" relation and document it.
14162
14163 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14164
14165         * graphite-dependences.c (build_lexicographical_constraint): Stop the
14166         iteration when the bag of constraints is empty.
14167
14168 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14169
14170         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14171
14172 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14173
14174         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14175         nest and two loop depths as parameters.
14176         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14177         lst_perfect_nestify.
14178
14179 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14180
14181         * graphite-dependences.c (print_pddr): Call
14182         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14183
14184 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14185
14186         * graphite-ppl.c (debug_gmp_value): New.
14187         * graphite-ppl.h (debug_gmp_value): Declared.
14188
14189 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
14190
14191         * doc/install.texi: Document availability of cloog-0.16.
14192
14193 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
14194
14195         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14196         invalid postdominance info.
14197
14198 2011-01-24  Jan Hubicka  <jh@suse.cz>
14199
14200         PR c/21659
14201         * doc/extend.texi (weak pragma): Drop claim that it must
14202         appear before definition.
14203         * varasm.c (merge_weak, declare_weak): Only sanity check
14204         that DECL is not output at a time it is declared weak.
14205
14206 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
14207
14208         * machmode.def: Fixed comments.
14209
14210 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
14211
14212         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14213
14214 2011-01-24  Paul Koning  <ni1d@arrl.net>
14215
14216         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14217         WORDS_BIG_ENDIAN.
14218
14219 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14220
14221         PR target/46519
14222         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14223         (block_info): Add scanned and prev.
14224         (move_or_delete_vzeroupper_2): Return if the basic block
14225         has been scanned and the upper 128bit state is unchanged
14226         from the last scan.
14227         (move_or_delete_vzeroupper_1): Return true if the exit
14228         state is changed.
14229         (move_or_delete_vzeroupper): Visit basic blocks using the
14230         work-list based algorithm based on vt_find_locations in
14231         var-tracking.c.
14232
14233         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14234
14235 2011-01-24  Nick Clifton  <nickc@redhat.com>
14236
14237         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14238         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14239         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
14240         then define __v850e1__.
14241         * doc/invoke.texi: Document -mv850es.
14242
14243 2011-01-24  Richard Henderson  <rth@redhat.com>
14244
14245         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14246         compound unordered comparisons.
14247         * config/rx/rx.c (rx_split_fp_compare): Remove.
14248         * config/rx/rx-protos.h: Update.
14249         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14250         (cbranchsf4): Don't call rx_split_fp_compare.
14251         (*cbranchsf4): Use rx_split_cbranch.
14252         (*cmpsf): Don't accept "i" constraint.
14253         (*conditional_branch): Only valid after reload.
14254         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
14255
14256 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14257
14258         PR target/47385
14259         * config/rs6000/altivec.md (vector constant splitters): Add
14260         support for creating vector single precision constants if -mvsx is
14261         used and we would create the constant using Altivec primitives.
14262
14263 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
14264             Richard Sandiford  <rdsandiford@googlemail.com>
14265
14266         PR rtl-optimization/47166
14267         * reload1.c (emit_reload_insns): Disable the spill_reg_store
14268         mechanism for PRE_MODIFY and POST_MODIFY.
14269         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14270         reloadreg.
14271
14272 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
14273
14274         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14275
14276 2011-01-22  Jan Hubicka  <jh@suse.cz>
14277
14278         PR lto/47333
14279         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14280
14281 2011-01-22  Jan Hubicka  <jh@suse.cz>
14282
14283         PR tree-optimization/43884
14284         PR lto/44334
14285         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14286         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14287
14288 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
14289
14290         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14291         * config/s390/s390.c (s390_register_move_cost,
14292         s390_memory_move_cost): New.
14293         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14294
14295 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14296
14297         PR middle-end/47401
14298         * except.c (sjlj_assign_call_site_values): Move setting the
14299         crtl->uses_eh_lsda flag to ...
14300         (sjlj_mark_call_sites): ... here.
14301         (sjlj_emit_function_enter): Support NULL dispatch label.
14302         (sjlj_build_landing_pads): In a function with no landing pads
14303         that still has must-not-throw regions, generate code to register
14304         a personality function with empty LSDA.
14305
14306 2011-01-21  Richard Henderson  <rth@redhat.com>
14307
14308         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14309
14310         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14311
14312         * compare-elim.c: New file.
14313         * Makefile.in (OBJS-common): Add it.
14314         (compare-elim.o): New.
14315         * common.opt (fcompare-elim): New.
14316         * opts.c (default_options_table): Add OPT_fcompare_elim.
14317         * tree-pass.h (pass_compare_elim_after_reload): New.
14318         * passes.c (init_optimization_passes): Add it.
14319         * recog.h: Protect against re-inclusion.
14320         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14321         * doc/invoke.texi (-fcompare-elim): Document it.
14322         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14323         * doc/tm.texi: Rebuild.
14324
14325 2011-01-22  Nick Clifton  <nickc@redhat.com>
14326
14327         * config/rx/rx.md (cstoresf4): Pass comparison operator to
14328         rx_split_fp_compare.
14329
14330 2011-01-22  Nick Clifton  <nickc@redhat.com>
14331
14332         * config/rx/rx.md (UNSPEC_CONST): New.
14333         (deallocate_and_return): Wrap the amount popped off the stack in
14334         an UNSPEC_CONST in order to stop it being rejected by
14335         -mmax-constant-size.
14336         (pop_and_return): Add a "(return)" rtx.
14337         (call): Drop the immediate operand.
14338         (call_internal): Likewise.
14339         (call_value): Likewise.
14340         (call_value_internal): Likewise.
14341         (sibcall_internal): Likewise.
14342         (sibcall_value_internal): Likewise.
14343         (sibcall): Likewise.  Generate an explicit call using
14344         sibcall_internal.
14345         (sibcall_value): Likewise.
14346         (mov<>): FAIL if a constant operand is not legitimate.
14347         (addsi3_unpsec): New pattern.
14348
14349         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14350         (ok_for_max_constant): New function.
14351         (gen_safe_add): New function.
14352         (rx_expand_prologue): Use gen_safe_add.
14353         (rx_expand_epilogue): Likewise.
14354         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
14355         UNSPEC CONSTs.
14356
14357 2011-01-21  Jeff Law  <law@redhat.com>
14358
14359         PR tree-optimization/47053
14360         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14361         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14362         statements are deleted.
14363         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
14364         is nonempty, then purge dead edges and cleanup the CFG.
14365
14366 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14367
14368         PR debug/47402
14369         Temporarily revert:
14370         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14371         PR debug/47106
14372         * tree-dfa.c (create_var_ann): Mark variable as used.
14373
14374 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14375
14376         PR middle-end/45566
14377         * except.c (convert_to_eh_region_ranges): Emit queued no-region
14378         notes from other section in hot/cold partitioning even if
14379         last_action is -3.  Increment call_site_base.
14380
14381         PR rtl-optimization/47366
14382         * fwprop.c (forward_propagate_into): Return bool.  If
14383         any changes are made, -fnon-call-exceptions is used and
14384         REG_EH_REGION note is present, call purge_dead_edges
14385         and return true if it purged anything.
14386         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14387         any EH edges were purged.
14388
14389 2011-01-21  Jeff Law  <law@redhat.com>
14390
14391         PR rtl-optimization/41619
14392         * caller-save.c (setup_save_areas): Break out code to determine
14393         which hard regs are live across calls by examining the reload chains
14394         so that it is always used.
14395         Eliminate code which checked REG_N_CALLS_CROSSED.
14396
14397 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14398
14399         PR tree-optimization/47355
14400         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14401         NOP has non-debug uses beyond PHIs in new_bb.
14402
14403 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14404
14405         PR debug/47106
14406         * cfgexpand.c (account_used_vars_for_block): Only account vars
14407         that are annotated as used.
14408         (estimated_stack_frame_size): Don't set TREE_USED.
14409         * tree-dfa.c (create_var_ann): Mark variable as used.
14410
14411 2011-01-21  Richard Guenther  <rguenther@suse.de>
14412
14413         PR middle-end/47395
14414         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14415
14416 2011-01-21  Richard Guenther  <rguenther@suse.de>
14417
14418         PR tree-optimization/47365
14419         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14420         (vn_reference_lookup_pieces): Adjust.
14421         (vn_reference_lookup): Likewise.
14422         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14423         (vn_reference_lookup_3): Only look through kills if in
14424         VN_WALKREWRITE mode.
14425         (vn_reference_lookup_pieces): Adjust.
14426         (vn_reference_lookup): Likewise.
14427         (visit_reference_op_load): Likewise.
14428         (visit_reference_op_store): Likewise.
14429         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14430         (compute_avail): Likewise.
14431         (eliminate): Likewise.
14432
14433 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14434
14435         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14436         DECL_IGNORED_P non-reg vars if they are used.
14437
14438         PR tree-optimization/47391
14439         * varpool.c (const_value_known_p): Return false if
14440         decl is volatile.
14441
14442 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
14443
14444         PR bootstrap/47215
14445         * config/i386/i386.c (ix86_local_alignment): Handle
14446         case for va_list_type_node is nil.
14447         (ix86_canonical_va_list_type): Likewise.
14448
14449 2011-01-21  Alan Modra  <amodra@gmail.com>
14450
14451         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14452         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14453
14454 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14455
14456         * config/arm/arm.md (define_attr type): Rename f_load
14457         and f_store to f_fpa_load and f_fpa_store. Update.
14458         (write_conflict): Deal with rename fallout.
14459         (*push_fp_multi): Likewise.
14460         * config/arm/fpa.md (f_load): Use f_fpa_load.
14461         (f_store): Use f_fpa_store.
14462         (*movsf_fpa): Likewise.
14463         (*movdf_fpa): Likewise.
14464         (*movxf_fpa): Likewise.
14465         (*thumb2_movsf_fpa): Likewise.
14466         (*thumb2_movdf_fpa): Likewise.
14467         (*thumb2_movxf_fpa): Likewise.
14468         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14469         f_loadd and f_stored.
14470         (*thumb2_movdi_vfp): Likewise.
14471         (*thumb2_movsf_vfp): Fix attribute to f_loads.
14472         (*thumb2_movsi_vfp): Likewise.
14473         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14474         Use f_loads instead of f_load.
14475         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14476
14477 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
14478
14479         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14480         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14481         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14482         (xtensa_mode_dependent_address_p): New function.
14483         (constantpool_address_p): Make static. Change return type to bool.
14484         Change argument type to const_rtx. Use CONST_INT_P predicate.
14485
14486 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
14487
14488         PR debug/46583
14489         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14490
14491 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14492
14493         PR debug/47283
14494         * cfgexpand.c (expand_debug_expr): Instead of generating
14495         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14496         etc. handling.
14497
14498 2011-01-20  Richard Guenther  <rguenther@suse.de>
14499
14500         PR middle-end/47370
14501         * tree-inline.c (remap_gimple_op_r): Recurse manually for
14502         the pointer operand of MEM_REFs.
14503
14504 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14505
14506         PR tree-optimization/46130
14507         * ipa-split.c (consider_split): If return_bb contains non-virtual
14508         PHIs other than for retval or if split_function would not adjust it,
14509         refuse to split.
14510
14511 2011-01-20  Richard Guenther  <rguenther@suse.de>
14512
14513         PR tree-optimization/47167
14514         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14515         Revert previous change, only avoid enumeral type changes.
14516
14517 2011-01-19  Mike Stump  <mikestump@comcast.net>
14518
14519         * doc/tm.texi.in (BRANCH_COST): Englishify.
14520         * doc/tm.texi (BRANCH_COST): Likewise.
14521
14522 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14523
14524         PR c++/47291
14525         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14526         (gen_scheduled_generic_parms_dies): New functions.
14527         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14528         generation for the end of CU compilation.
14529         (dwarf2out_finish): Generate template parameters DIEs here.
14530
14531 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14532
14533         PR debug/46240
14534         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14535         debug bind stmt on merge edges.
14536
14537 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14538
14539         PR debug/47079
14540         PR debug/46724
14541         * function.c (instantiate_expr): Instantiate incoming rtl of
14542         implicit arguments, and recurse on VALUE_EXPRs.
14543         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14544         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14545
14546 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14547
14548         * c-parser.c (c_parser_for_statement): Initialize
14549         collection_expression.
14550
14551 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14552
14553         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14554
14555 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14556
14557         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14558         (LINK_SHLIB_SPEC): Don't use %(link_path).
14559         (SUBTARGET_EXTRA_SPECS): Remove link_path.
14560
14561 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14562
14563         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14564         (NO_SHARED_LIB_SUPPORT): Remove.
14565         (LINK_SHLIB_SPEC): Remove one conditional definition.
14566
14567 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14568
14569         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14570         %{call_shared}.
14571         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14572         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14573         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14574         %{call_shared} and conditionals on these options not being passed.
14575         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14576         %{call_shared}.
14577
14578 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14579
14580         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14581         simplify.
14582
14583         * ipa-split.c: Spelling fixes.
14584
14585 2011-01-19  Richard Henderson  <rth@redhat.com>
14586
14587         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14588         (*mulsi3): Likewise.
14589
14590         * longlong.h [__mn10300__] (count_leading_zeros): New.
14591         [__mn10300__] (umul_ppmm, smul_ppmm): New.
14592         [__mn10300__] (add_ssaaaa, subddmmss): New.
14593         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14594         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14595
14596 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14597
14598         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14599
14600 2011-01-19  Richard Henderson  <rth@redhat.com>
14601
14602         * config/mn10300/mn10300.md (addsi3_flags): New.
14603         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14604         (subsi3_flags, subc_internal, subdi3): New.
14605         (subdi3_internal, *subdi3_degenerate): New.
14606         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14607
14608         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14609         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14610         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
14611         * config/mn10300/mn10300-protos.h: Update.
14612         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14613         (return_ret): Likewise.  Rename from return_internal_regs.
14614         (return_internal): Remove.
14615
14616         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14617         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14618         (mn10300_legitimate_constant_p): Likewise.
14619         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14620         (mn10300_frame_size): New.
14621         (mn10300_expand_prologue): Use it.
14622         (mn10300_expand_epilogue): Likewise.
14623         (mn10300_initial_offset): Likewise.
14624         * config/mn10300/mn10300-protos.h: Update.
14625         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14626         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14627         (prologue, epilogue, return_internal): Tidy output code.
14628         (mn10300_store_multiple_operation, return): Likewise.
14629         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14630         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14631         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14632         (load_pic, am33_load_pic): New.
14633         (mn10300_load_pic0, mn10300_load_pic1): New.
14634
14635         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14636         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14637         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14638         (cc_flags_for_mode, cc_flags_for_code): New.
14639         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14640         overflow flag is not valid.  Validate that the flags we need
14641         for the comparison are valid.
14642         (mn10300_output_cmp): Remove.
14643         (mn10300_output_add): New.
14644         (mn10300_select_cc_mode): Use cc_flags_for_code.
14645         (mn10300_split_cbranch): New.
14646         (mn10300_match_ccmode): New.
14647         (mn10300_split_and_operand_count): New.
14648         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14649         to the function.
14650         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14651         (addsi3): ... here.  Use mn10300_output_add.
14652         (*addsi3_flags): New.
14653         (*am33_subsi3, *mn10300_subsi3): Merge...
14654         (subsi3): ... here.  Use attribute isa.
14655         (*subsi3_flags): New.
14656         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
14657         when possible.
14658         (*am33_andsi3, *mn10300_andsi3): Merge...
14659         (andsi3): ... here.
14660         (*andsi3_flags): New.
14661         (andsi3 splitters): New.
14662         (*am33_iorsi3, *mn10300_iorsi3): Merge...
14663         (iorsi3): ... here.
14664         (*iorsi3_flags): New.
14665         (*am33_xorsi3, *mn10300_xorsi3): Merge...
14666         (xorsi3): ... here.
14667         (*xorsi3_flags): New.
14668         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14669         (one_cmplsi2): ... here.
14670         (*one_cmplsi2_flags): New.
14671         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
14672         instead of "dax" in constraints.  Use mn10300_split_cbranch.
14673         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
14674         use matching constraints to eliminate a self-comparison.
14675         (*integer_conditional_branch): Rename from integer_conditional_branch.
14676         Use int_mode_flags to match CC_REG.
14677         (*cbranchsi4_btst, *btstsi): New.
14678         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
14679         mn10300_split_cbranch.
14680         (*am33_cmpsf): Rename from am33_cmpsf.
14681         (*float_conditional_branch): Rename from float_conditional_branch.
14682         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14683         (zero_extendqisi2): ... here.
14684         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14685         (zero_extendhisi2): ... here.
14686         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14687         (extendqisi2): ... here.
14688         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14689         (extendhisi2): ... here.
14690         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14691         (ashlsi3): ... here.
14692         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14693         (lshrsi3): ... here.
14694         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14695         (ashrsi3): ... here.
14696         (consecutive add peephole): Remove.
14697         * config/mn10300/predicates.md (label_ref_operand): New.
14698         (int_mode_flags): New.
14699         (CCZN_comparison_operator): New.
14700
14701         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14702         (throughput_42_latency_43): New reservation.
14703         (mulsidi3, umulsidi3): New expanders.
14704         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
14705         the MDR register to allocation; separately allocate the low and
14706         high parts of the DImode result.
14707         (umulsidi3_internal): Similarly.
14708         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14709         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
14710         (udivsi3, umodsi3): Remove.
14711         (udivmodsi4, divmodsi4): New expanders.
14712         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
14713         (*divmodsi4): Simiarly.
14714         (ext_internal): New.
14715
14716         * config/mn10300/constraints.md ("z"): New constraint.
14717         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14718         (FIXED_REGISTERS): Don't fix MDR.
14719         (CALL_USED_REGSITERS): Reformat nicely.
14720         (REG_ALLOC_ORDER): Add MDR.
14721         (enum regclass): Add MDR_REGS.
14722         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14723         (IRA_COVER_CLASSES): Add MDR_REGS.
14724         (REGNO_REG_CLASS): Handle MDR_REG.
14725         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14726         (mn10300_register_move_cost): Likewise.
14727         * config/mn10300/mn10300.md (MDR_REG): New.
14728         (*movsi_internal): Handle moves to/from MDR_REGS.
14729
14730         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14731         POST_MODIFY.
14732         (mn10300_secondary_reload): Tidy combination reload classes.
14733         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14734         addresses for AM33.  Allow symbolic offsets for reg+imm.
14735         (mn10300_regno_in_class_p): New.
14736         (mn10300_legitimize_reload_address): New.
14737         * config/mn10300/mn10300.h (enum reg_class): Remove
14738         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14739         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14740         SP_OR_GENERAL_REGS.
14741         (REG_CLASS_NAMES): Update to match.
14742         (REG_CLASS_CONTENTS): Likewise.
14743         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14744         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14745         (REGNO_IN_RANGE_P): Remove.
14746         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14747         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14748         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14749         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14750         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14751         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14752         (REGNO_GENERAL_P): New.
14753         (HAVE_POST_MODIFY_DISP): New.
14754         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14755         (LEGITIMIZE_RELOAD_ADDRESS): New.
14756         * config/mn10300/mn10300-protos.h: Update.
14757
14758         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14759         DATA_REGS for AM33 stack-pointer destination.
14760         (mn10300_preferred_output_reload_class): Likewise.
14761         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14762         into a form appropriate for ...
14763         (TARGET_SECONDARY_RELOAD): New.
14764         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14765         * config/mn10300/mn10300-protos.h: Update.
14766         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14767         reload_insi; use the "A" constraint for the scratch; handle AM33
14768         moves of sp to non-address registers.
14769
14770         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14771         (*movqi_internal): ... here.
14772         (*am33_movhi, *mn10300_movhi): Merge into...
14773         (*movhi_internal): ... here.
14774         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14775         as the source/destination of moves from/to SP.
14776         (movsf): Only allow for AM33-2.
14777         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14778         any integer constant constraint.  Only allow for AM33-2.  Tidy
14779         all of the alternative outputs.
14780         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14781         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14782         for MN103.
14783         (udivsi3, umodsi3): New patterns for MN103 only.
14784
14785 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14786
14787         * doc/tm.texi.in: Spell out that a lack of register class unions
14788         can lead to ICEs.
14789         * doc/tm.texi: Regenerate.
14790
14791 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14792
14793         PR rtl-optimization/47337
14794         * dce.c (check_argument_store): New function.
14795         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14796
14797         PR tree-optimization/47290
14798         * tree-eh.c (infinite_empty_loop_p): New function.
14799         (cleanup_empty_eh): Use it.
14800
14801 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14802
14803         PR target/46997
14804         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14805         (a64_expand_widen_sum): Ditto.
14806         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14807         (vec_extract_evenodd_help): Ditto.
14808         (vec_extract_evenv4hi): Ditto.
14809         (vec_extract_oddv4hi): Ditto.
14810         (vec_extract_evenv2si): Ditto.
14811         (vec_extract_oddv2si): Ditto.
14812         (vec_extract_evenv2sf): Ditto.
14813         (vec_extract_oddv2sf): Ditto.
14814         (vec_pack_trunc_v4hi: Ditto.
14815         (vec_pack_trunc_v2si): Ditto.
14816         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14817         (vec_interleave_highv8qi): Ditto.
14818         (mix1_r): Ditto.
14819         (vec_extract_oddv8qi): Ditto.
14820         (vec_interleave_lowv4hi): Ditto.
14821         (vec_interleave_highv4hi): Ditto.
14822         (vec_interleave_lowv2si): Ditto.
14823         (vec_interleave_highv2si): Ditto.
14824
14825 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14826
14827         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14828         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14829         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14830         (pa_c_mode_for_suffix): New.
14831         (TARGET_EXPAND_BUILTIN): Define.
14832         (TARGET_C_MODE_FOR_SUFFIX): Define.
14833         (pa_builtins): Define.
14834         (pa_init_builtins): Register __float128 type and init new support
14835         builtins.
14836         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14837         * config/pa/quadlib.c (_U_Qfcopysign): New.
14838
14839 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14840
14841         PR middle-end/46894
14842         * explow.c (allocate_dynamic_stack_space): Do not assume more than
14843         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14844         are defined.
14845
14846 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14847
14848         PR tree-optimization/47179
14849         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14850         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14851
14852 2011-01-18  Richard Guenther  <rguenther@suse.de>
14853
14854         PR rtl-optimization/47216
14855         * emit-rtl.c: Include tree-flow.h.
14856         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14857         of replicating it with different semantics.
14858         * Makefile.in (emit-rtl.o): Adjust.
14859
14860 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14861
14862         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
14863         (cortex_a9_dp): Handle neon types correctly.
14864
14865 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
14866
14867         PR rtl-optimization/47299
14868         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
14869         subtarget.  Use normal multiplication if both operands are constants.
14870         * expmed.c (expand_widening_mult): Don't try to optimize constant
14871         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
14872         before using it.
14873
14874 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14875
14876         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
14877         spacing after 'e.g.', typos, comma, hyphenation.
14878
14879 2011-01-17  Richard Henderson  <rth@redhat.com>
14880
14881         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14882         (rx_restricted_mem_operand): New.
14883         (rx_shift_operand): Use register_operand.
14884         (rx_source_operand, rx_compare_operand): Likewise.
14885         * config/rx/rx.md (addsi3_flags): New expander.
14886         (adddi3): Rewrite as expander.
14887         (adc_internal, *adc_flags, adddi3_internal): New patterns.
14888         (subsi3_flags): New expander.
14889         (subdi3): Rewrite as expander.
14890         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14891
14892         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14893         (rx_init_builtins): Remove sat builtin.
14894         (rx_expand_builtin): Likewise.
14895         * config/rx/rx.md (ssaddsi3): New.
14896         (*sat): Rename from sat.  Represent the CC_REG input.
14897
14898         * config/rx/predicates.md (rshift_operator): New.
14899         * config/rx/rx.c (rx_expand_insv): Remove.
14900         * config/rx/rx-protos.h: Update.
14901         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
14902         operand to the canonical position.
14903         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14904         (*bitclr, *bitclr_in_memory): Similarly.
14905         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14906         (insv): Retain the zero_extract in the expansion.
14907
14908         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14909         (bswaphi2, bitinvert, revw): Likewise.
14910
14911         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14912         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14913         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14914         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14915         (bitset, bitset_in_memory): Likewise.
14916         (bitinvert, bitinvert_in_memory): Likewise.
14917         (bitclr, bitclr_in_memory): Likewise.
14918         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14919         (rx_strend, rx_cmpstrn): Likewise.
14920         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
14921         (bitop peep2 patterns): Remove.
14922
14923         * config/rx/rx.c (rx_match_ccmode): New.
14924         * config/rx/rx-protos.h: Update.
14925         * config/rx/rx.md (abssi2): Clobber, don't set flags.
14926         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14927         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14928         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14929         (fix_truncsfsi2, floatsisf2): Likewise.
14930         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14931         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14932         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14933         (*subsi3_flags, *xorsi3_flags): New.
14934
14935         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14936
14937         * config/rx/rx.c (rx_print_operand): Remove workaround for
14938         unsplit comparison operations.
14939
14940         * config/rx/rx.md (movsicc): Split after reload.
14941         (*movsicc): Merge *movsieq and *movsine via match_operator.
14942         (*stcc): New pattern.
14943
14944         * config/rx/rx.c (rx_float_compare_mode): Remove.
14945         * config/rx/rx.h (rx_float_compare_mode): Remove.
14946         * config/rx/rx.md (cstoresi4): Split after reload.
14947         (*sccc): New pattern.
14948
14949         * config/rx/predicates.md (label_ref_operand): New.
14950         (rx_z_comparison_operator): New.
14951         (rx_zs_comparison_operator): New.
14952         (rx_fp_comparison_operator): New.
14953         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14954         Validate that the flags are set properly for the comparison.
14955         (rx_gen_cond_branch_template): Remove.
14956         (rx_cc_modes_compatible): Remove.
14957         (mode_from_flags): New.
14958         (flags_from_code): Rename from flags_needed_for_conditional.
14959         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14960         (rx_select_cc_mode): Likewise.
14961         (rx_split_fp_compare): New.
14962         (rx_split_cbranch): New.
14963         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14964         (*cbranchsi4): Use match_operator and rx_split_cbranch.
14965         (*cbranchsf4): Similarly.
14966         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
14967         match_operator and rx_split_cbranch.
14968         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14969         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
14970         (*cmpsi): Rename from cmpsi.
14971         (*tstsi): Rename from tstsi.
14972         (*cmpsf): Rename from cmpsf; use CC_Fmode.
14973         (*conditional_branch): Rename from conditional_branch.
14974         (*reveresed_conditional_branch): Remove.
14975         (b<code>): Remove expander.
14976         * config/rx/rx-protos.h: Update.
14977
14978         * config/rx/rx.c (rx_compare_redundant): Remove.
14979         * config/rx/rx.md (cmpsi): Don't use it.
14980         * config/rx/rx-protos.h: Update.
14981
14982         * config/rx/rx-modes.def (CC_F): New mode.
14983         * config/rx/rx.c (rx_select_cc_mode): New.
14984         * config/rx/rx.h (SELECT_CC_MODE): Use it.
14985         * config/rx/rx-protos.h: Update.
14986
14987 2011-01-17  Richard Henderson  <rth@redhat.com>
14988
14989         * except.c (dump_eh_tree): Fix stray ; after for statement.
14990
14991 2011-01-17  Richard Guenther  <rguenther@suse.de>
14992
14993         PR tree-optimization/47313
14994         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14995         handling before copying the body.  Properly deal with
14996         by-reference result in SSA form.
14997
14998 2011-01-17  Ian Lance Taylor  <iant@google.com>
14999
15000         PR target/47219
15001         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15002         (struct_value_alias_set): Don't define.
15003         (sparc_option_override): Don't set sparc_sr_alias_set and
15004         struct_value_alias_set.
15005         (save_or_restore_regs): Use gen_frame_mem rather than calling
15006         set_mem_alias_set.
15007         (sparc_struct_value_rtx): Likewise.
15008
15009 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15010
15011         PR target/47318
15012         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15013         (_mm_maskstore_pd): Likewise.
15014         (_mm_maskload_ps): Likewise.
15015         (_mm_maskstore_ps): Likewise.
15016         (_mm256_maskload_pd): Change mask to __m256i.
15017         (_mm256_maskstore_pd): Likewise.
15018         (_mm256_maskload_ps): Likewise.
15019         (_mm256_maskstore_ps): Likewise.
15020
15021         * config/i386/i386-builtin-types.def: Updated.
15022         (ix86_expand_special_args_builtin): Likewise.
15023
15024         * config/i386/i386.c (bdesc_special_args): Update
15025         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15026         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15027         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15028         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15029
15030         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15031         Use <avxpermvecmode> on mask register.
15032         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15033
15034 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15035             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15036             Eric Botcazou  <ebotcazou@adacore.com>
15037
15038         PR target/46655
15039         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15040         if <= USHRT_MAX in 32-bit mode.
15041
15042 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15043
15044         * doc/install.texi (Configuration, Specific): Wrap long
15045         lines in examples.  Allow line wrapping in long options
15046         and URLs where beneficial for PDF output.
15047
15048 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15049
15050         * config/mips/mips.c (mips_classify_symbol): Don't return
15051         SYMBOL_PC_RELATIVE for nonlocal labels.
15052
15053 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15054
15055         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15056
15057 2011-01-15  Jan Hubicka  <jh@suse.cz>
15058
15059         PR tree-optimization/47276
15060         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15061         declarations as needed.
15062
15063 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15064
15065         * common.opt (fdevirtualize): New flag.
15066         * doc/invoke.texi (Option Summary): Document it.
15067         * opts.c (default_options_table): Add devirtualize flag.
15068         * ipa-prop.c (detect_type_change): Return immediately if
15069         devirtualize flag is not set.
15070         (detect_type_change_ssa): Likewise.
15071         (compute_known_type_jump_func): Likewise.
15072         (ipa_analyze_virtual_call_uses): Likewise.
15073
15074 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15075
15076         PR tree-optimization/45934
15077         PR tree-optimization/46302
15078         * ipa-prop.c (type_change_info): New type.
15079         (stmt_may_be_vtbl_ptr_store): New function.
15080         (check_stmt_for_type_change): Likewise.
15081         (detect_type_change): Likewise.
15082         (detect_type_change_ssa): Likewise.
15083         (compute_complex_assign_jump_func): Check for dynamic type change.
15084         (compute_complex_ancestor_jump_func): Likewise.
15085         (compute_known_type_jump_func): Likewise.
15086         (compute_scalar_jump_functions): Likewise.
15087         (ipa_analyze_virtual_call_uses): Likewise.
15088         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15089
15090 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15091
15092         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15093         * config/i386/i386.opt (msse5): New Alias.
15094
15095 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15096
15097         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15098         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15099         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15100         * config/sparc/sparc.h (CC1_SPEC): Likewise.
15101
15102 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15103
15104         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15105         -mcpu options.
15106         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15107         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15108         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15109         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15110         Likewise.
15111         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15112
15113 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15114
15115         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15116
15117 2011-01-14  Mike Stump  <mikestump@comcast.net>
15118
15119         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15120         * config/fr30/fr30.md: Likweise
15121         (movsi_push): Likewise.
15122         (movsi_pop): Likewise.
15123         (enter_func): Likewise.
15124         * config/moxie/moxie.md (movsi_push): Likewise.
15125         (movsi_pop): Likewise.
15126
15127 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15128
15129         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15130         %{no_archive} %{exact_version}.
15131         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15132         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15133         %{no_archive} %{exact_version}.
15134         * config/mips/openbsd.h (LINK_SPEC): Likewise.
15135         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15136         * config/mips/vxworks.h: Likewise.
15137
15138 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15139
15140         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15141
15142 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15143
15144         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15145         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15146
15147 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15148
15149         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15150         -nodefaultlib.
15151
15152 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15153
15154         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15155         for mcpu not cpu.
15156         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15157         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15158         not cpu.
15159         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15160         Don't handle -shlib.
15161
15162 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15163
15164         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15165         (CC1_SPEC): Don't handle -profile.
15166
15167 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15168
15169         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15170         * config/mips/mips.h (CC1_SPEC): Likewise.
15171
15172 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15173
15174         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15175         * config/mips/mips.h (CC1_SPEC): Likewise.
15176
15177 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15178
15179         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15180         * config/m32r/linux.h (LINK_SPEC): Likewise.
15181         * config/mips/linux.h (LINK_SPEC): Likewise.
15182         * config/mips/linux64.h (LINK_SPEC): Likewise.
15183         * config/sparc/linux.h (LINK_SPEC): Likewise.
15184         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15185         LINK_SPEC): Likewise.
15186         * config/xtensa/linux.h (LINK_SPEC): Likewise.
15187
15188 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15189
15190         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15191         %{version:-v}.
15192         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15193
15194 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15195
15196         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15197         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15198
15199 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15200
15201         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15202
15203 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15204
15205         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15206         supports -Bstatic/-Bdynamic.
15207         * configure: Regenerate.
15208
15209 2011-01-14  Jan Hubicka  <jh@suse.cz>
15210             Jack Howarth  <howarth@bromo.med.uc.edu>
15211
15212         PR target/46037
15213         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15214         when checking debug_info_level. Test write_symbols instead of
15215         debug_hooks->var_location when setting flag_var_tracking_uninit.
15216
15217 2011-01-14  Richard Guenther  <rguenther@suse.de>
15218
15219         PR tree-optimization/47179
15220         * target.def (ref_may_alias_errno): New target hook.
15221         * targhooks.h (default_ref_may_alias_errno): Declare.
15222         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15223         (default_ref_may_alias_errno): New function.
15224         * target.h (struct ao_ref_s): Declare.
15225         * tree-ssa-alias.c: Include target.h.
15226         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15227         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15228         (targhooks.o): Likewise.
15229         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15230         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15231
15232 2011-01-14  Richard Guenther  <rguenther@suse.de>
15233
15234         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
15235
15236 2011-01-14  Richard Guenther  <rguenther@suse.de>
15237
15238         PR tree-optimization/47280
15239         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15240         return CFG changes.
15241         (tree_ssa_forward_propagate_single_use_vars): Deal with
15242         CFG changes from associate_plusminus.
15243
15244 2011-01-14  Richard Guenther  <rguenther@suse.de>
15245
15246         PR middle-end/47281
15247         Revert
15248         2011-01-11  Richard Guenther  <rguenther@suse.de>
15249
15250         PR tree-optimization/46076
15251         * tree-ssa.c (useless_type_conversion_p): Conversions from
15252         unprototyped to empty argument list function types are useless.
15253
15254 2011-01-14  Richard Guenther  <rguenther@suse.de>
15255
15256         PR tree-optimization/47286
15257         * tree-ssa-structalias.c (new_var_info): Register variables are global.
15258
15259 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15260
15261         PR middle-end/46823
15262         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15263
15264 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
15265
15266         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15267         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15268         * config/xtensa/xtensa.c (xtensa_libcall_value,
15269         xtensa_function_value_regno_p): New functions.
15270         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15271
15272 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
15273
15274         PR c++/47213
15275         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15276         PE specific hook.
15277         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15278         New function prototype.
15279         * config/i386/winnt.c (i386_pe_assemble_visibility):
15280         Warn only if attribute was specified by user.
15281
15282 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15283
15284         PR target/47251
15285         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15286         floating point.
15287         (floatunsdidf2_fcfidu): Ditto.
15288
15289 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15290
15291         * config/s390/s390.c (print_operand_address): Replace 'error' with
15292         'output_operand_lossage'.
15293         (print_operand): Likewise.
15294
15295 2011-01-13  Jeff Law  <law@redhat.com>
15296
15297         PR rtl-optimization/39077
15298         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15299         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15300         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15301         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15302         * gcse.c (prune_insertions_deletions): New function.
15303         (compute_pre_data): Use it.
15304
15305 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
15306
15307         PR debug/PR46973
15308         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15309         static function.
15310         (prune_unused_types_mark): Use it.
15311
15312 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
15313
15314         PR rtl-optimization/45352
15315         * sel-sched.c: Update copyright years.
15316         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15317         in the advancing loop when we have issued issue_rate insns.
15318
15319 2011-01-12  Richard Henderson  <rth@redhat.com>
15320
15321         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15322         (TARGET_MD_ASM_CLOBBERS): New.
15323
15324         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15325         (TARGET_DELEGITIMIZE_ADDRESS): New.
15326
15327         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15328         (clzsi2, *bsch): New patterns.
15329
15330         * config/mn10300/mn10300.md (INT): New mode iterator.
15331         (*mov<INT>_clr): New pattern, and peep2 to generate it.
15332
15333         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15334         flag_split_wide_types.
15335
15336         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15337         (mn10300_trampoline_init): Rewrite without a template, an immediate
15338         load and a direct branch.
15339         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15340
15341 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
15342
15343         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15344         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15345         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15346         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15347
15348 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
15349
15350         PR debug/47209
15351         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15352         of type.
15353
15354 2011-01-12  Jan Hubicka  <jh@suse.cz>
15355
15356         PR driver/47244
15357         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15358         (PLUGIN_COND_CLOSE): New macro.
15359         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15360
15361 2011-01-12  Richard Guenther  <rguenther@suse.de>
15362
15363         PR lto/47259
15364         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15365         register variables in a MEM_REF.
15366
15367 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
15368
15369         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15370         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15371         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15372         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15373         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15374         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15375         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15376         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15377         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15378         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15379         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15380         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15381         * config/gnu-user.h: New.  Copied from linux.h.
15382         (LINUX_TARGET_STARTFILE_SPEC): Rename to
15383         GNU_USER_TARGET_STARTFILE_SPEC.
15384         (LINUX_TARGET_ENDFILE_SPEC): Rename to
15385         GNU_USER_TARGET_ENDFILE_SPEC.
15386         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15387         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15388         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15389         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15390         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15391         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15392         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15393         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15394         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15395         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15396         * config/arm/linux-eabi.h (CC1_SPEC): Use
15397         GNU_USER_TARGET_CC1_SPEC.
15398         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15399         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15400         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15401         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15402         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15403         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15404         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15405         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15406
15407 2011-01-12  Richard Guenther  <rguenther@suse.de>
15408
15409         PR other/46946
15410         * doc/invoke.texi (ffast-math): Document it is turned on
15411         with -Ofast.
15412
15413 2011-01-12  Jan Hubicka  <jh@suse.cz>
15414
15415         PR tree-optimization/47233
15416         * opts.c (common_handle_option): Disable ipa-reference with profile
15417         feedback.
15418
15419 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15420
15421         * c-parser.c (c_parser_objc_at_property_declaration): Improved
15422         error message.
15423
15424 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15425
15426         * c-parser.c (c_lex_one_token): Updated and reindented some
15427         comments.  No changes in code.
15428
15429 2011-01-11  Ian Lance Taylor  <iant@google.com>
15430
15431         * godump.c (go_output_var): Don't output the variable if there is
15432         already a type with the same name.
15433
15434 2011-01-11  Ian Lance Taylor  <iant@google.com>
15435
15436         * godump.c (go_format_type): Don't generate float80.
15437
15438 2011-01-11  Richard Henderson  <rth@redhat.com>
15439
15440         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15441         declaration.  Rewrite for both speed and size.
15442         (mn10300_address_cost_1): Remove.
15443         (mn10300_register_move_cost): New.
15444         (mn10300_memory_move_cost): New.
15445         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
15446         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
15447         extensions, shifts, BSWAP, CLZ.
15448         (mn10300_wide_const_load_uses_clr): Remove.
15449         (TARGET_REGISTER_MOVE_COST): New.
15450         (TARGET_MEMORY_MOVE_COST): New.
15451         * config/mn10300/mn10300-protos.h: Update.
15452         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15453
15454         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15455         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15456         * config/mn10300/mn10300-protos.h: Update.
15457         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15458         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15459         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15460         (*test_int_bitfield, *test_byte_bitfield): Remove.
15461         (*bit_test, *subreg_bit_test): Remove.
15462         * config/mn10300/predicates.md (const_8bit_operand): Remove.
15463
15464         * config/mn10300/constraints.md ("c"): Rename from "A".
15465         ("A", "D"): New constraint letters.
15466         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15467         (fmssf4, fnmasf4, fnmssf4): Likewise.
15468
15469         * config/mn10300/mn10300.md (isa): New attribute.
15470         (enabled): New attribute.
15471
15472         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15473         (abssf2, negsf2): Define only for hardware fp.
15474         (sqrtsf2): Reformat.
15475         (addsf3, subsf3, mulsf3): Merge expander and insn.
15476
15477         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15478         (DEBUGGER_AUTO_OFFSET): Remove.
15479         (DEBUGGER_ARG_OFFSET): Remove.
15480
15481         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15482         Emit register stores with the same offsets as the hardware.
15483         (mn10300_store_multiple_operation): Don't check that the register
15484         save offsets are monotonic.
15485         * config/mn10300/mn10300-protos.h: Update.
15486
15487         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15488
15489         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15490         in terms of the value on the stack, not the MDR register.
15491
15492 2011-01-11  Jan Hubicka  <jh@suse.cz>
15493
15494         PR lto/45721
15495         PR lto/45375
15496         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15497         (symbol_alias_set_destroy, symbol_alias_set_contains,
15498         propagate_aliases_backward): Declare.
15499         * lto-streamer-out.c (struct sets): New sturcture.
15500         (trivally_defined_alias): New function.
15501         (output_alias_pair_p): Rewrite.
15502         (output_unreferenced_globals): Fix output of alias pairs.
15503         (produce_symtab): Likewise.
15504         * ipa.c (function_and_variable_visibility): Set weak alias destination
15505         as needed in lto.
15506         * varasm.c (symbol_alias_set_t): Remove.
15507         (symbol_alias_set_destroy): Export.
15508         (propagate_aliases_forward, propagate_aliases_backward): New functions
15509         based on ...
15510         (compute_visible_aliases): ... this one; remove.
15511         (trivially_visible_alias): New
15512         (trivially_defined_alias): New.
15513         (remove_unreachable_alias_pairs): Rewrite.
15514         (finish_aliases_1): Reorganize code checking if alias is defined.
15515         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15516         in LTO mode.
15517
15518 2011-01-11  Richard Guenther  <rguenther@suse.de>
15519
15520         PR tree-optimization/46076
15521         * tree-ssa.c (useless_type_conversion_p): Conversions from
15522         unprototyped to empty argument list function types are useless.
15523
15524 2011-01-11  Richard Guenther  <rguenther@suse.de>
15525
15526         PR middle-end/45235
15527         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15528         volatile MEMs as MEM_READONLY_P.
15529
15530 2011-01-11  Richard Guenther  <rguenther@suse.de>
15531
15532         PR tree-optimization/47239
15533         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15534
15535 2011-01-11  Jeff Law  <law@redhat.com>
15536
15537         PR tree-optimization/47086
15538         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15539         IVs from statements that might throw.
15540
15541 2011-01-10  Jan Hubicka  <jh@suse.cz>
15542
15543         PR lto/45375
15544         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15545
15546 2011-01-10  Jan Hubicka  <jh@suse.cz>
15547
15548         PR lto/45375
15549         * profile.c (read_profile_edge_counts): Ignore profile inconistency
15550         when correcting profile.
15551
15552 2011-01-10  Jan Hubicka  <jh@suse.cz>
15553
15554         PR lto/46083
15555         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15556         DECL_FINI_PRIORITY.
15557         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15558         Restore DECL_FINI_PRIORITY.
15559
15560 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15561
15562         * doc/gimple.texi: Fix quoting of multi-word return values in
15563         @deftypefn statements.  Ensure presence of return value.  Wrap
15564         overlong @deftypefn lines.
15565         (is_gimple_operand, is_gimple_min_invariant_address): Remove
15566         descriptions of removed functions.
15567         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15568         of multi-word return value in @deftypefn statement.
15569
15570 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15571
15572         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15573         (Conditional Expressions, Logical Operators)
15574         (Statement and operand traversals): Do not indent smallexample
15575         code.  Fix duplicate function argument in example.
15576
15577 2011-01-10  Jeff Law  <law@redhat.com>
15578
15579         PR tree-optimization/47141
15580         * ipa-split.c (split_function): Handle case where we are
15581         returning a value and the return block has a virtual operand phi.
15582
15583 2011-01-10  Jan Hubicka  <jh@suse.cz>
15584
15585         PR tree-optimization/47234
15586         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15587         (pass_feedback_split_functions): Declare.
15588         * passes.c (init_optimization_passes): Add ipa-split as subpass of
15589         tree-profile.
15590         * ipa-split.c (gate_split_functions): Update comments; disable
15591         split-functions for profile_arc_flag and branch_probabilities.
15592         (gate_feedback_split_functions): New function.
15593         (execute_feedback_split_functions): New function.
15594         (pass_feedback_split_functions): New global var.
15595
15596 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15597
15598         PR lto/46760
15599         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15600         calling gimple_call_set_cannot_inline.
15601
15602 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
15603
15604         * config/darwin-sections.def: Remove unused section.
15605
15606 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
15607
15608         PR c++/47218
15609         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15610
15611 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15612
15613         PR objc/47232
15614         * c-parser.c (c_parser_declaration_or_fndef): Improved
15615         error message.
15616
15617 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
15618
15619         * config/i386/winnt.c (i386_pe_start_function): Make sure
15620         to switch back to function's section.
15621
15622 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
15623
15624         PR gcc/46902
15625         PR testsuite/46912
15626         * plugin.c: Move include of dlfcn.h from here...
15627         * system.h: ... to here.
15628
15629 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15630
15631         * doc/cpp.texi (C++ Named Operators): Fix markup for header
15632         file name.
15633         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15634         two extra empty pages in PDF output.
15635
15636 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
15637
15638         PR objc/47078
15639         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15640         for error recovery purposes behave as if it was not specified so
15641         that the default type is usd.
15642
15643 2011-01-07  Jan Hubicka  <jh@suse.cz>
15644
15645         PR tree-optmization/46469
15646         * ipa.c (function_and_variable_visibility): Clear needed flags on
15647         nodes with external decls; handle weakrefs merging correctly.
15648
15649 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
15650
15651         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15652         not false.
15653
15654 2011-01-07  Jan Hubicka  <jh@suse.cz>
15655
15656         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
15657         and no longer claim that gold is required for linker plugin.
15658         * configure: Regenerate.
15659         * gcc.c (PLUGIN_COND): New macro.
15660         (LINK_COMMAND_SPEC): Use it.
15661         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15662         * config.in (HAVE_LTO_PLUGIN): New.
15663         * configure.ac (--with-lto-plugin): New parameter; autodetect
15664         HAVE_LTO_PLUGIN.
15665
15666 2011-01-07  Jan Hubicka  <jh@suse.cz>
15667
15668         PR tree-optimization/46367
15669         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15670         when we can update original.
15671         (cgraph_mark_inline_edge): Sanity check.
15672         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15673
15674 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15675
15676         * config/spu/spu.h (ASM_COMMENT_START): Define.
15677
15678 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15679
15680         PR driver/42445
15681         * gcc.c (%>S): New.
15682         (SWITCH_KEEP_FOR_GCC): Likewise.
15683         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15684         (do_spec_1): Handle "%>".
15685
15686         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15687
15688 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
15689
15690         PR target/47201
15691         * config/i386/i386.c (ix86_delegitimize_address): If
15692         simplify_gen_subreg fails, return orig_x.
15693
15694         PR bootstrap/47187
15695         * value-prof.c (gimple_stringop_fixed_value): Handle
15696         lhs of the call properly.
15697
15698 2011-01-07  Jan Hubicka  <jh@suse.cz>
15699
15700         PR lto/45375
15701         * lto-opt.c (lto_reissue_options): Set flag_shlib.
15702
15703 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15704
15705         * target.def (function_switched_text_sections): New hook.
15706         * doc/tm.texi: Regenerated.
15707         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15708         * final.c (default_function_switched_text_sections): New.
15709         (final_scan_insn): Call function_switched_text_sections when a
15710         mid-function section change occurs.
15711         * output.h (default_function_switched_text_sections): Declare.
15712         * config/darwin-protos.h (darwin_function_switched_text_sections):
15713         Likewise.
15714         * config/darwin.c (darwin_function_switched_text_sections): New.
15715         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15716
15717 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15718
15719         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
15720         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
15721         the secondary code fragment when outputting for DWARF == 2.
15722
15723 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15724
15725         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15726         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15727         Remove.
15728         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15729         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15730
15731 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15732
15733         PR debug/46704
15734         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15735         when it is not empty.
15736
15737 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15738
15739         Bobcat Enablement
15740         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15741         (case ${target}): Add btver1.
15742         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15743         -march=native recognize btver1 processors.
15744         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15745         btver1 def_and_undef
15746         * config/i386/i386.c (struct processor_costs btver1_cost): New
15747         btver1 cost table.
15748         (m_BTVER1): New definition.
15749         (m_AMD_MULTIPLE): Includes m_BTVER1.
15750         (initial_ix86_tune_features): Add btver1 tune.
15751         (processor_target_table): Add btver1 entry.
15752         (static const char *const cpu_names): Add btver1 entry.
15753         (software_prefetching_beneficial_p): Add btver1.
15754         (ix86_option_override_internal): Add btver1 instruction sets.
15755         (ix86_issue_rate): Add btver1.
15756         (ix86_adjust_cost): Add btver1.
15757         * config/i386/i386.h (TARGET_BTVER1): New definition.
15758         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15759         (enum processor_type): Add PROCESSOR_BTVER1.
15760         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15761
15762 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15763
15764         PR target/43309
15765         * config/i386/i386.c (legitimize_tls_address)
15766         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15767         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15768         (tls_initial_exec_64_sun): New pattern.
15769
15770 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15771
15772         * doc/invoke.texi (Overall Options): Improve wording and markup
15773         of the description of -wrapper.
15774
15775 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15776
15777         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15778         rdynamic, threads): New Driver options.
15779
15780 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15781
15782         PR target/38118
15783         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15784         if coming from .tdata.
15785         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15786
15787 2011-01-06  Jan Hubicka  <jh@suse.cz>
15788
15789         PR lto/47188
15790         * collect2.c (main): Do not enable LTOmode when plugin is active.
15791
15792 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15793
15794         PR other/45915
15795         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15796         --version output if supported.
15797         * configure: Regenerate.
15798
15799 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15800
15801         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15802         Driver options.
15803
15804 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15805
15806         PR c/47150
15807         * c-convert.c (convert): When converting a complex expression
15808         other than COMPLEX_EXPR to a different complex type, ensure
15809         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15810         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15811         when converting COMPLEX_TYPE.
15812
15813 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15814
15815         PR tree-optimization/47139
15816         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15817         only the last reduction value is used outside the loop.  Update
15818         documentation.
15819
15820 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15821
15822         * config/rtems.opt: New.
15823         * config.gcc (*-*-rtems*): Use rtems.opt.
15824
15825 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15826
15827         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15828         processors do not support 3DNow instructions.
15829
15830 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15831
15832         * config/spu/spu.c (spu_option_override): Set parameter
15833         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15834
15835 2011-01-05  Jan Hubicka  <jh@suse.cz>
15836
15837         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15838         at the command line.
15839
15840 2011-01-05  Martin Jambor  <mjambor@suse.cz>
15841
15842         PR lto/47162
15843         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15844         deltas on streamed outgoing edges.
15845         (output_node_opt_summary): Output info for outgoing edges only when
15846         the node is in new parameter set.
15847         (output_cgraph_opt_summary): New parameter set, passed to the two
15848         aforementioned functions.  Update its forward declaration and its
15849         callee too.
15850
15851 2011-01-05  Tom Tromey  <tromey@redhat.com>
15852
15853         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15854         operator to c_finish_omp_atomic.
15855         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15856         (build_unary_op): Update.
15857         (build_modify_expr): Update.
15858         (build_asm_expr): Update.
15859
15860 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15861
15862         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15863         newly inserted insns.
15864         (pad_bb): Likewise.
15865         (spu_emit_branch_hint): Likewise.
15866         (insert_hbrp_for_ilb_runout): Likewise.
15867         (spu_machine_dependent_reorg): Call df_finish_pass after
15868         schedule_insns returns.
15869
15870 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15871
15872         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15873
15874 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
15875
15876         PR tree-optimization/47005
15877         * tree-sra.c (struct access): Add 'non_addressable' bit.
15878         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15879         (decide_one_param_reduction): Return 0 if the parameter is passed by
15880         reference and one of the accesses in the group is non_addressable.
15881
15882 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15883
15884         PR tree-optimization/47056
15885         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15886         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
15887         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
15888
15889 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15890
15891         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15892         initializer.  Skip view conversions from aggregate types.
15893
15894 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
15895
15896         PR bootstrap/47055
15897         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15898
15899 2011-01-04  Philipp Thomas  <pth@suse.de>
15900
15901         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15902         obvious typo.
15903
15904 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15905
15906         * function.c (thread_prologue_and_epilogue_insns): Do not crash
15907         on empty epilogue sequences.
15908
15909 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
15910
15911         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15912         non-static): New Driver options.
15913
15914 2011-01-04  Jie Zhang  <jie@codesourcery.com>
15915
15916         PR driver/47137
15917         * gcc.c (default_compilers[]): Set combinable field to 0
15918         for all assembly languages.
15919
15920 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
15921
15922         * config/mips/loongson3a.md: New file.
15923         * config/mips/mips.md: Include loongson3a.md.
15924         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15925         TUNE_LOONGSON_3A.
15926
15927 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
15928
15929         PR middle-end/47017
15930         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15931         instead of convert_memory_address_addr_space on the base expression.
15932
15933 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15934
15935         * config/spu/spu.c (spu_option_override): Update error text
15936         for bad -march= / -mtune= values.
15937
15938 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15939
15940         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15941         if branch-hint optimization will be performed.
15942
15943 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15944
15945         PR tree-optimization/47148
15946         * ipa-split.c (split_function): Convert arguments to
15947         DECL_ARG_TYPE if possible.
15948
15949         PR tree-optimization/47155
15950         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15951         when computing uns.
15952
15953         PR rtl-optimization/47157
15954         * combine.c (try_combine): If undobuf.other_insn becomes
15955         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15956         and set *new_direct_jump_p too.
15957
15958 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15959
15960         PR tree-optimization/47021
15961         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15962
15963 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15964
15965         * gcc.c (process_command): Update copyright notice dates.
15966         * gcov.c (print_version): Likewise.
15967         * gcov-dump.c (print_version): Likewise.
15968         * mips-tfile.c (main): Likewise.
15969         * mips-tdump.c (main): Likewise.
15970
15971 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15972
15973         PR tree-optimization/46801
15974         * tree-sra.c (type_internals_preclude_sra_p): Check whether
15975         aggregate fields start at byte boundary instead of the bit-field flag.
15976
15977 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
15978
15979         PR driver/47137
15980         * gcc.c (main): Revert revision 168407.
15981
15982 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15983
15984         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15985
15986 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15987
15988         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15989         vector optab to expand vector/scalar shift, update gimple to vector.
15990
15991 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15992
15993         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15994         a thunk.
15995
15996 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15997
15998         PR tree-optimization/46984
15999         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16000         HOST_WIDE_INT.
16001         (cgraph_create_indirect_edge): Fixed line length.
16002         (cgraph_indirect_call_info): Declare.
16003         (cgraph_make_edge_direct) Update declaration.
16004         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16005         (cgraph_create_indirect_edge): Use it.
16006         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16007         callees.
16008         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16009         the new thunk_delta representation.
16010         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16011         HOST_WIDE_INT.
16012         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16013         (ipa_read_indirect_edge_info): Likewise.
16014         * lto-cgraph.c (output_edge_opt_summary): New function.
16015         (output_node_opt_summary): Call it on all outgoing edges.
16016         (input_edge_opt_summary): New function.
16017         (input_node_opt_summary): Call it on all outgoing edges.
16018
16019 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16020
16021         PR driver/47137
16022         * gcc.c (main): Don't check have_o when settting combine_inputs.
16023
16024 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16025
16026         * regrename.c: Add general comment describing the pass.
16027         (struct du_head): Remove 'length' field.
16028         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16029         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16030         Force renaming to the preferred class (if any) in the first pass and do
16031         not consider registers that belong to it in the second pass.
16032         (create_new_chain): Do not set 'length' field.
16033         (scan_rtx_reg): Likewise.
16034
16035 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16036
16037         PR tree-optimization/47140
16038         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16039         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16040         to bit_value_binop.
16041
16042         PR rtl-optimization/47028
16043         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16044         parm_birth_insn instead of at the beginning of first bb.
16045
16046 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16047
16048         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16049         Remove the word "see" before "@pxref".
16050         * doc/rtl.texi: Remove the word "see" before "@pxref".
16051
16052 2011-01-01  Jan Hubicka  <jh@suse.cz>
16053
16054         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16055         memory.
16056
16057 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16058
16059         PR target/38662
16060         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16061
16062 \f
16063 Copyright (C) 2011 Free Software Foundation, Inc.
16064
16065 Copying and distribution of this file, with or without modification,
16066 are permitted in any medium without royalty provided the copyright
16067 notice and this notice are preserved.