OSDN Git Service

Revert "Fix PR debug/49047"
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-31  Richard Guenther  <rguenther@suse.de>
2
3         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
4         to ...
5         (forward_propagate_into_comparison_1): ... this.
6         (forward_propagate_comparison): Rename to ...
7         (forward_propagate_into_comparison): ... this.  Split out
8         real forward propagation code to ...
9         (forward_propagate_comparison): ... this.
10         (forward_propagate_into_gimple_cond): Remove looping.
11         (forward_propagate_into_cond): Likewise.
12         (simplify_not_neg_expr): Return whether we have done something.
13         (simplify_gimple_switch): Likewise.
14         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15         (ssa_forward_propagate_and_combine): ... this.  Re-structure
16         to do a forward forward-propagation walk on BBs and a backward
17         stmt combining walk on BBs.  Consistently re-scan changed
18         statements.
19         (pass_forwprop): Adjust.
20
21 2011-05-30  Ian Lance Taylor  <iant@google.com>
22
23         * godump.c (go_format_type): Correct length of name added to
24         obstack for anonymous field.
25
26 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
27
28         PR target/49186
29         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
30         part of the second operand is 0.
31
32 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
33
34         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
35         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
36         to memory for !TARGET_MEMORY_MISMATCH_STALL.
37         (*movdf_internal_rex64): Do not penalize F->r alternative.
38         (*movdf_internal):  Penalize FYd*r->o alternative to prevent partial
39         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
40         when optimizing function for size.  Do not move CONST_DOUBLEs
41         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
42         (FP move splitters): Merge {TF,XF,DF}mode move splitters.  Do not
43         handle SUBREGs.  Do not check for MEM_P operands in the insn condition,
44         check for ANY_FP_REGNO_P instead.
45         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
46         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
47         function for speed.
48         * config/i386/i386.c (ix86_option_override_internal): Do not
49         set TARGET_INTEGER_DFMODE_MOVES here.
50
51 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
52
53         PR target/49168
54         * config/i386/i386.md (*movtf_internal): Handle misaligned
55         load/store.
56
57 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
58
59         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
60         DW_TAG_rvalue_reference_type even for
61         -gdwarf-4 -fno-debug-types-section.
62
63 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
64
65         PR tree-optimization/46728
66         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
67         (build_and_insert_binop): New.
68         (gimple_expand_builtin_pow): Reorder args for
69         build_and_insert_call; use build_and_insert_binop; add more
70         optimizations for fractional exponents.
71
72 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
73
74         PR bootstrap/49190
75
76         Revert:
77         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
78
79         * tree.h (struct tree_identifier): Inherit from tree_typed, not
80         tree_common.
81         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
82         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
83         TS_BASE instead of TS_COMMON.
84         * varasm.c (assemble_name): Remove assert.
85
86 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
87
88         * config.gcc: Keep obselete list sorted.
89
90 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
91             Eric Botcazou  <ebotcazou@adacore.com>
92
93         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
94         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
95         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
96         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
97         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
98
99 2011-05-30  Richard Guenther  <rguenther@suse.de>
100
101         * gimple.c (gimple_types_compatible_p_1): Compare record
102         and union type members properly.
103
104 2011-05-30  Richard Guenther  <rguenther@suse.de>
105
106         PR tree-optimization/49210
107         * ipa-split.c (split_function): Care for the case where the
108         call result is not trivially convertible to the result holding
109         variable.
110
111 2011-05-30  Richard Guenther  <rguenther@suse.de>
112
113         PR tree-optimization/49218
114         * tree-vrp.c (adjust_range_with_scev): Properly check whether
115         overflow occured.
116
117 2011-05-30  Richard Guenther  <rguenther@suse.de>
118
119         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
120         New function split out from ...
121         (forward_propagate_into_gimple_cond): ... here.  Adjust.
122         (forward_propagate_into_cond): Likewise.
123         (forward_propagate_comparison): Also propagate into
124         comparisons on assignment RHS.  Change return value to
125         behave similar to forward_propagate_into_cond.
126         (tree_ssa_forward_propagate_single_use_vars): Handle
127         strict-overflow warnings properly for forward_propagate_comparison.
128
129 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
130
131         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
132         from plugin linker.
133         * configure: Regenerate.
134
135 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
136
137         PR tree-optimization/49199
138         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
139         non-reduction operands are either defined in the loop or by induction.
140
141 2011-05-29  Xinliang David Li  <davidxl@google.com>
142
143         * opts-global.c (handle_common_deferred_options): Handle new options.
144         * passes.c (register_one_dump_file): Call register_pass_name.
145         (execute_one_pass): Check explicit enable/disable flag.
146         (passr_hash): New function.
147         (passr_eq): Ditto.
148         (register_pass_name): Ditto.
149         (get_pass_by_name): Ditto.
150         (pass_hash): Ditto.
151         (pass_eq): Ditto.
152         (enable_pass): Ditto.
153         (disable_pass): Ditto.
154         (is_pass_explicitly_enabled_or_disabled): Ditto.
155
156 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
157
158         * config/i386/i386.md (*movoi_internal_avx): Use
159         standard_sse_constant_opcode for alternative 0.
160         (*movti_internal_sse): Ditto.
161         (*movti_internal_rex64): Use standard_sse_constant_opcode for
162         alternative 2.
163         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
164         sselog1 type moves.
165         (*movsi_internal): Ditto.
166         (*movdi_internal): Ditto.  Add ssecvt type moves.
167
168 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
169
170         PR target/48830
171         * rtlanal.c (simplify_subreg_regno): Adjust comment.
172
173 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
174
175         PR rtl-optimization/49095
176         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
177         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
178
179 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
180
181         PR target/43995
182         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
183         recurse_p argument.  Only follow register copies if it is set,
184         and prevent mips_find_pic_call_symbol from recursing.
185         (mips_find_pic_call_symbol): Add a recurse_p argument.
186         Pass it to mips_pic_call_symbol_from_set.
187         (mips_annotate_pic_calls): Update accordingly.
188
189 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
190
191         * emit-rtl.c (try_split): Use a loop to search for
192         NOTE_INSN_CALL_ARG_LOCATIONs.
193
194 2011-05-29  Richard Guenther  <rguenther@suse.de>
195
196         PR tree-optimization/49217
197         * ipa-pure-const.c (propagate_pure_const): Fix typos.
198
199 2011-05-28  Jan Hubicka  <jh@suse.cz>
200
201         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
202         length.
203         (string_slot_free): Remove
204         (create_output_block): Initialize obstack.
205         (destroy_output_block): Free obstack.
206         (lto_string_index): Add PERSISTENT parameter; do not duplicate
207         the string unless it needs to be added into the hash.
208         (lto_output_string_with_length): Add persistent attribute;
209         handle NULL strings.
210         (lto_output_string): Add PERSISTENT parameter.
211         (output_string_cst, output_identifier): Simplify.
212         (lto_output_location_bitpack): Update.
213         (lto_output_builtin_tree): Update.
214         * lto-streamer.h (struct output_block): Add obstack.
215         (lto_output_string, lto_output_string_with_length): Remove
216         declarations; functions are static now.
217
218 2011-05-28  Jan Hubicka  <jh@suse.cz>
219
220         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
221         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
222         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
223         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
224         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
225         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
226         unpack_ts_decl_with_vis_value_fields,
227         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
228         lto_get_builtin_tree): Use enum and variable length i/o.
229         * basic-block.h (profile_status_d): Add PROFILE_LAST.
230         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
231         New functions.
232         (bp_pack_enum, bp_unpack_enum): New macros.
233
234 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
235
236         * genrecog.c: Remove redundant forward declarations.
237
238 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
239
240         * config.gcc: Deprecate mips*-*-openbsd*.
241
242 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
243
244         PR bootstrap/49195
245         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
246         for match_op_dup.
247
248 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
249
250         PR middle-end/48981
251         * gengtype.c (vec_prefix_type): New function.
252         (note_def_vec): Use vec_prefix_type and change the length
253         attribute to be based on the prefix.
254         * vec.c: Include coretypes.h before vec.h.
255         (struct vec_prefix): Remove.
256         (vec_gc_p_reserve): Change the offsetof to sizeof.
257         (vec_gc_p_reserve_exact): Likewise.
258         (vec_heap_p_reserve): Likewise.
259         (vec_heap_p_reserve_exact): Likewise.
260         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
261         (vec_stack_p_reserve): Change the offsetof to sizeof.
262         (vec_stack_p_reserve_exact): Likewise.
263         * vec.h (struct vec_prefix): New struct definition.
264         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
265         (VEC_T_GTY(T,B)): Likewise.
266         (DEF_VEC_FUNC_P(T)): Use prefix field.
267         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
268         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
269
270 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
271
272         PR tree-optimization/46728
273         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
274         (powi_as_mults): Add gimple_set_location.
275         (build_and_insert_call): New.
276         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
277         0.5, 0.25, 0.75, 1./3., or 1./6.
278
279 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
280
281         * doc/contrib.texi: Update copyright years.
282         (Contributors): Add Zdenek Sojka.
283
284 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
285
286         * c-decl.c (c_push_function_context): Copy the current statement
287         list stack.
288         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
289         (finish_struct): Call building_stmt_list_p instead of checking
290         cur_stmt_list.
291         * c-parser.c (c_parser_postfix_expression): Likewise.
292         * c-typeck.c (c_end_compound_stmt): Likewise.
293         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
294         * tree-iterator.c (stmt_list_cache): Change to a VEC.
295         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
296         (free_stmt_list): Likewise.
297         * tree.h (struct tree_statement_list): Include typed_tree instead
298         of tree_common.
299         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
300         as TS_TYPED instead of TS_COMMON.
301
302 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
303             Uros Bizjak <ubizjak@gmail.com>
304
305         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
306         (HAVE_AS_IX86_TLSGDPTL): Define.
307         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
308         (HAVE_AS_IX86_TLSLDMPLT): Define.
309         * configure: Regenerate.
310         * config.in: Regenerate.
311         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
312         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
313         TARGET_SUN_TLS, use @tlsgdplt or @plt.
314         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
315         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
316         @tlsldmplt or @plt.
317         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
318
319 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
320
321         * sched-int.h (struct _haifa_deps_insn_data): New members cond
322         and reverse_cond.
323         (INSN_COND, INSN_REVERSE_COND): New macros.
324         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
325         once.
326         (sched_get_condition_with_rev): Cache the results, and look them up
327         if possible.
328         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
329         are clobbered by the current insn.
330         * target.def (exposed_pipline): New sched data hook.
331         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
332         * doc/tm.texi: Regenerate.
333
334 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
335
336         PR tree-optimization/49170
337         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
338         sincos or cexp.
339
340 2011-05-27  Richard Guenther  <rguenther@suse.de>
341
342         PR middle-end/49189
343         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
344         of comparisons.
345
346 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
347
348         * haifa-sched.c (sched_scan_info): Remove.
349         (schedule_block): Call sched_extend_luids rather than sched_init_luids
350         with NULL args.
351         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
352         Remove functions.
353         (sched_scan): Remove.
354         (sched_extend_luids): Renamed from luids_extend_insn and no longer
355         static.  All callers changed.
356         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
357         static.  All callers changed.
358         (sched_init_luids): Remove all arguments except the first.  All
359         callers changed.  Don't use sched_scan.
360         (haifa_init_h_i_d): Likewise.
361         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
362         manually rather than using sched_init_luids.  Likewise with
363         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
364         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
365         rather than sched_init_luids with NULL args.
366         * sel-sched-ir.c (new_insns): Remove variable.
367         (sched_scan): New static function, previously in haifa-sched.c.  Remove
368         all arguments but the first two; all callers changed.
369         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
370         rather than sched_init_luids.
371         (sel_init_bbs): Remove second argument.  All callers changed.
372         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
373         with NULL arguments.
374         (create_insn_rtx_from_pattern): Likewise.
375         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
376         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
377         (sched_init_insn_luid, sched_extend_luids): Declare.
378         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
379         declarations.
380
381 2011-05-27  Richard Guenther  <rguenther@suse.de>
382
383         PR middle-end/49177
384         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
385         A CMP B ? (T) true : (T) false for non-integral types T again.
386
387 2011-05-27  Jan Hubicka  <jh@suse.cz>
388
389         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
390         so 0 means NULL string.
391         (lto_output_string_with_length): ... here.
392         (lto_output_string, output_string_cst, output_identifier): Update
393         handling of NULL strings.
394         (lto_output_location_bitpack): New function.
395         (lto_output_location): Use it.
396         (lto_output_tree_ref): Use output_record_start.
397         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
398         len values.
399         * lto-streamer-in.c (string_for_index): Break out from ...; offset
400         values by 1.
401         (input_string_internal): ... here;
402         (input_string_cst, input_identifier, lto_input_string): Update handling
403         of NULL strings.
404         (lto_input_location_bitpack): New function
405         (lto_input_location): Use it.
406         (unpack_ts_type_common_value_fields): Pack align & alias in var len
407         values.
408         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
409         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
410         (bp_pack_value): Sanity check the value range.
411         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
412         New functions.
413         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
414         New functions.
415
416 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
417
418         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
419         call_arg_location instructions down the floor.
420
421 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
422
423         PR rtl-optimization/49154
424         * ira.c (setup_pressure_classes): Process class without sublcasses
425         as a candidate for pressure classes.
426
427 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
428
429         PR rtl-optimization/48575
430         * genrecog.c (position_type): New enum.
431         (position): New structure.
432         (decision): Use position structure instead of a string.
433         (root_pos, peep2_insn_pos_list): New variables.
434         (next_position, compare_positions): New functions.
435         (new_decision): Use position structures instead of strings.
436         (maybe_both_true): Likewise.
437         (change_state): Likewise.
438         (write_tree): Likewise.
439         (make_insn_sequence): Likewise.
440
441 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
442
443         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
444         TS_BASE instead of TS_COMMON.
445         (find_decls_types_r): Check for TS_TYPED structure before looking at
446         TREE_TYPE.
447         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
448         Add chain field.
449         (BLOCK_CHAIN): Use new chain field.
450
451 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
452
453         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
454         moves expensive on Power7 also.
455
456 2011-05-26  Richard Guenther  <rguenther@suse.de>
457
458         * fold-const.c (fold_unary_loc): Remove bogus code.
459
460 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
461
462         * tree.h (struct tree_identifier): Inherit from tree_typed, not
463         tree_common.
464         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
465         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
466         TS_BASE instead of TS_COMMON.
467         * varasm.c (assemble_name): Remove assert.
468
469 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
470
471         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
472         substituted first.
473         * libgcc-std.ver: Delete file.
474
475 2011-05-26  Richard Guenther  <rguenther@suse.de>
476
477         PR tree-optimization/48702
478         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
479         only when we know the base address is within bounds.
480         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
481         assume the base address of TARGET_MEM_REFs is in bounds.
482
483 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
484
485         PR target/49099
486         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
487         declaration in TARGET_SOLARIS.
488
489 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
490
491         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
492         The instruction is then expanded explicitly.
493         (supported_compare): Callable instruction.
494         (compare): Likewise.
495
496 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
497
498         PR c++/49165
499         * gimplify.c (shortcut_cond_r): Don't special case
500         COND_EXPRs if they have void type on one of their arms.
501
502 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
503
504         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
505         to reduce duplication, and to achieve a slightly more logical order
506         of operations.
507
508 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
509
510         PR tree-optimization/49161
511         * tree-vrp.c (struct case_info): New type.
512         (compare_case_labels): Sort case_info structs instead of
513         trees, and not primarily by CASE_LABEL uids but by
514         label_for_block indexes.
515         (find_switch_asserts): Put case labels into struct case_info
516         array instead of TREE_VEC, adjust sorting, compare label_for_block
517         values instead of CASE_LABELs.
518
519 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
520
521         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
522         ("orndi3_neon"): Likewise.
523         ("bic<mode>3_neon"): Likewise.
524
525 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
526
527         PR tree-optimization/49038
528         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
529         Ensure at least one epilogue iteration if required by data
530         accesses with gaps.
531         * tree-vectorizer.h (struct _loop_vec_info): Add new field
532         to mark loops that require peeling for gaps.
533         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
534         (vect_get_known_peeling_cost): Take peeling for gaps into
535         account.
536         (vect_transform_loop): Generate epilogue if required by data
537         access with gaps.
538         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
539         loop as requiring an epilogue if there are gaps in the end of
540         the strided group.
541
542 2011-05-25  Ian Lance Taylor  <iant@google.com>
543
544         * godump.c (go_format_type): Output the first field with a usable
545         Go type, if any.
546
547 2011-05-25  Ian Lance Taylor  <iant@google.com>
548
549         * godump.c (go_format_type): Check for invalid type names, pointer
550         target types, and struct field types.
551
552 2011-05-25  Jason Merrill  <jason@redhat.com>
553
554         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
555
556 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
557
558         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
559
560 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
561
562         * config/i386/i386.md (*movqi_extv_1)): Put back
563         "register_operand" check in "type" calculation.
564         (*movqi_extzv_2): Likewise.
565
566 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
567
568         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
569
570 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
571
572         PR bootstrap/49160
573         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
574         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
575         __divxc3, __divtc3): Wrap definitions in #ifndef.
576
577 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
578
579         PR target/49142
580         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
581         "register_operand" check and replace q_regs_operand with
582         QIreg_operand in "type" calculation.
583         (*movqi_extv_1): Likewise.
584         (*movqi_extzv_2_rex64): Likewise.
585         (*movqi_extzv_2): Likewise.
586
587         * config/i386/predicates.md (QIreg_operand): New.
588
589 2011-05-25  Richard Guenther  <rguenther@suse.de>
590
591         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
592         type-based offset disambiguation, streamline MEM_REF and
593         TARGET_MEM_REF handling.
594
595 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
596
597         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
598         (bdesc_special_args): Add pause intrinsic.
599
600         * config/i386/i386.md (UNSPEC_PAUSE): New.
601         (pause): Likewise.
602         (*pause): Likewise.
603         * config/i386/ia32intrin.h (__pause): Likewise.
604
605         * doc/extend.texi (X86 Built-in Functions): Add documentation for
606         pause intrinsic.
607
608 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
609
610         PR tree-optimization/46728
611         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
612         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
613
614 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
615
616         * tree.h (struct tree_exp): Inherit from struct tree_typed.
617         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
618         instead of TS_COMMON.
619
620 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
621
622         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
623         LIBGCC2_GNU_PREFIX is defined.
624         (__N): New macro.
625         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
626         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
627         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
628         __clz_tab): Define using __N.
629         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
630         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
631         * target.def (libfunc_gnu_prefix): New hook.
632         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
633         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
634         * doc/tm.texi: Regenerate.
635         * system.h (LIBGCC2_GNU_PREFIX): Poison.
636         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
637         account.
638         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
639         (init_optabs): Likewise for the bswap libfuncs.
640         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
641         and divide.
642         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
643         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
644         * libgcc-std.ver: Remove.
645         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
646         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
647         libgcc-std.ver.
648         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
649         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
650         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
651         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
652         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
653         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
654         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
655         * config/fixed-bit.h (FIXED_OP): Define differently depending on
656         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
657         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
658
659 2011-05-25  Jan Hubicka  <jh@suse.cz>
660
661         * lto-streamer-out.c (output_record_start): Use lto_output_enum
662         (lto_output_tree): Use output_record_start.
663         * lto-streamer-in.c (input_record_start): Use lto_input_enum
664         (lto_get_pickled_tree): Use input_record_start.
665         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
666         (lto_value_range_error): New function.
667         * lto-streamer.h (lto_value_range_error): Declare.
668         (lto_output_int_in_range, lto_input_int_in_range): New functions.
669         (lto_output_enum, lto_input_enum): New macros.
670
671 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
672
673         * common.opt (flag_stack_usage_info): New variable.
674         (-Wstack-usage): New option.
675         * doc/invoke.texi (Warning options): Document -Wstack-usage.
676         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
677         <OPT_fstack_usage>: Likewise.
678         * toplev.c (output_stack_usage): Handle -Wstack-usage.
679         * calls.c (expand_call): Test flag_stack_usage_info variable instead
680         of flag_stack_usage.
681         (emit_library_call_value_1): Likewise.
682         * explow.c (allocate_dynamic_stack_space): Likewise.
683         * function.c (instantiate_virtual_regs ): Likewise.
684         (prepare_function_start): Likewise.
685         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
686         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
687         * config/arm/arm.c (arm_expand_prologue): Likewise.
688         (thumb1_expand_prologue): Likewise.
689         * config/avr/avr.c (expand_prologue): Likewise.
690         * config/i386/i386.c (ix86_expand_prologue): Likewise.
691         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
692         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
693         * config/mips/mips.c (mips_expand_prologue): Likewise.
694         * config/pa/pa.c (hppa_expand_prologue): Likewise.
695         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
696         * config/s390/s390.c (s390_emit_prologue): Likewise.
697         * config/sh/sh.c (sh_expand_prologue): Likewise.
698         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
699         * config/spu/spu.c (spu_expand_prologue): Likewise.
700
701 2011-05-25  Richard Guenther  <rguenther@suse.de>
702
703         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
704         (gimple_canonical_types_compatible_p): Likewise.
705
706 2011-05-25  Jan Hubicka  <jh@suse.cz>
707
708         PR middle-end/49062
709         * ipa.c (function_and_variable_visibility): Only add to same
710         comdat group list if DECL_ONE_ONLY.
711
712 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
713
714         PR rtl-optimization/49014
715         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
716
717 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
718
719         PR target/49128
720         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
721
722 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
723
724         PR rtl-optimization/48757
725         * ira-build.c (loop_with_eh_edge_p): Rename to
726         loop_with_complex_edge_p, check edges on complexity, make function
727         conditional.
728         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
729         conditional.
730
731 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
732
733         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
734         force flag_ira_share_save_slots to 0.
735
736 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
737
738         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
739         (vt_initialize): Set PROLOGUE_BB unconditionally.
740         Add block comment about CFA_BASE_RTX machinery.
741         Reset FP_CFA_OFFSET to -1 on all invalid paths.
742         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
743
744 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
745
746         PR objc/48187
747         * c-parser.c (c_parser_objc_class_instance_variables): More robust
748         parsing of syntax error in ObjC instance variable lists.  In
749         particular, avoid an infinite loop if there is a stray ']'.
750         Updated error message.
751
752 2011-05-24  Ian Lance Taylor  <iant@google.com>
753
754         * godump.c (go_define): Don't accept a string immediately after
755         another operand.
756
757 2011-05-24  Ian Lance Taylor  <iant@google.com>
758
759         * godump.c (struct godump_container): Add invalid_hash field.
760         (go_format_type): Return false if type is found in invalid_hash.
761         (go_output_typedef): Add invalid type to invalid_hash.
762         (go_finish): Create and delete invalid_hash.
763
764 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
765
766         PR tree-optimization/46728
767         * tree-ssa-math-opts.c (powi_table): New.
768         (powi_lookup_cost): New.
769         (powi_cost): New.
770         (powi_as_mults_1): New.
771         (powi_as_mults): New.
772         (gimple_expand_builtin_powi): New.
773         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
774         (gate_cse_sincos): Remove sincos/cexp restriction.
775
776 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
777
778         PR target/3746
779         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
780         mips-tdump native.
781         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
782         * mips-tdump.c: Likewise.
783
784 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
785
786         PR target/49128
787         * config/i386/driver-i386.c (host_detect_local_cpu): Always
788         add -mno-XXX.  Handle FMA.
789
790 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
791
792         PR rtl-optimization/48633
793         * ira-build.c (loop_with_eh_edge_p): New function.
794         (mark_loops_for_removal): Use it.
795
796 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
797
798         PR rtl-optimization/48971
799         * ira.c (setup_pressure_classes): Don't check register move cost
800         for classes with one registers.  Don't add pressure class if there
801         is a pressure class with the same available hard registers.
802         Check contains_reg_of_mode.  Fix a typo in collecting
803         temp_hard_regset.  Ignore hard registers not belonging to a class.
804
805 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
806
807         PR target/49133
808         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
809
810 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
811             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
812
813         PR gcov-profile/48845
814         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
815
816 2011-05-24  Richard Guenther  <rguenther@suse.de>
817
818         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
819         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
820         (gimple_types_compatible_p_1): Adjust.
821         (iterative_hash_canonical_type): Do not bother about complete vs.
822         incomplete types.
823         (gimple_canonical_types_compatible_p): Likewise.
824
825 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
826
827         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
828
829 2011-05-24  Richard Guenther  <rguenther@suse.de>
830
831         PR bootstrap/49078
832         * gimple.c (gimple_register_canonical_type): Revert
833         previous change.
834         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
835         does not for a tree for the case where it matters.  Cache
836         pointer-type alias-sets.
837
838 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
839
840         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
841         (OBJS): Remove options.o, opts-common.o and prefix.o.
842         (OBJS-libcommon-target): New.
843         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
844         (BACKEND): Include libcommon-target.a.
845         (MOSTLYCLEANFILES): Include libcommon-target.a.
846         (libcommon-target.a): New.
847         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
848         prefix.o.
849
850 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
851
852         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
853         parts of output shared with the driver.
854         * optc-gen.awk: Don't generate parts of output not shared with the
855         driver.
856         * opth-gen.awk: Remove GCC_DRIVER conditionals.
857         * doc/options.texi (SourcerInclude): Mention options-save.c.
858         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
859         (OBJS): Add options-save.o.
860         (options-save.c, options-save.o): New.
861         (options.o): Update dependencies.
862         (gcc-options.o): Remove.
863         (mostlyclean): Remove options-save.c.
864
865 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
866
867         PR debug/49032
868         * dbxout.c: Include cgraph.h.
869         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
870         and without value expr, return NULL if no varpool node exists for
871         it or if it is not needed.
872         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
873
874         PR c/49120
875         * c-decl.c (start_decl): Convert expr to void_type_node.
876
877 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
878
879         PR rtl-optimization/48826
880         * emit-rtl.c (try_split): When splitting a call that is followed
881         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
882
883 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
884
885         * cfgexpand.c (expand_debug_expr): For unused non-addressable
886         parameters passed in memory prefer using DECL_INCOMING_RTL over
887         the pseudos it will be copied into.
888
889 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
890
891         PR target/47315
892         * config/i386/i386.c (ix86_option_override_internal): Save the
893         initial options after checking vzeroupper.
894
895 2011-05-23  David Li  <davidxl@google.com>
896
897         PR tree-optimization/48988
898         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
899         Initialize has_valid_pred for each pred chain.
900
901 2011-05-23  Richard Guenther  <rguenther@suse.de>
902
903         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
904         (iterative_hash_gimple_type): Always hash type names.
905
906 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
907
908         * c-typeck.c (build_function_call_vec): Tweak call to
909         check_function_arguments.
910
911 2011-05-23  Richard Guenther  <rguenther@suse.de>
912
913         PR tree-optimization/49115
914         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
915         is not necessarily carried out, do not claim it kills the ref.
916         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
917
918 2011-05-23  Richard Guenther  <rguenther@suse.de>
919
920         PR middle-end/15419
921         * builtins.c (fold_builtin_memory_op): Be less restrictive about
922         what pointer types we accept for folding.
923
924 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
925
926         * gthr-gnat.c: Remove.
927         * gthr-gnat.h: Remove.
928         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
929         * config/t-freebsd (LIB2ADDEH): Likewise.
930         * config/t-linux (LIB2ADDEH): Likewise.
931         * config/t-sol2 (LIB2ADDEH): Likewise.
932         * config/ia64/t-vms (LIB2ADDEH): Likewise.
933         * configure.ac (target_thread_file): Remove gnat handling.
934         * configure: Regenerate.
935         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
936
937 2011-05-23  Tristan Gingold  <gingold@adacore.com>
938             Eric Botcazou  <ebotcazou@adacore.com>
939
940         * gcov.c (create_file_names): If no object directory is specified,
941         keep the directory of the file.
942
943 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
944
945         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
946         * configure: Regenerate.
947
948 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
949
950         PR middle-end/48973
951         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
952         failed and the comparison has a single bit signed type, use
953         constm1_rtx instead of const1_rtx for true value.
954         (do_store_flag): If ops->type is single bit signed type, disable
955         signel bit test optimization and pass -1 instead of 1 as last
956         parameter to emit_store_flag_force.
957
958 2011-05-23  Tom de Vries  <tom@codesourcery.com>
959
960         PR target/45098
961         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
962         function.
963         (infer_loop_bounds_from_undefined): Use new function.
964
965 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
966
967         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
968         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
969         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
970         and -O0 otherwise.
971         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
972
973 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
974
975         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
976         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
977         returns true.
978
979 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
980
981         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
982
983 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
984
985         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
986         UNSPEC_MOVE_PIC pattern.
987
988 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
989
990         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
991         (sparc-*-rtems*): Likewise.
992         (sparc64-*-elf*): Likewise.
993         (sparc64-*-rtems*): Likewise.
994         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
995         * config/sparc/t-crtin: New file.
996         * config/sparc/t-sol2 (crti.o): Delete rule.
997         (crtn.o): Likewise.
998         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
999         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1000         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1001         (ENDFILE_SPEC): Add crtn.o.
1002
1003 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1004
1005         PR middle-end/48689
1006         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1007         CODE_CONTAINS_STRUCT (TS_COMMON).
1008
1009 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1010
1011         PR middle-end/49029
1012         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1013         only after deciding which mode to use.
1014
1015 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1016
1017         PR target/45098
1018         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1019         for call to get_shiftadd_cost.
1020
1021 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1022
1023         PR target/49104
1024         * config/i386/cpuid.h (bit_MMXEXT): New define.
1025
1026 2011-05-22  Nick Clifton  <nickc@redhat.com>
1027
1028         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1029         initialisation of non-existant args[2] element.  Use args[] array
1030         not arg[] array to pass arguments to build_function_type_list.
1031
1032 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1033
1034         PR tree-optimization/49087
1035         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1036
1037 2011-05-21  Jason Merrill  <jason@redhat.com>
1038
1039         PR c++/49092
1040         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1041         static storage duration.
1042
1043 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1044
1045         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1046         frame pointer.
1047
1048 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1049
1050         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1051         false if there are call-saved registers here...
1052         (sparc_can_use_return_insn_p): ...but here instead.
1053         (save_or_restore_regs): Fix thinko.
1054         (sparc_expand_prologue): Use current_function_is_leaf.
1055         (sparc_frame_pointer_required): Likewise.
1056
1057 2011-05-21  Nick Clifton  <nickc@redhat.com>
1058
1059         PR target/49098
1060         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1061
1062 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1063
1064         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1065         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1066
1067 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1068
1069         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1070         * optc-gen.awk: Move common code to opt-read.awk.
1071         * opth-gen.awk: Likewise.
1072         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1073
1074 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1075
1076         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1077
1078 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1079
1080         PR target/45098
1081         * tree-ssa-loop-ivopts.c: Include expmed.h.
1082         (get_shiftadd_cost): New function.
1083         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1084
1085 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1086
1087         PR bootstrap/49086
1088         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1089         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1090
1091 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1092
1093         * Makefile.in: Update comment referring to $(OBJS-common).
1094
1095 2011-05-20  Ian Lance Taylor  <iant@google.com>
1096
1097         * godump.c (go_output_typedef): Put enum constants in the macro
1098         hash table to avoid duplicate Go const definitions.
1099
1100 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1101
1102         * Makefile.in (LIBDEPS): Add libcommon.a.
1103         (LIBS): Likewise.
1104         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1105         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1106         pretty-print.o and version.o.
1107         (OBJS-libcommon): New.
1108         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1109         (BACKEND): Add libcommon.a.
1110         (MOSTLYCLEANFILES): Likewise.
1111         (libcommon.a): New.
1112         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1113         (cpp$(exeext)): Likewise.
1114         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1115         pretty-print.o and input.o.
1116         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1117         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1118         (errors.o): Remove.
1119         (mips-tfile): Don't explicitly use version.o.
1120         (mips-tdump): Likewise.
1121         (gcov.o): Depend on $(DIAGNOSTIC_H).
1122         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1123         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1124         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1125         * gcov-dump.c: Include intl.h and diagnostic.h.
1126         (main): Initialize diagnostics.
1127         * gcov.c: Include diagnostic.h.
1128         (fnotice): Remove.
1129         (main): Initialize diagnostics.
1130         * lto-wrapper.c: Include diagnostic.h.
1131         (main): Initialize diagnostics.
1132
1133 2011-05-20  Michael Matz  <matz@suse.de>
1134
1135         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1136
1137 2011-05-20  Michael Matz  <matz@suse.de>
1138             Richard Guenther  <rguenther@suse.de>
1139
1140         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1141         use lto_streamer_cache_append directly instead of returning a VEC.
1142         (preload_common_node): Remove.
1143         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1144         track seen nodes.
1145         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1146
1147 2011-05-20  Richard Guenther  <rguenther@suse.de>
1148
1149         PR tree-optimization/49079
1150         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1151         MEM_REFs correctly for the trailing array access detection.
1152         Special case constants the same way as decls for overall size
1153         constraining.
1154
1155 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1156
1157         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1158         argument expansion.
1159
1160 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1161
1162         PR tree-optimization/49073
1163         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1164         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1165         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1166
1167 2011-05-20  Richard Guenther  <rguenther@suse.de>
1168
1169         PR middle-end/48849
1170         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1171         of pointer types the same way the middle-end does.
1172
1173 2011-05-20  Richard Guenther  <rguenther@suse.de>
1174
1175         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1176         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1177
1178 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1179
1180         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1181         (fma4_fmaddsub): Likewise
1182
1183 2011-05-19  Jan Hubicka  <jh@suse.cz>
1184
1185         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1186         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1187         (type_pair_cache): New static var.
1188         (lookup_type_pair): Use fixed sized custom hash; make inline.
1189         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1190         calls of lookup_type_pair.
1191         (print_gimple_types_stats): Remove cache stats.
1192         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1193         and gtc_ob.
1194
1195 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1196
1197         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1198         when TARGET_RDRND is active.
1199         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1200         Generate dummy SImode target register when target is NULL.
1201
1202 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1203
1204         * config/arm/arm-fpus.def: New.
1205         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1206         arm-fpus.def.
1207         * config/arm/arm-tables.opt: Regenerate.
1208         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1209         (arm_option_override): Don't decode FPU name to string here.
1210         * config/arm/arm.opt (mfpu=): Use Enum.
1211         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1212         Update dependencies.
1213
1214 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1215
1216         * collect2.c: Include diagnostic.h.
1217         (fatal_perror, fatal, error, fancy_abort): Remove.
1218         (main): Set progname.  Call xmalloc_set_program_name and
1219         diagnostic_initialize.
1220         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1221         scan_libraries, resolve_lib_name): Call fatal_error instead of
1222         fatal and fatal_perror.
1223         * collect2.h (error, fatal, fatal_perror): Don't declare.
1224         * tlink.c: Include diagnostic-core.h.
1225         (recompile_files): Call fatal_error instead of fatal_perror.
1226         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1227         pretty-print.o and input.o.
1228         (collect2.o, tlink.o): Update dependencies.
1229
1230 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1231
1232         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1233
1234 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1235
1236         PR target/40483
1237         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1238         COMDAT group syntax, both SPARC and x86 variants.
1239         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1240         * configure: Regenerate.
1241         * config/sol2.h (TARGET_SOLARIS): Define.
1242         (PUSHSECTION_FORMAT): Remove.
1243         (SECTION_NAME_FORMAT): Define.
1244         * config/sol2.c: Include hashtab.h.
1245         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1246         expansion, using SECTION_NAME_FORMAT.
1247         (solaris_comdat_htab): New variable.
1248         (struct comdat_entry): Define.
1249         (comdat_hash): New function.
1250         (comdat_eq): New function.
1251         (solaris_elf_asm_comdat_section): New function.
1252         (solaris_define_comdat_signature): New function.
1253         (solaris_code_end): New function.
1254         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1255         (solaris_code_end): Declare.
1256         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1257         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1258         solaris_code_end.
1259         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1260         Remove ATTRIBUTE_UNUSED.
1261         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1262         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1263         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1264         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1265         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1266         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1267         (PUSHSECTION_FORMAT): Remove.
1268         (SECTION_NAME_FORMAT): Redefine.
1269
1270 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1271
1272         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1273         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1274         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1275
1276 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1277             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1278
1279         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1280
1281 2011-05-19  Richard Guenther  <rguenther@suse.de>
1282
1283         PR middle-end/48985
1284         * tree-object-size.c (addr_object_size): If the pointed-to
1285         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1286
1287 2011-05-19  Richard Guenther  <rguenther@suse.de>
1288
1289         * gimple.c (gimple_types_compatible_p_1): Compare names of
1290         the types themselves.
1291         (iterative_hash_gimple_type): And hash them that way.
1292         (gimple_register_type_1): If we register a main variant properly
1293         initialize the leader to ourselves.
1294
1295 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1296
1297         PR target/45098
1298         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1299         get_loop_invariant_expr_id.
1300         (get_loop_invariant_expr_id): Use get_expr_id.
1301         (parm_decl_cost): New function.
1302         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1303         Improve bound cost estimation.  Use different inv_expr_id for elim and
1304         express cases.
1305
1306 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1307
1308         PR target/45098
1309         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1310         cost_base.cost == 0.
1311
1312 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1313
1314         PR target/49002
1315         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1316         Properly handle load cast.
1317
1318 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1319
1320         PR tree-optimization/49039
1321         * tree-vrp.c (extract_range_from_binary_expr): For
1322         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1323         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1324
1325 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1326
1327         PR target/45098
1328         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1329
1330 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1331
1332         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1333         (*tls_global_dynamic_64): Ditto.
1334         (*tls_local_dynamic_base_32_gnu): Ditto.
1335         (*tls_local_dynamic_base_64): Ditto.
1336         (tls_initial_exec_64_sun): Ditto.
1337
1338 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1339
1340         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1341         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1342         bf592-none.
1343         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1344         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1345         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1346         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1347         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1348         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1349         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1350
1351 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1352
1353         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1354         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1355         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1356         target_thread_pointer, arm_structure_size_boundary, struct
1357         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1358         struct abi_name, arm_all_abis): Remove.
1359         (arm_option_override) Don't process most enumerated option values here.
1360         Don't process target_fpe_name here.  Work with integer not string for
1361         structure size boundary; use separate diagnostics for each case.
1362         * config/arm/arm.h (enum float_abi_type, enum
1363         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1364         to arm-opts.h.
1365         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1366         arm_structure_size_boundary): Remove.
1367         * config/arm/arm.opt (mabi=): Use Enum and Init.
1368         (arm_abi_type): New Enum and EnumValue entries.
1369         (mfloat-abi=): Use Enum and Init.
1370         (float_abi_type): New Enum and EnumValue entries.
1371         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1372         (mfp16-format=): Use Enum and Init.
1373         (arm_fp16_format_type): New Enum and EnumValue entries.
1374         (mstructure-size-boundary=): Use UInteger and Init.
1375         (mtp=): Use Enum and Init.
1376         (arm_tp_type): New Enum and EnumValue entries.
1377
1378 2011-05-18  Richard Guenther  <rguenther@suse.de>
1379
1380         PR tree-optimization/49018
1381         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1382         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1383         gimple_has_side_effects.
1384
1385 2011-05-18  Richard Guenther  <rguenther@suse.de>
1386
1387         * gimple.c (gimple_register_type_1): New function, split out from ...
1388         (gimple_register_type): ... here.  Avoid infinite recursion.
1389
1390 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1391
1392         PR tree-optimization/41881
1393         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1394         reduction_chains along with a macro for its access.
1395         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1396         (destroy_loop_vec_info): Free reduction chains.
1397         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1398         (vect_is_slp_reduction): New function.
1399         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1400         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1401         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1402         definition types for reduction chains.
1403         (vect_supported_load_permutation_p): Don't allow permutations for
1404         reduction chains.
1405         (vect_analyze_slp_instance): Support reduction chains.
1406         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1407         (vect_get_constant_vectors):  Handle reduction chains.
1408         (vect_schedule_slp_instance): Mark the first statement of the
1409         reduction chain as reduction.
1410
1411 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1412
1413         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1414         names for group elements access.
1415         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1416         reduction chains as well.  Remove data reference and interleaving
1417         related words from the fields names.
1418         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1419         elements access.
1420         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1421         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1422         vect_update_interleaving_chain, vect_same_range_drs,
1423         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1424         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1425         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1426         vect_analyze_group_access, vect_analyze_data_ref_access,
1427         vect_create_data_ref_ptr, vect_transform_strided_load,
1428         vect_record_strided_load_vectors): Likewise.
1429         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1430         vect_model_load_cost, vectorizable_store, vectorizable_load,
1431         vect_remove_stores, new_stmt_vec_info): Likewise.
1432         * tree-vect-slp.c (vect_build_slp_tree,
1433         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1434
1435 2011-05-18  Richard Guenther  <rguenther@suse.de>
1436
1437         PR middle-end/48989
1438         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1439         operand verification.
1440         (verify_gimple_assign_binary): Likewise.
1441         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1442         to non-1-precision BOOLEAN_TYPEs.
1443
1444 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1445
1446         PR target/45098
1447         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1448
1449 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1450
1451         PR tree-optimization/49000
1452         * tree-ssa.c (execute_update_addresses_taken): Call
1453         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1454         be rewritten and decl has been marked for renaming, reset
1455         the debug stmt.
1456
1457 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1458
1459         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1460         enum_opts_set when testing if attributes have set -mfpmath=.
1461
1462 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1463
1464         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1465
1466 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1467
1468         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1469         info->entry with 0
1470         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1471         id.transform_lang_insert_block with NULL.
1472
1473 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1474
1475         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1476         (output_fp_compare): Change args 3 and 4 to bool.
1477         (ix86_expand_call): Change arg 6 to bool.
1478         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1479         (ix86_attr_length_vex_default): Change arg 3 to bool.
1480         * config/i386/i386.md: Update all uses.
1481         * config/i386/i386.c: Ditto.
1482         (ix86_flags_dependent): Change return type to bool.
1483
1484 2011-05-17  Richard Guenther  <rguenther@suse.de>
1485
1486         * gimple.c (type_hash_pair_compare): Fix comparison.
1487
1488 2011-05-17  Richard Guenther  <rguenther@suse.de>
1489
1490         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1491         case some more, fix final hash value of the non-singleton case.
1492
1493 2011-05-17  Richard Guenther  <rguenther@suse.de>
1494
1495         PR bootstrap/49013
1496         Revert
1497         2011-05-16  Richard Guenther  <rguenther@suse.de>
1498
1499         * gimple.c (gimple_types_compatible_p_1): Use names of the
1500         type itself, not its main variant.
1501         (iterative_hash_gimple_type): Likewise.
1502
1503 2011-05-17  Richard Guenther  <rguenther@suse.de>
1504
1505         * gimple.c (gimple_register_canonical_type): Use the main-variant
1506         leader for computing the canonical type.
1507
1508 2011-05-17  Nick Clifton  <nickc@redhat.com>
1509
1510         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1511         moves.
1512
1513         * config/rx/rx.md: Add peephole to remove redundant extensions
1514         after loads.
1515         (bitset_in_memory): Use rx_restricted_mem_operand.
1516         (bitinvert_in_memory): Likewise.
1517         (bitclr_in_memory): Likewise.
1518
1519 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1520             Nick Clifton  <nickc@redhat.com>
1521
1522         * config/rx/rx.md: Add peepholes to match a register move followed
1523         by a comparison of the moved register.  Replace these with an
1524         addition of zero that does both actions in one instruction.
1525
1526 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1527
1528         PR target/48986
1529         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1530         predicate to allow CONST_INT.
1531         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1532
1533 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1534
1535         * opts-common.c (opt_enum_arg_to_value): New.
1536         * opts.h (opt_enum_arg_to_value): Declare.
1537         * config/i386/i386.opt (fpmath): Remove.
1538         (mfpmath=): Use Enum, Init and Save.
1539         (fpmath_unit): New Enum and EnumValue entries.
1540         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1541         name for function fpmath state.
1542         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1543         * config/i386/i386.c: Include diagnostic.h.
1544         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1545         (ix86_target_string): Take enum fpmath_unit value instead of string.
1546         (ix86_debug_options): Update call to ix86_target_string.
1547         (ix86_option_override_internal): Don't process fpmath strings here.
1548         (x86_function_specific_save, ix86_function_specific_restore):
1549         Don't handle fpmath state specially.
1550         (ix86_function_specific_print): Pass fpmath state to
1551         ix86_target_string instead of printing in this function.
1552         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1553         Handle enum attributes.
1554         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1555         (ix86_valid_target_attribute_tree): Update option_strings
1556         handling.  Handle fpmath as enum option.
1557         (ix86_can_inline_p): Update field names for function fpmath state.
1558         (ix86_expand_builtin): Update call to ix86_target_string.
1559         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1560         (ix86_fpmath): Remove.
1561         * config/i386/t-i386 (i386.o): Update dependencies.
1562
1563 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1564
1565         PR preprocessor/48677
1566         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1567         from decoded_options[0], not from itself.
1568
1569 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1570
1571         * config/i386/constraints.md (z): New constraint.
1572         * config/i386/i386.c (c): New mode attribute.
1573         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1574         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1575         constraint for operand 0.
1576         (*call_vzeroupper): Ditto.
1577         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1578         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1579         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1580         Use "lzm" constraint for operand 0.
1581         (*call_pop_vzeroupper): Ditto.
1582         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1583         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1584         constraint for operand 0.
1585         (*sibcall_vzeroupper): Ditto.
1586         (*sibcall_rex64_ms_sysv): Ditto.
1587         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1588         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1589         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1590         (*sibcall_pop_vzeroupper): Ditto.
1591         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1592         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1593         mode iterator.  Use "<c>zm" constraint for operand 1.
1594         (*call_value_vzeroupper): Ditto.
1595         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1596         for operand 1.
1597         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1598         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1599         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1600         (*call_value_pop_vzeroupper): Ditto.
1601         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1602         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1603         mode iterator.  Use "Uz" constraint for operand 1.
1604         (*sibcall_value_vzeroupper): Ditto.
1605         (*sibcall_value_rex64_ms_sysv): Ditto.
1606         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1607         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1608         constraint for operand 1.
1609         (*sibcall_value_pop_vzeroupper): Ditto.
1610         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1611         and "z" constraint for operand 2.
1612         (*tls_global_dynamic_32_gnu): Ditto.
1613         (*tls_local_dynamic_base_32_gnu): Ditto.
1614         (*tls_local_dynamic_base_64): Ditto.
1615         (*tls_local_dynamic_32_once): Ditto.
1616         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1617         Update all callers.
1618         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1619
1620 2011-05-16  Richard Guenther  <rguenther@suse.de>
1621
1622         * gimple.c (gimple_types_compatible_p_1): Use names of the
1623         type itself, not its main variant.
1624         (iterative_hash_gimple_type): Likewise.
1625
1626 2011-05-16  Richard Guenther  <rguenther@suse.de>
1627
1628         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1629         always visit pointer target and function result and argument types.
1630
1631 2011-05-16  Jason Merrill  <jason@redhat.com>
1632
1633         PR c++/48999
1634         * tree-inline.c (copy_statement_list): Put back recursion.
1635
1636 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1637
1638         PR target/27663
1639         PR target/41076
1640         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1641         * config/avr/avr.md ("*ior<mode>qi.byte0",
1642         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1643
1644 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1645
1646         PR target/45099
1647         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1648         register is needed for a function argument.
1649
1650 2011-05-16  Richard Guenther  <rguenther@suse.de>
1651
1652         * gimple.c (struct type_hash_pair): New type.
1653         (type_hash_pair_compare): New function.
1654         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1655
1656 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1657
1658         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1659
1660 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1661
1662         * config/i386/i386.md (floating point move splitters): Fix
1663         usage of standard_80387_constant_p.
1664         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1665
1666 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1667
1668         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1669
1670 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1671
1672         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1673         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1674         (tree_ssa_lim_finalize): Likewise.
1675
1676 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1677
1678         * config/i386/constraint.md (Yd, Yx): New register constraints.
1679         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1680         Yd conditional register constraint.
1681         (*movtf_internal): Use standard_sse_constant_opcode.
1682         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1683         Yx conditional register constraint.
1684         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1685         Yd conditional register constraint.  Use standard_sse_constant_p to
1686         check for valid SSE constants and call standard_sse_constant_opcode to
1687         output SSE insn.
1688         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1689         constants and call standard_sse_constant_opcode to output SSE insn.
1690         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1691         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1692         optimize_size is set.
1693         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1694
1695 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1696
1697         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1698
1699 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1700
1701         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1702         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1703         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1704         (evaluate_conditions_for_ipcp_clone): Removed.
1705         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1706         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1707         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1708
1709 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1710
1711         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1712         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1713         lieu of MAY_HAVE_DEBUG_STMTS.
1714         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1715         debug statements if !MAY_HAVE_DEBUG_STMTS.
1716
1717 2011-05-13  Martin Thuresson  <martint@google.com>
1718
1719         PR gcov-profile/47793
1720         * libgcov.c (gcov_exit): Support relative profile paths.
1721         * doc/invoke.texi (-fprofile-dir): Update for above change.
1722
1723 2011-05-13  Richard Guenther  <rguenther@suse.de>
1724
1725         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1726         type-pair caching, do not compare hashes.
1727
1728 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1729
1730         PR middle-end/48965
1731         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1732         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1733
1734 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1735
1736         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1737         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1738         compatible type for TRUTH_NOT_EXPR.
1739
1740 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1741
1742         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1743         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1744         can_create_pseudo_p ().
1745
1746 2011-05-13  Richard Guenther  <rguenther@suse.de>
1747
1748         PR lto/48978
1749         * gimple.c (iterative_hash_gimple_type): Revert change in
1750         pointer target and function result and argument hashing.
1751
1752 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1753
1754         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1755         (*movxf_internal_nointeger): Ditto.
1756         (*movdf_internal_rex64): Ditto.
1757         (*movdf_internal): Ditto.
1758         (*movdf_internal_nointeger): Ditto.
1759         (*movsf_internal): Ditto.
1760         (sincos splitters): Use can_create_pseudo ().
1761
1762 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1763
1764         * config/i386/i386-opts.h: New.
1765         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1766         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1767         ix86_section_threshold): Remove.
1768         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1769         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1770         OPT_mbranch_cost_.
1771         (ix86_option_override_internal): Don't decode strings for options
1772         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1773         __attribute__ uses in remaining diagnostics for options with
1774         string arguments.  Don't check for integer arguments being negative.
1775         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1776         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1777         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1778         ix86_branch_cost, ix86_section_threshold): Remove.
1779         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1780         HeaderInclude.
1781         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1782         but not Var.
1783         (masm=): Use Enum and Init.
1784         (asm_dialect): New Enum and EnumValue entries.
1785         (mbranch-cost=): Use UInteger.
1786         (mlarge-data-threshold=): Use UInteger and Init.
1787         (mcmodel=): Use Enum and Init.
1788         (cmodel): New Enum and EnumValue entries.
1789         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1790         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1791         mregparm=): Use UInteger.
1792         (mstringop-strategy=): Use Enum and Init.
1793         (stringop_alg): New Enum and EnumValue entries.
1794         (mtls-dialect=): Use Enum and Init.
1795         (tls_dialect): New Enum and EnumValue entries.
1796         (mabi=): Use Enum and Init.
1797         (calling_abi): New Enum and EnumValue entries.
1798         (mveclibabi=): Use Enum and Init.
1799         (ix86_veclibabi): New Enum and EnumValue entries.
1800
1801 2011-05-13  Nick Clifton  <nickc@redhat.com>
1802
1803         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1804         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1805
1806 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1807
1808         PR middle-end/48984
1809         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1810         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1811         (gimple_boolify): Check for cast for boolean_type_node instead for
1812         BOOLEAN_TYPE.
1813
1814 2011-05-13  Richard Guenther  <rguenther@suse.de>
1815
1816         PR tree-optimization/48172
1817         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1818         multiplying by number of iterations for equal step.
1819         (vect_create_cond_for_alias_checks): Likewise.
1820
1821 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1822
1823         * configure.ac: Use AS_HELP_STRING throughout.
1824         * configure: Regenerate.
1825
1826 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1827
1828         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1829         (ix86_emit_restore_regs_using_mov): Likewise.
1830         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1831
1832 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1833
1834         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1835         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1836         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1837         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1838         RTX_OK_FOR_OLO10_P): ...here.
1839         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1840         SYMBOLIC_CONST.
1841
1842 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1843
1844         * gimplify.c (gimple_boolify): Re-boolify expression
1845         arguments even if expression type is of kind BOOLEAN_TYPE.
1846         (gimplify_boolean_expr): Removed.
1847         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1848         and XOR. Additional take care that we keep expression's type.
1849         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1850         of TRUTH_AND|OR|XOR_EXPR.
1851
1852 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1853
1854         PR tree-optimization/48975
1855         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1856         on all bbs here and free and clear ifc_bbs at the end.
1857
1858 2011-05-12  Richard Guenther  <rguenther@suse.de>
1859
1860         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1861         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1862         until after simple checks.
1863         (gimple_types_compatible_p): Likewise.
1864         (iterative_hash_gimple_type): Always hash pointer targets
1865         and function return and argument types.
1866         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1867         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1868         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1869         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1870         completely in the simple compare section.
1871         (gimple_register_canonical_type): Query the cache again after
1872         registering.
1873
1874 2011-05-12  Richard Guenther  <rguenther@suse.de>
1875
1876         PR tree-optimization/48172
1877         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1878         the number of iterations from the segment size calculation.
1879         (vect_create_cond_for_alias_checks): Adjust.
1880
1881 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1882
1883         PR debug/48967
1884         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1885         if validate_subreg fails.
1886
1887 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1888
1889         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1890         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1891         early.
1892
1893 2011-05-12  DJ Delorie  <dj@redhat.com>
1894
1895         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1896         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1897         created builtin into rx_builtins array.
1898         (rx_builtin_decl): New function.
1899         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1900
1901 2011-05-12  DJ Delorie  <dj@redhat.com>
1902             Nick Clifton  <nickc@redhat.com>
1903
1904         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1905         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1906         (rx_is_legitimate_address): Add pre-decrement and post-increment
1907         addressing in HImode and QImode.  Fix test for out of range
1908         REG+INT addressing.
1909         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1910         (rx_align_for_label): Test label before extracting its usage count.
1911         (rx_adjust_insn_lengths): Fix selection of insn codes.
1912         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1913
1914 2011-05-11  Jason Merrill  <jason@redhat.com>
1915
1916         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1917
1918 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1919
1920         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1921         reindent the subsequent block.
1922
1923 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1924             Paul Pluzhnikov  <ppluzhnikov@google.com>
1925
1926         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1927         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1928         * config.in: Add LINKER_HASH_STYLE.
1929         * configure.ac: Add --with-linker-hash-style.
1930         * configure: Regenerate.
1931
1932 2011-05-11  Richard Guenther  <rguenther@suse.de>
1933
1934         PR middle-end/48964
1935         * gimple.c (iterative_hash_canonical_type): Fix typo.
1936
1937 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
1938
1939         * config/i386/i386.c (legitimize_tls_address)
1940         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1941         expanders directly for TARGET_GNU2_TLS.  Determine pic and
1942         __tls_get_addr symbol reference here.  Update call to
1943         gen_tls_global_dynamic_{32,64} for added arguments.
1944         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1945         expanders directly for TARGET_GNU2_TLS.  Determine
1946         __tls_get_addr symbol reference here.  Update call to
1947         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
1948         unique UNSPEC REG_EQUIV to libcall block.
1949         (ix86_tls_get_addr): Declare static.
1950         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1951         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1952         Do not determine pic and __tls_get_addr symbol reference here. Do not
1953         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1954         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1955         (tls_global_dynamic_64): Add operand 2.  Do not determine
1956         __tls_get_addr symbol reference here.  Do not call
1957         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1958         (tls_local_dynamic_base64): Ditto for operand 1.
1959
1960 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1961
1962         * function.c (expand_function_start): Initialize stack_check_probe_note
1963         only if the generic stack checking mechanism is used.
1964
1965 2011-05-11  Richard Guenther  <rguenther@suse.de>
1966
1967         PR tree-optimization/15256
1968         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1969         (A & B) | C, combine (A op CST1) op CST2.
1970         (tree_ssa_forward_propagate_single_use_vars): Only bother to
1971         visit assigns that have uses.
1972
1973 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1974
1975         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1976         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1977         (unpack_ts_type_common_value_fields): ...this.  Update comment.
1978         (unpack_value_fields): Adjust for renaming.
1979         (lto_input_ts_type_tree_pointers): Split into...
1980         (lto_input_ts_type_common_tree_pointer): ...this and...
1981         (lto_input_ts_type_non_common_tree_pointers): ...this.
1982         (lto_input_tree_pointers): Adjust for above split.
1983         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1984         (pack_ts_type_common_value_fields): ...this.  Update comment.
1985         (lto_output_ts_type_tree_pointers): Split into...
1986         (lto_output_ts_type_common_tree_pointers): ...this and...
1987         (lto_output_ts_type_non_common_tree_pointers): ...this.
1988         (lto_output_tree_pointers): Adjust for above split.
1989         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1990         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1991         * stor-layout.c (vector_type_mode): Adjust location of mode field.
1992         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1993         Define.
1994         (struct tree_type): Split into...
1995         (struct tree_type_common: ...this and...
1996         (struct tree_type_with_lang_specific): ...this and...
1997         (struct tree_type_non_common): ...this.  Adjust accessor macros
1998         accordingly.
1999         (TYPE_VALUES_RAW): Define.
2000         (union tree_node): Update for above changes.
2001         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2002         TS_TYPE_NON_COMMON.
2003         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2004         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2005         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2006         * treestructu.def (TS_TYPE): Remove.
2007         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2008         Define.
2009
2010 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2011
2012         PR debug/48159
2013         * tree-ssa.c (reset_debug_uses): New function.
2014         * tree-flow.h (reset_debug_uses): New prototype.
2015         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2016         * tree-loop-distribution.c (generate_loops_for_partition): Call
2017         reset_debug_uses on the stmts that will be removed.  Keep around
2018         all debug stmts, don't count them as bits in partition bitmap.
2019         (generate_builtin): Don't count debug stmts or labels as bits in
2020         partition bitmap.
2021
2022 2011-05-11  Richard Guenther  <rguenther@suse.de>
2023
2024         * gimple.c (gimple_type_hash_1): Merge with ...
2025         (gimple_type_hash): ... this.
2026         (gtc_visit): Remove mode parameter and simplify accordingly.
2027         (gimple_types_compatible_p_1): Likewise.
2028         (gimple_types_compatible_p): Likewise.
2029         (iterative_hash_gimple_type): Likewise.
2030         (visit): Likewise.
2031         (gimple_type_eq): Adjust.
2032
2033 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2034
2035         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2036         enters the branch create an anti edge in the opposite direction
2037         to prevent the creation of reg-moves.
2038         * modulo-sched.c: Adjust comment to reflect the fact we are
2039         scheduling closing branch.
2040         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2041         (stage_count): New field in struct partial_schedule.
2042         (calculate_stage_count): New function.
2043         (normalize_sched_times): Rename to reset_sched_times and handle
2044         incrementing the sched time of the nodes by a constant value
2045         passed as parameter.
2046         (duplicate_insns_of_cycles): Skip closing branch.
2047         (sms_schedule_by_order): Schedule closing branch.
2048         (ps_insn_find_column): Handle closing branch.
2049         (sms_schedule): Call reset_sched_times and adjust the code to
2050         support scheduling of the closing branch.
2051         (ps_insert_empty_row): Update calls to normalize_sched_times
2052         and rotate_partial_schedule functions.
2053
2054 2011-05-11  Richard Guenther  <rguenther@suse.de>
2055
2056         PR middle-end/48953
2057         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2058
2059 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2060
2061         * opts.c (finish_options): Move warning settings from process_options.
2062         * toplev.c (process_options): Move warning settings to finish_options.
2063
2064 2011-05-11  Richard Guenther  <rguenther@suse.de>
2065
2066         PR tree-optimization/18041
2067         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2068         (simplify_bitwise_binary): ... this.  Handle operand conversions
2069         by applying them to the result instead.
2070         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2071
2072 2011-05-11  Richard Guenther  <rguenther@suse.de>
2073
2074         * gimple.c (gimple_canonical_types_compatible_p): Split out
2075         from gimple_types_compatible_p and friends.  Do not recurse
2076         to pointed-to types.
2077         (gimple_canonical_type_eq): Use it.
2078         (iterative_hash_canonical_type): Split out from
2079         iterative_hash_gimple_type and friends.  Do not recurse
2080         to pointed-to types.
2081         (gimple_canonical_type_hash): Use it, allocate the hash here.
2082
2083 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2084
2085         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2086         recognizing doloop.
2087
2088 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2089
2090         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2091         instead of PREV_INSN.
2092
2093 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2094
2095         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2096         * loop-doloop.c (doloop_condition_get): Likewise.
2097         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2098         (doloop_end): New.
2099         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2100
2101 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2102
2103         * tree.def (CASE_LABEL_EXPR): Add an operand.
2104         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2105
2106 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2107
2108         * c-decl.c (c_override_global_bindings_to_false): Remove.
2109         (global_bindings_p): Don't check
2110         c_override_global_bindings_to_false.
2111         * c-tree.h (c_override_global_bindings_to_false): Remove.
2112         * c-typeck.c (composite_type): Don't set
2113         c_override_global_bindings_to_false.
2114
2115 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2116
2117         PR target/48857, 48495
2118         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2119         (VSX_MODE): Ditto.
2120         (VSX_MOVE_MODE): Ditto.
2121         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2122         VSX vector types.  Add V2DImode.
2123         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2124         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2125         (MODES_TIEABLE_P): Ditto.
2126
2127         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2128         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2129         VSX_VECTOR_MODE.
2130         (init_cumulative_args): Ditto.
2131         (rs6000_function_arg_boundary): Ditto.
2132         (rs6000_function_arg_advance_1): Ditto.
2133         (rs6000_function_arg): Ditto.
2134         (rs6000_function_ok_for_sibcall): Ditto.
2135         (emit_frame_save): Ditto.
2136         (rs6000_function_value): Ditto.
2137         (rs6000_libcall_value): Ditto.
2138
2139 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2140
2141         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2142         i386/darwin-lib.h to $libgcc_tm_file.
2143         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2144
2145 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2146
2147         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2148
2149 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2150
2151         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2152         * config/rs6000/rs6000-tables.opt: New file (generated).
2153         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2154         rs6000/rs6000-tables.opt to extra_options.
2155         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2156         * config/rs6000/rs6000.c (rs6000_select): Remove.
2157         (processor_target_table): Move contents to rs6000-cpus.def.
2158         (darwin_rs6000_override_options): Check
2159         global_options_set.x_rs6000_cpu_index instead of
2160         rs6000_select[1].string.
2161         (rs6000_option_override_internal): Likewise.
2162         (rs6000_handle_option): Don't assert that global structures are in
2163         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2164         (rs6000_default_cpu): New variable.
2165         (rs6000_file_start): Set it instead of local default_cpu.  Check
2166         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2167         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2168         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2169         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2170         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2171         rs6000_select): Remove.
2172         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2173         Remove.
2174         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2175         * config/rs6000/t-rs6000
2176         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2177         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2178         global_options_set.x_rs6000_cpu_index instead of
2179         rs6000_select[1].string.
2180         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2181         global_options_set.x_rs6000_cpu_index instead of
2182         rs6000_select[1].string.
2183
2184 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2185
2186         * config.gcc (libgcc_tm_file): Define instead of including files
2187         from ../../libgcc/config/ in tm_file.
2188         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2189         * configure: Regenerate.
2190         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2191         libgcc_tm.h, cs-libgcc_tm.h): New.
2192         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2193         (clean): Remove libgcc_tm.h.
2194         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2195         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2196         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2197
2198 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2199
2200         PR target/48896
2201         * config/avr/avr.c (avr_ret_register): Return unsigned int
2202         instead of int.
2203         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2204         it to avr_libcall_value.
2205         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2206         expand_expr.
2207         (avr_expand_binop_builtin): Ditto.
2208         (avr_expand_unop_builtin): Ditto.
2209
2210 2011-05-10  DJ Delorie  <dj@redhat.com>
2211
2212         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2213         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2214         * config/rx/rx.c (rx_align_for_label): Add label and
2215         uses_threshold parameters.  Do not align when the label is not
2216         used enough.
2217         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2218
2219 2011-05-10  Richard Guenther  <rguenther@suse.de>
2220
2221         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2222         a series of conversions and apply foldings similar to what
2223         fold-const does.
2224         (tree_ssa_forward_propagate_single_use_vars): Call it.
2225
2226 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2227
2228         PR tree-optimization/48611
2229         PR tree-optimization/48794
2230         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2231         referenced from RESX or EH_DISPATCH arguments.
2232
2233         PR debug/48928
2234         * dfp.c (decimal_to_decnumber): Handle conversion from
2235         dconst{1,2,m1,half}.
2236
2237 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2238
2239         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2240         for !flag_prefer_avx128.
2241         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2242
2243 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2244
2245         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2246         (fold_ternary_loc): Use expr_location_or.
2247
2248 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2249
2250         PR debug/48853
2251         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2252         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2253         Pmode and mem_mode is not VOIDmode.
2254
2255 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2256
2257         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2258         TYPE_QUAL_RESTRICT): Convert to enum.
2259
2260 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2261
2262         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2263         (const_pow2_1_to_8_operand): Ditto.
2264         (const_pow2_1_to_128_operand): Ditto.
2265         (const_pow2_1_to_32768_operand): Ditto.
2266         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2267         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2268         in insn constraint to check integer value of operand 3.
2269         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2270
2271         (PINSR_MODE): New mode iterator.
2272         (sse2p4_1): New mode attribute.
2273         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2274         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2275         iterator.  Use const_int_operand instead of
2276         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2277         exact_log2 in insn constraint to check integer value of operand 3.
2278
2279 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2280
2281         * config/i386/sse.md (blendbits): Remove mode attribute.
2282         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2283         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2284         Check integer value of operand 3 in insn constraint.
2285
2286 2011-05-09  Richard Guenther  <rguenther@suse.de>
2287
2288         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2289         for diagnostics.
2290         (lto_symtab_merge): Likewise.  Do not register types here.
2291         (lto_symtab_merge_decls_2): Likewise.
2292         (lto_symtab_merge_decls_1): Likewise.
2293         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2294         * gimple.c (enum gtc_mode): Declare.
2295         (gimple_types_compatible_p): Make static.
2296
2297 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2298
2299         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2300         temporary register to match Pmode.
2301
2302 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2303
2304         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2305         and *vec_concatv4si_1_avx.
2306
2307 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2308
2309         PR rtl-optimization/48927
2310         * ira-conflicts.c (commutative_constraint_p): Use
2311         recog_data.alternative_enabled_p to disable alternatives where
2312         "enabled" attribute is false.
2313         (get_dup_num): Ditto.
2314         * ira-lives.c (single_reg_class): Ditto.
2315         (ira_implicitly_set_insn_hard_regs): Ditto.
2316
2317 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2318
2319         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2320         (dataflow_set_preserve_mem_locs): Likewise.
2321
2322 2011-05-09  Philipp Thomas  <pth@suse.de>
2323
2324         * config/mep/mep.c (mep_validate_vliw): Syntax description
2325         should not be translated.
2326
2327 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2328
2329         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2330         * config/mips/mips-tables.opt: New file (generated).
2331         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2332         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2333         MIPS_ARCH_OPTION_NATIVE): Define.
2334         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2335         mips-cpus.def.
2336         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2337         mips_parse_cpu): Remove.
2338         (mips_cpu_info_from_opt, mips_default_arch): New.
2339         (mips_handle_option): Don't assert that global structures are in
2340         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2341         (mips_option_override): Use new variables and functions to set
2342         state of these options.  Use strcmp to check for individual CPU names.
2343         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2344         definition.
2345         * config/mips/mips.opt (march=): Use ToLower and Enum.
2346         (mips): Use ToLower, Enum and Var.
2347         (mtune=): Use ToLower and Enum.
2348         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2349
2350 2011-05-08  Jan Hubicka  <jh@suse.cz>
2351
2352         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2353         Arrange type pairs to be UID ordered.
2354         (gimple_lookup_type_leader): Make inline.
2355
2356 2011-05-09  Nick Clifton  <nickc@redhat.com>
2357
2358         PR target/48899
2359         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2360         PROCESSOR_DEFAULT.
2361
2362         PR target/48897
2363         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2364         variable 's'.
2365
2366 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2367
2368         * combine.c (simplify_comparison): Abstract out parts into...
2369         (simplify_compare_const): ... new function.
2370         (try_combine): Generalize parallel arithmetic/compare combining
2371         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2372
2373 2011-05-08  Jan Hubicka  <jh@suse.cz>
2374
2375         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2376         (cgraph_create_virtual_clone): Call hooks once virtual clone
2377         is finished.
2378         * cgraph.h (cgraph_clone_node): Update prototype.
2379         * ipa-cp.c (ipcp_estimate_growth): Use
2380         estimate_ipcp_clone_size_and_time.
2381         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2382         * lto-cgraph.c (input_node): Update.
2383         * ipa-inline.c (recursive_inlining): Update.
2384         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2385         (evaluate_conditions_for_known_args): Break out from ...
2386         (evaluate_conditions_for_edge): ... here.
2387         (evaluate_conditions_for_ipcp_clone): New function.
2388         (inline_node_duplication_hook): Update clone summary based
2389         on parameter map.
2390         (estimate_callee_size_and_time): Rename to ...
2391         (estimate_node_size_and_time): take NODE instead of EDGE;
2392         take POSSIBLE_TRUTHS as argument.
2393         (estimate_callee_size_and_time): Update.
2394         (estimate_ipcp_clone_size_and_time): New function.
2395         (do_estimate_edge_time): Update.
2396
2397 2011-05-08  Richard Guenther  <rguenther@suse.de>
2398
2399         PR middle-end/48908
2400         PR middle-end/48905
2401         * expmed.c (expand_shift_1): Compute adjusted constant shift
2402         amount manually.
2403
2404 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2405
2406         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2407
2408 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2409
2410         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2411
2412 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2413
2414         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2415
2416 2011-05-07  Jan Hubicka  <jh@suse.cz>
2417
2418         * ipa-inline-transform.c (inline_call): Account when program size
2419         decreases.
2420         * ipa-inline.c (relative_time_benefit): New function.
2421         (edge_badness): Reorganize to be power 2 based; fix thinko when
2422         computing badness for negative growth; update comments to match
2423         reality; better dumps.
2424
2425 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2426
2427         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2428         type to bool and adjust comment.
2429         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2430         (fold_mathfn_compare): Remove calls to global_bindings_p.
2431         (fold_inf_compare): Likewise.
2432         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2433         * c-tree.h (global_bindings_p): Adjust prototype.
2434         * c-decl.c (global_bindings_p): Return bool and simplify.
2435
2436 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2437
2438         PR tree-optimization/48837
2439         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2440         when accumulator transformation is performed.
2441
2442 2011-05-06  Jan Hubicka  <jh@suse.cz>
2443
2444         * i386.h (ix86_tune_indices): Add
2445         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2446         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2447         * i386.c (initial_ix86_tune_features): Add
2448         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2449         (software_prefetching_beneficial_p): Remove predicate.
2450         (ix86_option_override_internal): Use new macro.
2451
2452 2011-05-06  Jan Hubicka  <jh@suse.cz>
2453
2454         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2455
2456 2011-05-06  Jan Hubicka  <jh@suse.cz>
2457
2458         * cgraph.c (cgraph_add_thunk): Create real function node instead
2459         of alias node; finalize it and mark needed/reachale; arrange visibility
2460         to be right and add it into the corresponding same comdat group list.
2461         (dump_cgraph_node): Dump thunks.
2462         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2463         cgraph_function_with_gimple_body_p,
2464         cgraph_first_function_with_gimple_body,
2465         cgraph_next_function_with_gimple_body): New functions.
2466         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2467         New macros.
2468         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2469         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2470         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2471         devirtualization when optimizing.
2472         (verify_cgraph_node): Verify thunks.
2473         (cgraph_analyze_function): Analyze thunks.
2474         (cgraph_mark_functions_to_output): Output thunks only in combination
2475         with function they are assigned to.
2476         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2477         alias into normal node.
2478         (assemble_thunks): New functoin.
2479         (cgraph_expand_function): Use it.
2480         * lto-cgraph.c (lto_output_node): Stream thunks.
2481         (input_overwrite_node): Stream in thunks.
2482         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2483         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2484         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2485         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2486         (inline_analyze_function): Do not care about thunk jump functions.
2487         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2488         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2489         cgraph_function_with_gimple_body_p.
2490         * passes.c (do_per_function_toporder): Use
2491         cgraph_function_with_gimple_body_p.
2492         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2493         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2494         (function_called_by_processed_nodes_p): Likewise.
2495
2496 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2497
2498         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2499         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2500         entries.
2501         (mabi=): Replace with separate entries for mabi=altivec,
2502         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2503         mabi=ieeelongdouble and mabi=ibmlongdouble.
2504         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2505         check for -mabi=spe without SPE ABI support here.
2506         (rs6000_handle_option): Replace OPT_mabi_ handling with
2507         OPT_mabi_altivec and OPT_mabi_spe handling.
2508
2509 2011-05-06  Cary Coutant  <ccoutant@google.com>
2510
2511         * dwarf2out.c (contains_subprogram_definition): New function.
2512         (should_move_die_to_comdat): Call it.
2513
2514 2011-05-06  Jeff Law  <law@redhat.com>
2515
2516         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2517         remove_ctrl_stmt_and_useless_edges.
2518         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2519         (fixup_template_block, thread_single_edge): Likewise.
2520         (mark_threaded_blocks): Use THREAD_TARGET.
2521
2522 2011-05-06  Alan Modra  <amodra@gmail.com>
2523
2524         PR target/48900
2525         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2526         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2527
2528 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2531         constraint modifier to "r".
2532
2533 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2534
2535         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2536         fall through for OPT_mcmodel_.
2537
2538 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2539
2540         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2541         instruction sizes.
2542         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2543
2544 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2545
2546         PR target/47930
2547         * config/arm/arm.opt (marm): Document it.
2548         (mthumb): Reject negative variant.
2549
2550 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2551
2552         PR target/48898
2553         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2554         Fix typo in "ccvt" variable name.
2555
2556 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2557
2558         PR target/48895
2559         * config/vms/vms-ar.c (main): Remove cwd variable.
2560
2561 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2562
2563         PR debug/48902
2564         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2565
2566 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2567
2568         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2569         * gimplify.c (gimplify_switch_expr): Likewise.
2570         * omp-low.c (expand_omp_sections): Likewise.
2571         * tree-eh.c (lower_try_finally_switch): Likewise.
2572         (lower_eh_dispatch): Likewise.
2573         * tree.h (build_case_label): Declare.
2574         * tree.c (build_case_label): Define.
2575
2576 2011-05-05  Jason Merrill  <jason@redhat.com>
2577
2578         PR c++/40975
2579         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2580         (copy_statement_list): Don't recurse.
2581         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2582         STATEMENT_LIST.
2583
2584 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2585
2586         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2587         through from -mfpu= handling.
2588         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2589
2590 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2591
2592         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2593         POST_MODIFY.
2594
2595 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2596
2597         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2598         for 11.31.
2599         (hppa[12]*-*-hpux11*): Ditto.
2600         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2601         * config/ia64/hpux-unix2003.h: New.
2602         * config/pa/pa-hpux1131.opt: New.
2603         * config/pa/pa-hpux1131.h: New.
2604         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2605         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2606         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2607
2608 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2609
2610         PR debug/48853
2611         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2612         instead of mode as 3rd argument to recursive call.
2613         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2614         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2615         VOIDmode.
2616         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2617         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2618         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2619         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2620
2621 2011-05-05  Julian Brown  <julian@codesourcery.com>
2622
2623         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2624         parenthesis in D-register case.
2625
2626 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2627
2628         * opt-functions.awk (var_type_struct): Handle Enum options.
2629         * optc-gen.awk: Don't check range of variables of character type.
2630         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2631         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2632         rs6000_sdata_name, rs6000_explicit_options): Remove.
2633         (rs6000_option_override_internal): Check for -malign-power here.
2634         Use global_options_set instead of rs6000_explicit_options.
2635         (rs6000_parse_fpu_option): Remove.
2636         (rs6000_handle_option): Access variables via opts and opts_set
2637         pointers.  Use error_at and warning_at.  Add fall-through
2638         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2639         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2640         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2641         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2642         here.  Don't use rs6000_parse_fpu_option.
2643         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2644         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2645         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2646         (mrecip=): Use Var.
2647         (mspe): Use Var and Save.
2648         (mtraceback=): Use Enum and Var.
2649         (rs6000_traceback_type): New Enum and EnumValue entries.
2650         (mfloat-gprs=): Use Enum, Var and Save.
2651         (rs6000_float_gprs): New Enum and EnumValue entries.
2652         (mlong-double-): use Var and Save.
2653         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2654         (malign-): Use Enum and Var.
2655         (rs6000_alignment_flags): New Enum and EnumValue entries.
2656         (mfpu=): Use Enum.
2657         (fpu_type_t): New Enum and EnumValue entries.
2658         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2659         global_options_set instead of rs6000_explicit_options.
2660         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2661         global_options_set instead of rs6000_explicit_options.
2662         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2663         global_options_set instead of rs6000_explicit_options.
2664         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2665         global_options_set instead of rs6000_explicit_options.
2666         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2667         global_options_set instead of rs6000_explicit_options.
2668         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2669         global_options_set instead of rs6000_explicit_options.
2670         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2671         definition.
2672         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2673         global_options_set instead of rs6000_explicit_options.
2674         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2675         (rs6000_cmodel): New Enum and EnumValue entries.
2676         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2677         global_options_set instead of rs6000_explicit_options.
2678         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2679         (mtls-size=): Use Enum and Var.
2680         (rs6000_tls_size): New Enum and EnumValue entries.
2681
2682 2011-05-05  Michael Matz  <matz@suse.de>
2683
2684         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2685         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2686         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2687         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2688         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2689         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2690         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2691         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2692         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2693         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2694         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2695         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2696         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2697         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2698         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2699         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2700
2701 2011-05-05  Richard Guenther  <rguenther@suse.de>
2702
2703         * expmed.c (expand_variable_shift): Rename to ...
2704         (expand_shift_1): ... this.  Take an expanded shift amount.
2705         For rotates recurse directly not building trees for the shift amount.
2706         (expand_variable_shift): Wrap around expand_shift_1.
2707         (expand_shift): Adjust.
2708
2709 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2710
2711         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2712
2713 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         * tree.h (get_pending_sizes): Remove prototype.
2716         (put_pending_size): Likewise.
2717         (put_pending_sizes): Likewise.
2718         * stor-layout.c (pending_sizes): Delete.
2719         (get_pending_sizes): Likewise.
2720         (put_pending_size): Likewise.
2721         (put_pending_sizes): Likewise.
2722         (variable_size): Do not call put_pending_size and tidy up.
2723         * function.h (struct function): Remove dont_save_pending_sizes_p.
2724         * lto-streamer-in.c (input_function): Do not stream it.
2725         * lto-streamer-out.c (output_function): Likewise.
2726         * tree-inline.c (initialize_cfun): Do not copy it.
2727         * c-decl.c (store_parm_decls): Do not set it.
2728         * omp-low.c (create_task_copyfn): Likewise.
2729         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2730
2731 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2732
2733         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2734         conditions.
2735         (*movdf_internal): Ditto.
2736         (*movdf_internal_nointeger): Ditto.
2737         (*movsf_internal): Ditto.
2738
2739 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2740
2741         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2742         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2743         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2744         (c_variable_size): Remove.
2745         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2746         call put_pending_sizes.
2747         (get_parm_info): Add parameter expr.  Use it to set
2748         arg_info->pending_sizes.
2749         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2750         get_pending_sizes.
2751         * c-parser.c (c_parser_parms_declarator): Update call to
2752         c_parser_parms_list_declarator.
2753         (c_parser_parms_list_declarator): Take parameter expr.  Update
2754         call to push_parm_decl.  Update recursive call.  Don't call
2755         get_pending_sizes.  Update calls to get_parm_info.
2756         (c_parser_objc_method_definition): Update calls to
2757         c_parser_objc_method_decl and objc_start_method_definition.
2758         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2759         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2760         grokparm.
2761         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2762         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2763         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2764
2765 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2766
2767         PR pch/45979
2768         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2769         __ARM_EABI__ hosts.
2770
2771 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2772
2773         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2774         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2775         (spu_output_mi_thunk): New function.
2776
2777 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2778
2779         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2780         targetm.asm_out.print_operand.
2781         * config/sol2.c: Include target.h.
2782
2783 2011-05-04  Jan Hubicka  <jh@suse.cz>
2784
2785         * ipa-inline.c (reset_edge_caches): New function.
2786         (update_caller_keys): Add check_inlinablity_for; do not
2787         reset edge caches; remove now unnecesary loop.
2788         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2789         (update_all_callee_keys): Likewise.
2790         (inline_small_functions): Sanity check cache; update code
2791         recomputing it.
2792
2793 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2794
2795         PR rtl-optimization/47612
2796         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2797         as the last insn of the sequence to be moved.
2798
2799 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2800
2801         PR fortran/48864
2802         * doc/invoke.texi (Ofast): Document that it
2803         enables Fortran's -fno-protect-parens.
2804
2805 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2806
2807         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2808
2809 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2810
2811         * stor-layout.c (variable_size): Do not issue errors.
2812
2813 2011-05-04  Richard Guenther  <rguenther@suse.de>
2814
2815         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2816         for array-ref indices.
2817         (tree_coverage_counter_addr): Likewise.
2818         (build_fn_info_type): Use size_int for index types.
2819         (build_gcov_info): Likewise.
2820
2821 2011-05-04  Richard Guenther  <rguenther@suse.de>
2822
2823         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2824         to build_int_cst.
2825         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2826         for constructor indices.
2827         (push_init_level): Likewise.
2828
2829 2011-05-04  Richard Guenther  <rguenther@suse.de>
2830
2831         * explow.c (promote_mode): Move variable declarations before code.
2832
2833 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2834
2835         * tree.h (build_function_type_array): Declare.
2836         (build_varargs_function_type_array): Declare.
2837         (build_function_type_vec, build_varargs_function_type_vec): Define.
2838         * tree.c (build_function_type_array_1): New function.
2839         (build_function_type_array): New function.
2840         (build_varargs_function_type_array): New function.
2841
2842 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2843
2844         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2845         before setting STMT_VINFO_TYPE.
2846
2847 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2848
2849         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2850         instead of spu_pass_by_reference.
2851
2852 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2853
2854         * calls.c (emit_library_call_value_1): Invoke
2855         promote_function_mode hook on libcall arguments.
2856         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2857         argument being NULL.
2858         * targhooks.c (default_promote_function_mode): Lisewise.
2859         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2860         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2861
2862         * doc/tm.texi: Document that TYPE argument might be NULL.
2863
2864 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2865
2866         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2867
2868 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2869
2870         From Bernd Schmidt
2871         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2872
2873 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2874
2875         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2876         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2877         Move ...
2878         * mips-tfile.c: ... here.
2879         Don't include coretypes.h, tm.h, filenames.h.
2880         (saber_stop): Remove definition and all calls.
2881         [__SABER__]: Remove.
2882         (__LINE__): Remove default.
2883         (Size_t, Ptrdiff_t): Remove definitions.
2884         Replace by size_t, ptrdiff_t.
2885         [!MIPS_DEBUGGING_INFO]: Remove.
2886         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2887         (progname): Add const.
2888         (STATIC): Remove.
2889         Replace all uses by static.
2890         (ALIGN_SYMTABLE_OFFSET): Remove default.
2891         * mips-tdump.c: Don't include coretypes.h, tm.h.
2892         Remove !MIPS_IS_STAB guard.
2893         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2894         $(TM_H), filenames.h dependencies.
2895         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2896
2897 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2898
2899         From Jie Zhang
2900         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2901         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2902
2903 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2904
2905         From Bernd Schmidt
2906         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2907         account and save/restore RETS.
2908         (PROFILE_BEFORE_PROLOGUE): Define.
2909         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2910         the push insn to use predecrement.
2911
2912 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2913
2914         From Jie Zhang
2915         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2916
2917 2011-05-04  Nick Clifton  <nickc@redhat.com>
2918
2919         * config/mn10300/mn10300.c: Include cfgloop.h.
2920         (DUMP): New macro.
2921         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2922         Lcc or a FLcc insn into the instruction stream.
2923         (mn10300_block_contains_call): New function.  Returns true if the
2924         given basic block contains a CALL insn.
2925         (mn10300_loop_contains_call_insn): New function.  Returns true if
2926         the given loop contains a CALL insn.
2927         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2928         to use the SETLB and Lcc or FLcc insns.
2929         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2930         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2931         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
2932         disable the SETLB optimization.
2933         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2934         __SETLB__ or __NO_SETLB__.
2935         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2936         (movsf_internal): Handle MDR register.
2937         (cmpsi): Make visible.
2938         (setlb): New pattern.
2939         (Lcc): New pattern.
2940         (FLcc): New pattern.
2941
2942 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2943
2944         PR target/48860
2945         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2946         for reg<->xmm moves.
2947         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2948         (vec_concatv2di_rex64_sse): Ditto.
2949         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2950         (*vec_extractv2di_1_rex64): Ditto.
2951
2952         Revert:
2953         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2954
2955         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2956         reg<->xmm moves.
2957         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2958
2959 2011-05-04  Richard Guenther  <rguenther@suse.de>
2960
2961         * tree.h (int_const_binop): Remove notrunc argument.
2962         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
2963         create integer constants that are properly truncated.
2964         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2965         (const_binop): Remove zero notrunc argument to int_const_binop.
2966         (size_binop_loc): Likewise.
2967         (fold_div_compare): Likewise.
2968         (maybe_canonicalize_comparison_1): Likewise.
2969         (fold_comparison): Likewise.
2970         (fold_binary_loc): Likewise.
2971         (multiple_of_p): Likewise.
2972         * expr.c (store_constructor): Likewise.
2973         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2974         (maybe_fold_stmt_addition): Likewise.
2975         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2976         * stor-layout.c (layout_type): Likewise.
2977         * tree-data-ref.c (tree_fold_divides_p): Likewise.
2978         * tree-sra.c (build_ref_for_offset): Likewise.
2979         (build_user_friendly_ref_for_offset): Likewise.
2980         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2981         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2982         * tree-ssa-loop-niter.c (inverse): Likewise.
2983         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2984         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2985         * tree-switch-conversion.c (check_range): Likewise.
2986         (build_constructors): Likewise.
2987         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2988         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2989         (extract_range_from_assert): Likewise.
2990         (vrp_int_const_binop): Likewise.
2991         (extract_range_from_binary_expr): Likewise.
2992         (extract_range_from_unary_expr): Likewise.
2993         (check_array_ref): Likewise.
2994         (find_case_label_range): Likewise.
2995         (simplify_div_or_mod_using_ranges): Likewise.
2996         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2997         comparing case labels for merging.
2998
2999 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3000
3001         * dwarf2out.c (debug_str_hash_forced): Removed.
3002         (gen_label_for_indirect_string): Removed.
3003         (get_debug_string_label): Removed.
3004         (AT_string_form): Generate label directly.
3005         (output_indirect_string): Test indirect_string_node for
3006         DW_FORM_strp instead of checking label and refcount.
3007         (prune_indirect_string): Removed.
3008         (prune_unused_types): Don't check debug_str_hash_forced or
3009         call prune_indirect_string.
3010
3011 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3012
3013         PR other/48093
3014         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3015
3016 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3017
3018         PR debug/47994
3019         PR debug/47919
3020         * combine.c (try_combine): Skip debug insns at m_split tests.
3021
3022 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3023
3024         PR42288
3025         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3026         when info_section_emitted.
3027
3028 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3029
3030         * config/mips/mips-opts.h: New.
3031         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3032         to mips-opts.h.
3033         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3034         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3035         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3036         via opts pointer.
3037         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3038         mips-opts.h.
3039         (mips_abi, mips_code_readable): Don't declare.
3040         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3041         (mabi=): Use Enum and Var.
3042         (mips_abi): New Enum and EnumValue entries.
3043         (mcode-readable=): Use Enum and Var.
3044         (mips_code_readable_setting): New Enum and EnumValue entries.
3045         (mr10k-cache-barrier=): Use Enum and Var.
3046         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3047
3048 2011-05-03  Jan Hubicka  <jh@suse.cz>
3049
3050         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3051         replace hash by pointer map.
3052         (cgraph_node_set_element_def, cgraph_node_set_element,
3053         const_cgraph_node_set_element, varpool_node_set_element_def,
3054         varpool_node_set_element, const_varpool_node_set_element): Remove.
3055         (free_cgraph_node_set, free_varpool_node_set): New function.
3056         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3057         * tree-emutls.c: Free varpool node set.
3058         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3059         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3060         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3061         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3062         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3063         Move here from ipa.c; implement using pointer_map
3064         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3065         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3066         debug_cgraph_node_set, varpool_node_set_new,
3067         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3068         dump_varpool_node_set, debug_varpool_node_set):
3069         Move to ipa-uitls.c.
3070         * passes.c (ipa_write_summaries): Update.
3071
3072 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3073
3074         From Mike Frysinger:
3075         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3076         bf542/bf544/bf547/bf548/bf549.
3077
3078 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3079
3080         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3081
3082 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3083
3084         From Bernd Schmidt:
3085         * config/bfin/bfin.md (MOVCC): New mode_macro.
3086         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3087         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3088         comments from generated assembly.
3089
3090 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3091
3092         From Bernd Schmidt
3093         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3094         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3095         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3096         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3097         * config/bfin/lib1funcs.asm (___muldi3): New function.
3098
3099 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3100
3101         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3102         build_function_type_list instead of build_function_type.
3103         Rearrange initialization of `args' to do so.
3104
3105 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3106
3107         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3108         instead of build_function_type.
3109
3110 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3111
3112         * config/rs6000/rs6000.c (spe_init_builtins): Call
3113         build_function_type_list instead of build_function_type.
3114         (paired_init_builtins, altivec_init_builtins): Likewise.
3115         (builtin_function_type): Likewise.
3116
3117 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3118
3119         * config/sh/sh.c (sh_media_init_builtins): Call
3120         build_function_type_list instead of build_function_type.
3121
3122 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3123
3124         * config/sparc/sparc.c (sparc_file_end): Call
3125         build_function_type_list instead of build_function_type.
3126
3127 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3128
3129         * config/alpha/alpha.c (alpha_init_builtins): Call
3130         build_function_type_list instead of build_function_type.
3131
3132 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3133
3134         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3135         build_function_type_list instead of build_function_type.
3136
3137 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3138
3139         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3140         build_function_type_list instead of build_function_type.
3141         Delete `endlink' variable.
3142
3143 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3144
3145         * config/avr/avr.c (avr_init_builtins): Call
3146         build_function_type_list instead of build_function_type.
3147
3148 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3149
3150         * config/picochip/picochip.c (picochip_init_builtins): Call
3151         build_function_type_list instead of build_function_type.
3152         Delete `endlink' variable.
3153
3154 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3155
3156         * config/bfin/bfin.c (bfin_init_builtins): Call
3157         build_function_type_list instead of build_function_type.
3158
3159 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3160
3161         From Bernd Schmidt
3162         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3163         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3164
3165 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3166
3167         From Jie Zhang:
3168         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3169         libbffastfp overrides libgcc when -mfast-fp.
3170
3171 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3172
3173         Originally from Bernd Schmidt
3174         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3175         * config/bfin/bfin.c (override_options): Test it and error if
3176         TARGET_FDPIC.
3177
3178 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3179
3180         Originally From Bernd Schmidt
3181         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3182         FD-PIC.
3183
3184 2011-05-03  Jeff Law  <law@redhat.com>
3185
3186         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3187         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3188         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3189         than accessing AUX field directly.  Free the AUX field before
3190         clearing it.
3191         (thread_block, thread_through_loop_header): Likewise.
3192         (thread_single_edge, mark_threaded_blocks): Likewise.
3193         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3194         (register_jump_thread): Do not attempt to thread to a NULL edge.
3195
3196 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3197
3198         * function.c (init_function_start): Call decide_function_section.
3199         * varasm.c (decide_function_section): New function.
3200         (assemble_start_function): When not using
3201         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3202         or first_function_block_is_cold.
3203         * rtl.h (decide_function_section): Declare.
3204
3205 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3206             Jakub Jelinek  <jakub@redhat.com>
3207
3208         PR target/48774
3209         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3210         only succeed if req_mode is the same as set_mode.
3211
3212 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3213
3214         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3215         * genemit.c (gen_exp): Handle RETURN.
3216         * emit-rtl.c (verify_rtx_sharing): Likewise.
3217         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3218         * rtl.c (copy_rtx): RETURN is shared.
3219         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3220         (ret_rtx): New.
3221         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3222         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3223         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3224         * config/cris/cris.c (cris_expand_return): Likewise.
3225         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3226         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3227         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3228         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3229         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3230         Likewise.
3231         * config/v850/v850.c (expand_epilogue): Likewise.
3232         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3233         * config/arm/arm.md (epilogue): Likewise.
3234         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3235         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3236         variable to ret_reg.
3237
3238 2011-05-03  Richard Guenther  <rguenther@suse.de>
3239
3240         PR lto/48846
3241         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3242         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3243         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3244
3245 2011-05-03  Richard Guenther  <rguenther@suse.de>
3246
3247         * c-decl.c (grokdeclarator): Instead of looking at
3248         TREE_OVERFLOW check if the constant fits in the index type.
3249
3250 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3251
3252         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3253         (vec_store_lanes<mode><mode>): Likewise.
3254
3255 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3256
3257         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3258         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3259         convert_optab_index values.
3260         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3261         * genopinit.c (optabs): Initialize the new optabs.
3262         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3263         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3264         (expand_STORE_LANES): New functions.
3265         * tree.h (build_array_type_nelts): Declare.
3266         * tree.c (build_array_type_nelts): New function.
3267         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3268         (vect_model_load_cost): Likewise.
3269         (vect_store_lanes_supported, vect_load_lanes_supported)
3270         (vect_record_strided_load_vectors): Declare.
3271         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3272         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3273         (vect_transform_strided_load): Split out statement recording into...
3274         (vect_record_strided_load_vectors): ...this new function.
3275         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3276         (write_vector_array, create_array_ref): New functions.
3277         (vect_model_store_cost): Add store_lanes_p argument.
3278         (vect_model_load_cost): Add load_lanes_p argument.
3279         (vectorizable_store): Try to use store-lanes functions for
3280         interleaved stores.
3281         (vectorizable_load): Likewise load-lanes and loads.
3282         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3283         to vect_model_store_cost.
3284         (vect_build_slp_tree): Likewise vect_model_load_cost.
3285
3286 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3287
3288         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3289         * hooks.c (hook_bool_mode_uhwi_false): New function.
3290         * target.def (array_mode_supported_p): New hook.
3291         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3292         * doc/tm.texi: Regenerate.
3293         * stor-layout.c (mode_for_array): New function.
3294         (layout_type): Use it.
3295         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3296         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3297
3298 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3299
3300         PR target/48723
3301         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3302         for -fstack-check if the size to allocate is negative.
3303
3304 2011-05-02  Lawrence Crowl  <crowl@google.com>
3305
3306         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3307         (timevar_cond_start): New for starting a timer only when it is not
3308         already running.
3309         (timevar_cond_stop): New for stopping a timer when it was not already
3310         running.
3311
3312         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3313         (timevar_cond_start): New as above.
3314         (timevar_cond_stop): New as above.
3315
3316         * timevar.def: Add start/stop timers for compiler phases,
3317         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3318         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3319         and TV_PHASE_FINALIZE.
3320         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3321         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3322         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3323         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3324         Make unused TV_OVERLOAD into a start/stop timer.
3325
3326         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3327         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3328         to indicate that they are start/stop timers.
3329
3330         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3331         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3332         Move initialization to do_compile.
3333         (do_compile): Add initialization from above.
3334         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3335
3336         * c-decl.c (c_write_global_declarations): Add start/stop of
3337         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3338
3339         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3340         or TV_PARSE_INLINE, as appropriate.
3341         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3342         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3343
3344 2011-05-02  Jason Merrill  <jason@redhat.com>
3345
3346         PR c++/40975
3347         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3348
3349 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3350
3351         PR c/35445
3352         * c-decl.c (finish_decl): Only create a composite if the types are
3353         compatible.
3354
3355 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3356
3357         * config/fr30/fr30-protos.h (Mmode): Don't define.
3358         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3359         definition where used.
3360         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3361         define.  Expand definitions where used.
3362         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3363         Expand definitions where used.
3364         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3365         rx_function_arg, rx_function_arg_advance,
3366         rx_function_arg_boundary): Expand definitions of those macros.
3367         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3368         definition where used.
3369
3370 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3371
3372         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3373         reg<->xmm moves.
3374         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3375         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3376         with *movv2sf_internal_rex64_avx.
3377         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3378         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3379         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3380         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3381         "vex" in "prefix" attribute calculation.
3382         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3383
3384 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3385
3386         PR target/47951
3387         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3388         inputs match the output.
3389
3390 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3391
3392         PR target/47955
3393         * config/m68k/m68k.c (m68k_expand_prologue): Set
3394         current_function_static_stack_size.
3395
3396 2011-05-02   Jan Hubicka  <jh@suse.cz>
3397
3398         * lto-streamer.c (lto_streamer_cache_insert_1,
3399         lto_streamer_cache_lookup, lto_streamer_cache_create,
3400         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3401         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3402
3403 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3404
3405         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3406         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3407         config/m68k/t-opts: New files.
3408         * config/m68k/m68k-tables.opt: New file (generated).
3409         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3410         extra_options and m68k/t-opts to tmake_file.
3411         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3412         (all_isas): Initialize using m68k-isas.def.
3413         (all_microarchs): Initialize using m68k-microarchs.def.
3414         (m68k_find_selection): Remove.
3415         (m68k_handle_option): Don't assert that global structures are in
3416         use.  Use error_at.  Access variables via opts pointer.  Don't
3417         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3418         directly for -m68020-40 and -m68020-60.
3419         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3420         m68k_tune_entry here.
3421         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3422         to m68k-opts.h.
3423         (m68k_library_id_string): Remove declaration.
3424         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3425         (m68k_library_id_string): New Variable.
3426         (march=, mcpu=, mtune=): Use Enum and Var.
3427
3428 2011-05-02  Richard Guenther  <rguenther@suse.de>
3429
3430         * varasm.c (output_constructor_regular_field): Compute zero-based
3431         index with double-ints.  Make sure to ICE instead of producing
3432         wrong code.
3433         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3434         in asserts.  Properly use a signed type.
3435
3436 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3437
3438         * config/i386/sse.md (V): New mode iterator.
3439         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3440         TARGET_SSE2.