OSDN Git Service

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