OSDN Git Service

* gengtype-state.c (read_state_params_structs): Initialize
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2
3         * gengtype-state.c (read_state_params_structs): Initialize
4         previous.
5
6 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7
8         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
10
11 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
12
13         * config/i386/i386.md (*movtf_internal): Avoid allocating general
14         registers.  Penalize F*r->o alternative to prevent partial memory
15         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
16         CONST_DOUBLE immediates when optimizing function for size.  Do not move
17         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
18         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
19         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
20         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
21         alternatives.
22         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
23
24         (fp_register_operand splitters): Use fp_register_operand
25         constraint.  Do not use FP_REG_P in insn condition.
26         (any_fp_register_operand splitters): Use any_fp_register_operand
27         constraint.  Do not use ANY_FP_REG_P in insn condition.
28
29 2011-05-31  Jan Hubicka  <jh@suse.cz>
30
31         * cgraph.h (cgraph_inline_failed_t): Give enum a name
32         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
33         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
34         (lto_output_edge): Use output_enum and var_len_unsigned.
35         (lto_output_varpool_node): Likewise.
36         (input_overwrite_node): Do not take resolution parameter;
37         extract it from a bitpack.
38         (input_node): Do not read resolution; use input_enum and
39         var_len_unsigned.
40         (input_varpool_node): Likewise.
41         (input_edge): Likewise.
42         (input_cgraph_1): Likewise.
43
44 2011-05-31  Richard Guenther  <rguenther@suse.de>
45
46         * gimple.c (gimple_register_canonical_type): Do not register
47         any types via gimple_register_type.
48
49 2011-05-31  Jan Hubicka  <jh@suse.cz>
50
51         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
52         of thunks.
53
54 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
55
56         PR rtl-optimization/49235
57         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
58         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
59
60 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
61
62         PR tree-optimization/49093
63         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
64         data references.
65
66 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
67
68         PR debug/49047
69         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
70         for concrete functions containing the code of cloned functions.
71
72 2011-05-31  Richard Guenther  <rguenther@suse.de>
73
74         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
75         to ...
76         (forward_propagate_into_comparison_1): ... this.
77         (forward_propagate_comparison): Rename to ...
78         (forward_propagate_into_comparison): ... this.  Split out
79         real forward propagation code to ...
80         (forward_propagate_comparison): ... this.
81         (forward_propagate_into_gimple_cond): Remove looping.
82         (forward_propagate_into_cond): Likewise.
83         (simplify_not_neg_expr): Return whether we have done something.
84         (simplify_gimple_switch): Likewise.
85         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
86         (ssa_forward_propagate_and_combine): ... this.  Re-structure
87         to do a forward forward-propagation walk on BBs and a backward
88         stmt combining walk on BBs.  Consistently re-scan changed statements.
89         (pass_forwprop): Adjust.
90
91 2011-05-30  Ian Lance Taylor  <iant@google.com>
92
93         * godump.c (go_format_type): Correct length of name added to
94         obstack for anonymous field.
95
96 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
97
98         PR target/49186
99         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
100         part of the second operand is 0.
101
102 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
103
104         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
105         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
106         to memory for !TARGET_MEMORY_MISMATCH_STALL.
107         (*movdf_internal_rex64): Do not penalize F->r alternative.
108         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
109         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
110         when optimizing function for size.  Do not move CONST_DOUBLEs
111         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
112         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
113         SUBREGs.  Do not check for MEM_P operands in the insn condition,
114         check for ANY_FP_REGNO_P instead.
115         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
116         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
117         function for speed.
118         * config/i386/i386.c (ix86_option_override_internal): Do not
119         set TARGET_INTEGER_DFMODE_MOVES here.
120
121 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
122
123         PR target/49168
124         * config/i386/i386.md (*movtf_internal): Handle misaligned
125         load/store.
126
127 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
128
129         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
130         DW_TAG_rvalue_reference_type even for
131         -gdwarf-4 -fno-debug-types-section.
132
133 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
134
135         PR tree-optimization/46728
136         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
137         (build_and_insert_binop): New.
138         (gimple_expand_builtin_pow): Reorder args for
139         build_and_insert_call; use build_and_insert_binop; add more
140         optimizations for fractional exponents.
141
142 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
143
144         PR bootstrap/49190
145
146         Revert:
147         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
148
149         * tree.h (struct tree_identifier): Inherit from tree_typed, not
150         tree_common.
151         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
152         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
153         TS_BASE instead of TS_COMMON.
154         * varasm.c (assemble_name): Remove assert.
155
156 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
157
158         * config.gcc: Keep obselete list sorted.
159
160 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
161             Eric Botcazou  <ebotcazou@adacore.com>
162
163         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
164         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
165         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
166         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
167         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
168
169 2011-05-30  Richard Guenther  <rguenther@suse.de>
170
171         * gimple.c (gimple_types_compatible_p_1): Compare record
172         and union type members properly.
173
174 2011-05-30  Richard Guenther  <rguenther@suse.de>
175
176         PR tree-optimization/49210
177         * ipa-split.c (split_function): Care for the case where the call
178         result is not trivially convertible to the result holding variable.
179
180 2011-05-30  Richard Guenther  <rguenther@suse.de>
181
182         PR tree-optimization/49218
183         * tree-vrp.c (adjust_range_with_scev): Properly check whether
184         overflow occured.
185
186 2011-05-30  Richard Guenther  <rguenther@suse.de>
187
188         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
189         New function split out from ...
190         (forward_propagate_into_gimple_cond): ... here.  Adjust.
191         (forward_propagate_into_cond): Likewise.
192         (forward_propagate_comparison): Also propagate into
193         comparisons on assignment RHS.  Change return value to
194         behave similar to forward_propagate_into_cond.
195         (tree_ssa_forward_propagate_single_use_vars): Handle
196         strict-overflow warnings properly for forward_propagate_comparison.
197
198 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
199
200         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
201         from plugin linker.
202         * configure: Regenerate.
203
204 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
205
206         PR tree-optimization/49199
207         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
208         non-reduction operands are either defined in the loop or by induction.
209
210 2011-05-29  Xinliang David Li  <davidxl@google.com>
211
212         * opts-global.c (handle_common_deferred_options): Handle new options.
213         * passes.c (register_one_dump_file): Call register_pass_name.
214         (execute_one_pass): Check explicit enable/disable flag.
215         (passr_hash): New function.
216         (passr_eq): Ditto.
217         (register_pass_name): Ditto.
218         (get_pass_by_name): Ditto.
219         (pass_hash): Ditto.
220         (pass_eq): Ditto.
221         (enable_pass): Ditto.
222         (disable_pass): Ditto.
223         (is_pass_explicitly_enabled_or_disabled): Ditto.
224
225 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
226
227         * config/i386/i386.md (*movoi_internal_avx): Use
228         standard_sse_constant_opcode for alternative 0.
229         (*movti_internal_sse): Ditto.
230         (*movti_internal_rex64): Use standard_sse_constant_opcode for
231         alternative 2.
232         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
233         sselog1 type moves.
234         (*movsi_internal): Ditto.
235         (*movdi_internal): Ditto.  Add ssecvt type moves.
236
237 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
238
239         PR target/48830
240         * rtlanal.c (simplify_subreg_regno): Adjust comment.
241
242 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
243
244         PR rtl-optimization/49095
245         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
246         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
247
248 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
249
250         PR target/43995
251         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
252         recurse_p argument.  Only follow register copies if it is set,
253         and prevent mips_find_pic_call_symbol from recursing.
254         (mips_find_pic_call_symbol): Add a recurse_p argument.
255         Pass it to mips_pic_call_symbol_from_set.
256         (mips_annotate_pic_calls): Update accordingly.
257
258 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
259
260         * emit-rtl.c (try_split): Use a loop to search for
261         NOTE_INSN_CALL_ARG_LOCATIONs.
262
263 2011-05-29  Richard Guenther  <rguenther@suse.de>
264
265         PR tree-optimization/49217
266         * ipa-pure-const.c (propagate_pure_const): Fix typos.
267
268 2011-05-28  Jan Hubicka  <jh@suse.cz>
269
270         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
271         length.
272         (string_slot_free): Remove
273         (create_output_block): Initialize obstack.
274         (destroy_output_block): Free obstack.
275         (lto_string_index): Add PERSISTENT parameter; do not duplicate
276         the string unless it needs to be added into the hash.
277         (lto_output_string_with_length): Add persistent attribute;
278         handle NULL strings.
279         (lto_output_string): Add PERSISTENT parameter.
280         (output_string_cst, output_identifier): Simplify.
281         (lto_output_location_bitpack): Update.
282         (lto_output_builtin_tree): Update.
283         * lto-streamer.h (struct output_block): Add obstack.
284         (lto_output_string, lto_output_string_with_length): Remove
285         declarations; functions are static now.
286
287 2011-05-28  Jan Hubicka  <jh@suse.cz>
288
289         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
290         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
291         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
292         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
293         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
294         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
295         unpack_ts_decl_with_vis_value_fields,
296         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
297         lto_get_builtin_tree): Use enum and variable length i/o.
298         * basic-block.h (profile_status_d): Add PROFILE_LAST.
299         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
300         New functions.
301         (bp_pack_enum, bp_unpack_enum): New macros.
302
303 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
304
305         * genrecog.c: Remove redundant forward declarations.
306
307 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
308
309         * config.gcc: Deprecate mips*-*-openbsd*.
310
311 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
312
313         PR bootstrap/49195
314         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
315         for match_op_dup.
316
317 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
318
319         PR middle-end/48981
320         * gengtype.c (vec_prefix_type): New function.
321         (note_def_vec): Use vec_prefix_type and change the length
322         attribute to be based on the prefix.
323         * vec.c: Include coretypes.h before vec.h.
324         (struct vec_prefix): Remove.
325         (vec_gc_p_reserve): Change the offsetof to sizeof.
326         (vec_gc_p_reserve_exact): Likewise.
327         (vec_heap_p_reserve): Likewise.
328         (vec_heap_p_reserve_exact): Likewise.
329         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
330         (vec_stack_p_reserve): Change the offsetof to sizeof.
331         (vec_stack_p_reserve_exact): Likewise.
332         * vec.h (struct vec_prefix): New struct definition.
333         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
334         (VEC_T_GTY(T,B)): Likewise.
335         (DEF_VEC_FUNC_P(T)): Use prefix field.
336         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
337         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
338
339 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
340
341         PR tree-optimization/46728
342         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
343         (powi_as_mults): Add gimple_set_location.
344         (build_and_insert_call): New.
345         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
346         0.5, 0.25, 0.75, 1./3., or 1./6.
347
348 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
349
350         * doc/contrib.texi: Update copyright years.
351         (Contributors): Add Zdenek Sojka.
352
353 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
354
355         * c-decl.c (c_push_function_context): Copy the current statement
356         list stack.
357         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
358         (finish_struct): Call building_stmt_list_p instead of checking
359         cur_stmt_list.
360         * c-parser.c (c_parser_postfix_expression): Likewise.
361         * c-typeck.c (c_end_compound_stmt): Likewise.
362         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
363         * tree-iterator.c (stmt_list_cache): Change to a VEC.
364         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
365         (free_stmt_list): Likewise.
366         * tree.h (struct tree_statement_list): Include typed_tree instead
367         of tree_common.
368         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
369         as TS_TYPED instead of TS_COMMON.
370
371 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
372             Uros Bizjak <ubizjak@gmail.com>
373
374         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
375         (HAVE_AS_IX86_TLSGDPTL): Define.
376         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
377         (HAVE_AS_IX86_TLSLDMPLT): Define.
378         * configure: Regenerate.
379         * config.in: Regenerate.
380         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
381         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
382         TARGET_SUN_TLS, use @tlsgdplt or @plt.
383         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
384         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
385         @tlsldmplt or @plt.
386         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
387
388 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
389
390         * sched-int.h (struct _haifa_deps_insn_data): New members cond
391         and reverse_cond.
392         (INSN_COND, INSN_REVERSE_COND): New macros.
393         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
394         once.
395         (sched_get_condition_with_rev): Cache the results, and look them up
396         if possible.
397         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
398         are clobbered by the current insn.
399         * target.def (exposed_pipline): New sched data hook.
400         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
401         * doc/tm.texi: Regenerate.
402
403 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
404
405         PR tree-optimization/49170
406         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
407         sincos or cexp.
408
409 2011-05-27  Richard Guenther  <rguenther@suse.de>
410
411         PR middle-end/49189
412         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
413         of comparisons.
414
415 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
416
417         * haifa-sched.c (sched_scan_info): Remove.
418         (schedule_block): Call sched_extend_luids rather than sched_init_luids
419         with NULL args.
420         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
421         Remove functions.
422         (sched_scan): Remove.
423         (sched_extend_luids): Renamed from luids_extend_insn and no longer
424         static.  All callers changed.
425         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
426         static.  All callers changed.
427         (sched_init_luids): Remove all arguments except the first.  All
428         callers changed.  Don't use sched_scan.
429         (haifa_init_h_i_d): Likewise.
430         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
431         manually rather than using sched_init_luids.  Likewise with
432         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
433         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
434         rather than sched_init_luids with NULL args.
435         * sel-sched-ir.c (new_insns): Remove variable.
436         (sched_scan): New static function, previously in haifa-sched.c.  Remove
437         all arguments but the first two; all callers changed.
438         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
439         rather than sched_init_luids.
440         (sel_init_bbs): Remove second argument.  All callers changed.
441         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
442         with NULL arguments.
443         (create_insn_rtx_from_pattern): Likewise.
444         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
445         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
446         (sched_init_insn_luid, sched_extend_luids): Declare.
447         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
448         declarations.
449
450 2011-05-27  Richard Guenther  <rguenther@suse.de>
451
452         PR middle-end/49177
453         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
454         A CMP B ? (T) true : (T) false for non-integral types T again.
455
456 2011-05-27  Jan Hubicka  <jh@suse.cz>
457
458         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
459         so 0 means NULL string.
460         (lto_output_string_with_length): ... here.
461         (lto_output_string, output_string_cst, output_identifier): Update
462         handling of NULL strings.
463         (lto_output_location_bitpack): New function.
464         (lto_output_location): Use it.
465         (lto_output_tree_ref): Use output_record_start.
466         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
467         len values.
468         * lto-streamer-in.c (string_for_index): Break out from ...; offset
469         values by 1.
470         (input_string_internal): ... here;
471         (input_string_cst, input_identifier, lto_input_string): Update handling
472         of NULL strings.
473         (lto_input_location_bitpack): New function
474         (lto_input_location): Use it.
475         (unpack_ts_type_common_value_fields): Pack align & alias in var len
476         values.
477         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
478         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
479         (bp_pack_value): Sanity check the value range.
480         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
481         New functions.
482         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
483         New functions.
484
485 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
486
487         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
488         call_arg_location instructions down the floor.
489
490 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
491
492         PR rtl-optimization/49154
493         * ira.c (setup_pressure_classes): Process class without sublcasses
494         as a candidate for pressure classes.
495
496 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
497
498         PR rtl-optimization/48575
499         * genrecog.c (position_type): New enum.
500         (position): New structure.
501         (decision): Use position structure instead of a string.
502         (root_pos, peep2_insn_pos_list): New variables.
503         (next_position, compare_positions): New functions.
504         (new_decision): Use position structures instead of strings.
505         (maybe_both_true): Likewise.
506         (change_state): Likewise.
507         (write_tree): Likewise.
508         (make_insn_sequence): Likewise.
509
510 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
511
512         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
513         TS_BASE instead of TS_COMMON.
514         (find_decls_types_r): Check for TS_TYPED structure before looking at
515         TREE_TYPE.
516         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
517         Add chain field.
518         (BLOCK_CHAIN): Use new chain field.
519
520 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
521
522         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
523         moves expensive on Power7 also.
524
525 2011-05-26  Richard Guenther  <rguenther@suse.de>
526
527         * fold-const.c (fold_unary_loc): Remove bogus code.
528
529 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
530
531         * tree.h (struct tree_identifier): Inherit from tree_typed, not
532         tree_common.
533         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
534         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
535         TS_BASE instead of TS_COMMON.
536         * varasm.c (assemble_name): Remove assert.
537
538 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
539
540         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
541         substituted first.
542         * libgcc-std.ver: Delete file.
543
544 2011-05-26  Richard Guenther  <rguenther@suse.de>
545
546         PR tree-optimization/48702
547         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
548         only when we know the base address is within bounds.
549         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
550         assume the base address of TARGET_MEM_REFs is in bounds.
551
552 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
553
554         PR target/49099
555         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
556         declaration in TARGET_SOLARIS.
557
558 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
559
560         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
561         The instruction is then expanded explicitly.
562         (supported_compare): Callable instruction.
563         (compare): Likewise.
564
565 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
566
567         PR c++/49165
568         * gimplify.c (shortcut_cond_r): Don't special case
569         COND_EXPRs if they have void type on one of their arms.
570
571 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
572
573         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
574         to reduce duplication, and to achieve a slightly more logical order
575         of operations.
576
577 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
578
579         PR tree-optimization/49161
580         * tree-vrp.c (struct case_info): New type.
581         (compare_case_labels): Sort case_info structs instead of
582         trees, and not primarily by CASE_LABEL uids but by
583         label_for_block indexes.
584         (find_switch_asserts): Put case labels into struct case_info
585         array instead of TREE_VEC, adjust sorting, compare label_for_block
586         values instead of CASE_LABELs.
587
588 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
589
590         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
591         ("orndi3_neon"): Likewise.
592         ("bic<mode>3_neon"): Likewise.
593
594 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
595
596         PR tree-optimization/49038
597         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
598         Ensure at least one epilogue iteration if required by data
599         accesses with gaps.
600         * tree-vectorizer.h (struct _loop_vec_info): Add new field
601         to mark loops that require peeling for gaps.
602         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
603         (vect_get_known_peeling_cost): Take peeling for gaps into
604         account.
605         (vect_transform_loop): Generate epilogue if required by data
606         access with gaps.
607         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
608         loop as requiring an epilogue if there are gaps in the end of
609         the strided group.
610
611 2011-05-25  Ian Lance Taylor  <iant@google.com>
612
613         * godump.c (go_format_type): Output the first field with a usable
614         Go type, if any.
615
616 2011-05-25  Ian Lance Taylor  <iant@google.com>
617
618         * godump.c (go_format_type): Check for invalid type names, pointer
619         target types, and struct field types.
620
621 2011-05-25  Jason Merrill  <jason@redhat.com>
622
623         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
624
625 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
626
627         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
628
629 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
630
631         * config/i386/i386.md (*movqi_extv_1)): Put back
632         "register_operand" check in "type" calculation.
633         (*movqi_extzv_2): Likewise.
634
635 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
636
637         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
638
639 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
640
641         PR bootstrap/49160
642         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
643         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
644         __divxc3, __divtc3): Wrap definitions in #ifndef.
645
646 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
647
648         PR target/49142
649         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
650         "register_operand" check and replace q_regs_operand with
651         QIreg_operand in "type" calculation.
652         (*movqi_extv_1): Likewise.
653         (*movqi_extzv_2_rex64): Likewise.
654         (*movqi_extzv_2): Likewise.
655
656         * config/i386/predicates.md (QIreg_operand): New.
657
658 2011-05-25  Richard Guenther  <rguenther@suse.de>
659
660         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
661         type-based offset disambiguation, streamline MEM_REF and
662         TARGET_MEM_REF handling.
663
664 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
665
666         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
667         (bdesc_special_args): Add pause intrinsic.
668
669         * config/i386/i386.md (UNSPEC_PAUSE): New.
670         (pause): Likewise.
671         (*pause): Likewise.
672         * config/i386/ia32intrin.h (__pause): Likewise.
673
674         * doc/extend.texi (X86 Built-in Functions): Add documentation for
675         pause intrinsic.
676
677 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
678
679         PR tree-optimization/46728
680         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
681         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
682
683 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
684
685         * tree.h (struct tree_exp): Inherit from struct tree_typed.
686         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
687         instead of TS_COMMON.
688
689 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
690
691         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
692         LIBGCC2_GNU_PREFIX is defined.
693         (__N): New macro.
694         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
695         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
696         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
697         __clz_tab): Define using __N.
698         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
699         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
700         * target.def (libfunc_gnu_prefix): New hook.
701         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
702         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
703         * doc/tm.texi: Regenerate.
704         * system.h (LIBGCC2_GNU_PREFIX): Poison.
705         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
706         account.
707         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
708         (init_optabs): Likewise for the bswap libfuncs.
709         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
710         and divide.
711         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
712         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
713         * libgcc-std.ver: Remove.
714         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
715         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
716         libgcc-std.ver.
717         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
718         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
719         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
720         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
721         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
722         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
723         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
724         * config/fixed-bit.h (FIXED_OP): Define differently depending on
725         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
726         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
727
728 2011-05-25  Jan Hubicka  <jh@suse.cz>
729
730         * lto-streamer-out.c (output_record_start): Use lto_output_enum
731         (lto_output_tree): Use output_record_start.
732         * lto-streamer-in.c (input_record_start): Use lto_input_enum
733         (lto_get_pickled_tree): Use input_record_start.
734         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
735         (lto_value_range_error): New function.
736         * lto-streamer.h (lto_value_range_error): Declare.
737         (lto_output_int_in_range, lto_input_int_in_range): New functions.
738         (lto_output_enum, lto_input_enum): New macros.
739
740 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
741
742         * common.opt (flag_stack_usage_info): New variable.
743         (-Wstack-usage): New option.
744         * doc/invoke.texi (Warning options): Document -Wstack-usage.
745         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
746         <OPT_fstack_usage>: Likewise.
747         * toplev.c (output_stack_usage): Handle -Wstack-usage.
748         * calls.c (expand_call): Test flag_stack_usage_info variable instead
749         of flag_stack_usage.
750         (emit_library_call_value_1): Likewise.
751         * explow.c (allocate_dynamic_stack_space): Likewise.
752         * function.c (instantiate_virtual_regs ): Likewise.
753         (prepare_function_start): Likewise.
754         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
755         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
756         * config/arm/arm.c (arm_expand_prologue): Likewise.
757         (thumb1_expand_prologue): Likewise.
758         * config/avr/avr.c (expand_prologue): Likewise.
759         * config/i386/i386.c (ix86_expand_prologue): Likewise.
760         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
761         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
762         * config/mips/mips.c (mips_expand_prologue): Likewise.
763         * config/pa/pa.c (hppa_expand_prologue): Likewise.
764         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
765         * config/s390/s390.c (s390_emit_prologue): Likewise.
766         * config/sh/sh.c (sh_expand_prologue): Likewise.
767         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
768         * config/spu/spu.c (spu_expand_prologue): Likewise.
769
770 2011-05-25  Richard Guenther  <rguenther@suse.de>
771
772         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
773         (gimple_canonical_types_compatible_p): Likewise.
774
775 2011-05-25  Jan Hubicka  <jh@suse.cz>
776
777         PR middle-end/49062
778         * ipa.c (function_and_variable_visibility): Only add to same
779         comdat group list if DECL_ONE_ONLY.
780
781 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
782
783         PR rtl-optimization/49014
784         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
785
786 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
787
788         PR target/49128
789         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
790
791 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
792
793         PR rtl-optimization/48757
794         * ira-build.c (loop_with_eh_edge_p): Rename to
795         loop_with_complex_edge_p, check edges on complexity, make function
796         conditional.
797         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
798         conditional.
799
800 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
801
802         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
803         force flag_ira_share_save_slots to 0.
804
805 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
806
807         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
808         (vt_initialize): Set PROLOGUE_BB unconditionally.
809         Add block comment about CFA_BASE_RTX machinery.
810         Reset FP_CFA_OFFSET to -1 on all invalid paths.
811         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
812
813 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
814
815         PR objc/48187
816         * c-parser.c (c_parser_objc_class_instance_variables): More robust
817         parsing of syntax error in ObjC instance variable lists.  In
818         particular, avoid an infinite loop if there is a stray ']'.
819         Updated error message.
820
821 2011-05-24  Ian Lance Taylor  <iant@google.com>
822
823         * godump.c (go_define): Don't accept a string immediately after
824         another operand.
825
826 2011-05-24  Ian Lance Taylor  <iant@google.com>
827
828         * godump.c (struct godump_container): Add invalid_hash field.
829         (go_format_type): Return false if type is found in invalid_hash.
830         (go_output_typedef): Add invalid type to invalid_hash.
831         (go_finish): Create and delete invalid_hash.
832
833 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
834
835         PR tree-optimization/46728
836         * tree-ssa-math-opts.c (powi_table): New.
837         (powi_lookup_cost): New.
838         (powi_cost): New.
839         (powi_as_mults_1): New.
840         (powi_as_mults): New.
841         (gimple_expand_builtin_powi): New.
842         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
843         (gate_cse_sincos): Remove sincos/cexp restriction.
844
845 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
846
847         PR target/3746
848         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
849         mips-tdump native.
850         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
851         * mips-tdump.c: Likewise.
852
853 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
854
855         PR target/49128
856         * config/i386/driver-i386.c (host_detect_local_cpu): Always
857         add -mno-XXX.  Handle FMA.
858
859 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
860
861         PR rtl-optimization/48633
862         * ira-build.c (loop_with_eh_edge_p): New function.
863         (mark_loops_for_removal): Use it.
864
865 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
866
867         PR rtl-optimization/48971
868         * ira.c (setup_pressure_classes): Don't check register move cost
869         for classes with one registers.  Don't add pressure class if there
870         is a pressure class with the same available hard registers.
871         Check contains_reg_of_mode.  Fix a typo in collecting
872         temp_hard_regset.  Ignore hard registers not belonging to a class.
873
874 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
875
876         PR target/49133
877         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
878
879 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
880             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
881
882         PR gcov-profile/48845
883         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
884
885 2011-05-24  Richard Guenther  <rguenther@suse.de>
886
887         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
888         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
889         (gimple_types_compatible_p_1): Adjust.
890         (iterative_hash_canonical_type): Do not bother about complete vs.
891         incomplete types.
892         (gimple_canonical_types_compatible_p): Likewise.
893
894 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
895
896         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
897
898 2011-05-24  Richard Guenther  <rguenther@suse.de>
899
900         PR bootstrap/49078
901         * gimple.c (gimple_register_canonical_type): Revert
902         previous change.
903         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
904         does not for a tree for the case where it matters.  Cache
905         pointer-type alias-sets.
906
907 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
908
909         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
910         (OBJS): Remove options.o, opts-common.o and prefix.o.
911         (OBJS-libcommon-target): New.
912         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
913         (BACKEND): Include libcommon-target.a.
914         (MOSTLYCLEANFILES): Include libcommon-target.a.
915         (libcommon-target.a): New.
916         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
917         prefix.o.
918
919 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
920
921         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
922         parts of output shared with the driver.
923         * optc-gen.awk: Don't generate parts of output not shared with the
924         driver.
925         * opth-gen.awk: Remove GCC_DRIVER conditionals.
926         * doc/options.texi (SourcerInclude): Mention options-save.c.
927         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
928         (OBJS): Add options-save.o.
929         (options-save.c, options-save.o): New.
930         (options.o): Update dependencies.
931         (gcc-options.o): Remove.
932         (mostlyclean): Remove options-save.c.
933
934 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
935
936         PR debug/49032
937         * dbxout.c: Include cgraph.h.
938         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
939         and without value expr, return NULL if no varpool node exists for
940         it or if it is not needed.
941         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
942
943         PR c/49120
944         * c-decl.c (start_decl): Convert expr to void_type_node.
945
946 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
947
948         PR rtl-optimization/48826
949         * emit-rtl.c (try_split): When splitting a call that is followed
950         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
951
952 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
953
954         * cfgexpand.c (expand_debug_expr): For unused non-addressable
955         parameters passed in memory prefer using DECL_INCOMING_RTL over
956         the pseudos it will be copied into.
957
958 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
959
960         PR target/47315
961         * config/i386/i386.c (ix86_option_override_internal): Save the
962         initial options after checking vzeroupper.
963
964 2011-05-23  David Li  <davidxl@google.com>
965
966         PR tree-optimization/48988
967         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
968         Initialize has_valid_pred for each pred chain.
969
970 2011-05-23  Richard Guenther  <rguenther@suse.de>
971
972         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
973         (iterative_hash_gimple_type): Always hash type names.
974
975 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
976
977         * c-typeck.c (build_function_call_vec): Tweak call to
978         check_function_arguments.
979
980 2011-05-23  Richard Guenther  <rguenther@suse.de>
981
982         PR tree-optimization/49115
983         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
984         is not necessarily carried out, do not claim it kills the ref.
985         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
986
987 2011-05-23  Richard Guenther  <rguenther@suse.de>
988
989         PR middle-end/15419
990         * builtins.c (fold_builtin_memory_op): Be less restrictive about
991         what pointer types we accept for folding.
992
993 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
994
995         * gthr-gnat.c: Remove.
996         * gthr-gnat.h: Remove.
997         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
998         * config/t-freebsd (LIB2ADDEH): Likewise.
999         * config/t-linux (LIB2ADDEH): Likewise.
1000         * config/t-sol2 (LIB2ADDEH): Likewise.
1001         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1002         * configure.ac (target_thread_file): Remove gnat handling.
1003         * configure: Regenerate.
1004         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1005
1006 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1007             Eric Botcazou  <ebotcazou@adacore.com>
1008
1009         * gcov.c (create_file_names): If no object directory is specified,
1010         keep the directory of the file.
1011
1012 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1013
1014         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1015         * configure: Regenerate.
1016
1017 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1018
1019         PR middle-end/48973
1020         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1021         failed and the comparison has a single bit signed type, use
1022         constm1_rtx instead of const1_rtx for true value.
1023         (do_store_flag): If ops->type is single bit signed type, disable
1024         signel bit test optimization and pass -1 instead of 1 as last
1025         parameter to emit_store_flag_force.
1026
1027 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1028
1029         PR target/45098
1030         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1031         function.
1032         (infer_loop_bounds_from_undefined): Use new function.
1033
1034 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1035
1036         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1037         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1038         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1039         and -O0 otherwise.
1040         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1041
1042 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1043
1044         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1045         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1046         returns true.
1047
1048 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1049
1050         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1051
1052 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1053
1054         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1055         UNSPEC_MOVE_PIC pattern.
1056
1057 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1058
1059         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1060         (sparc-*-rtems*): Likewise.
1061         (sparc64-*-elf*): Likewise.
1062         (sparc64-*-rtems*): Likewise.
1063         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1064         * config/sparc/t-crtin: New file.
1065         * config/sparc/t-sol2 (crti.o): Delete rule.
1066         (crtn.o): Likewise.
1067         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1068         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1069         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1070         (ENDFILE_SPEC): Add crtn.o.
1071
1072 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1073
1074         PR middle-end/48689
1075         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1076         CODE_CONTAINS_STRUCT (TS_COMMON).
1077
1078 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1079
1080         PR middle-end/49029
1081         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1082         only after deciding which mode to use.
1083
1084 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1085
1086         PR target/45098
1087         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1088         for call to get_shiftadd_cost.
1089
1090 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1091
1092         PR target/49104
1093         * config/i386/cpuid.h (bit_MMXEXT): New define.
1094
1095 2011-05-22  Nick Clifton  <nickc@redhat.com>
1096
1097         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1098         initialisation of non-existant args[2] element.  Use args[] array
1099         not arg[] array to pass arguments to build_function_type_list.
1100
1101 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1102
1103         PR tree-optimization/49087
1104         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1105
1106 2011-05-21  Jason Merrill  <jason@redhat.com>
1107
1108         PR c++/49092
1109         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1110         static storage duration.
1111
1112 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1113
1114         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1115         frame pointer.
1116
1117 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1118
1119         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1120         false if there are call-saved registers here...
1121         (sparc_can_use_return_insn_p): ...but here instead.
1122         (save_or_restore_regs): Fix thinko.
1123         (sparc_expand_prologue): Use current_function_is_leaf.
1124         (sparc_frame_pointer_required): Likewise.
1125
1126 2011-05-21  Nick Clifton  <nickc@redhat.com>
1127
1128         PR target/49098
1129         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1130
1131 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1132
1133         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1134         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1135
1136 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1137
1138         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1139         * optc-gen.awk: Move common code to opt-read.awk.
1140         * opth-gen.awk: Likewise.
1141         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1142
1143 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1144
1145         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1146
1147 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1148
1149         PR target/45098
1150         * tree-ssa-loop-ivopts.c: Include expmed.h.
1151         (get_shiftadd_cost): New function.
1152         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1153
1154 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1155
1156         PR bootstrap/49086
1157         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1158         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1159
1160 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1161
1162         * Makefile.in: Update comment referring to $(OBJS-common).
1163
1164 2011-05-20  Ian Lance Taylor  <iant@google.com>
1165
1166         * godump.c (go_output_typedef): Put enum constants in the macro
1167         hash table to avoid duplicate Go const definitions.
1168
1169 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1170
1171         * Makefile.in (LIBDEPS): Add libcommon.a.
1172         (LIBS): Likewise.
1173         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1174         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1175         pretty-print.o and version.o.
1176         (OBJS-libcommon): New.
1177         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1178         (BACKEND): Add libcommon.a.
1179         (MOSTLYCLEANFILES): Likewise.
1180         (libcommon.a): New.
1181         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1182         (cpp$(exeext)): Likewise.
1183         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1184         pretty-print.o and input.o.
1185         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1186         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1187         (errors.o): Remove.
1188         (mips-tfile): Don't explicitly use version.o.
1189         (mips-tdump): Likewise.
1190         (gcov.o): Depend on $(DIAGNOSTIC_H).
1191         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1192         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1193         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1194         * gcov-dump.c: Include intl.h and diagnostic.h.
1195         (main): Initialize diagnostics.
1196         * gcov.c: Include diagnostic.h.
1197         (fnotice): Remove.
1198         (main): Initialize diagnostics.
1199         * lto-wrapper.c: Include diagnostic.h.
1200         (main): Initialize diagnostics.
1201
1202 2011-05-20  Michael Matz  <matz@suse.de>
1203
1204         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1205
1206 2011-05-20  Michael Matz  <matz@suse.de>
1207             Richard Guenther  <rguenther@suse.de>
1208
1209         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1210         use lto_streamer_cache_append directly instead of returning a VEC.
1211         (preload_common_node): Remove.
1212         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1213         track seen nodes.
1214         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1215
1216 2011-05-20  Richard Guenther  <rguenther@suse.de>
1217
1218         PR tree-optimization/49079
1219         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1220         MEM_REFs correctly for the trailing array access detection.
1221         Special case constants the same way as decls for overall size
1222         constraining.
1223
1224 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1225
1226         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1227         argument expansion.
1228
1229 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1230
1231         PR tree-optimization/49073
1232         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1233         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1234         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1235
1236 2011-05-20  Richard Guenther  <rguenther@suse.de>
1237
1238         PR middle-end/48849
1239         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1240         of pointer types the same way the middle-end does.
1241
1242 2011-05-20  Richard Guenther  <rguenther@suse.de>
1243
1244         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1245         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1246
1247 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1248
1249         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1250         (fma4_fmaddsub): Likewise
1251
1252 2011-05-19  Jan Hubicka  <jh@suse.cz>
1253
1254         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1255         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1256         (type_pair_cache): New static var.
1257         (lookup_type_pair): Use fixed sized custom hash; make inline.
1258         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1259         calls of lookup_type_pair.
1260         (print_gimple_types_stats): Remove cache stats.
1261         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1262         and gtc_ob.
1263
1264 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1265
1266         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1267         when TARGET_RDRND is active.
1268         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1269         Generate dummy SImode target register when target is NULL.
1270
1271 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1272
1273         * config/arm/arm-fpus.def: New.
1274         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1275         arm-fpus.def.
1276         * config/arm/arm-tables.opt: Regenerate.
1277         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1278         (arm_option_override): Don't decode FPU name to string here.
1279         * config/arm/arm.opt (mfpu=): Use Enum.
1280         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1281         Update dependencies.
1282
1283 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1284
1285         * collect2.c: Include diagnostic.h.
1286         (fatal_perror, fatal, error, fancy_abort): Remove.
1287         (main): Set progname.  Call xmalloc_set_program_name and
1288         diagnostic_initialize.
1289         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1290         scan_libraries, resolve_lib_name): Call fatal_error instead of
1291         fatal and fatal_perror.
1292         * collect2.h (error, fatal, fatal_perror): Don't declare.
1293         * tlink.c: Include diagnostic-core.h.
1294         (recompile_files): Call fatal_error instead of fatal_perror.
1295         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1296         pretty-print.o and input.o.
1297         (collect2.o, tlink.o): Update dependencies.
1298
1299 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1300
1301         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1302
1303 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305         PR target/40483
1306         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1307         COMDAT group syntax, both SPARC and x86 variants.
1308         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1309         * configure: Regenerate.
1310         * config/sol2.h (TARGET_SOLARIS): Define.
1311         (PUSHSECTION_FORMAT): Remove.
1312         (SECTION_NAME_FORMAT): Define.
1313         * config/sol2.c: Include hashtab.h.
1314         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1315         expansion, using SECTION_NAME_FORMAT.
1316         (solaris_comdat_htab): New variable.
1317         (struct comdat_entry): Define.
1318         (comdat_hash): New function.
1319         (comdat_eq): New function.
1320         (solaris_elf_asm_comdat_section): New function.
1321         (solaris_define_comdat_signature): New function.
1322         (solaris_code_end): New function.
1323         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1324         (solaris_code_end): Declare.
1325         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1326         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1327         solaris_code_end.
1328         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1329         Remove ATTRIBUTE_UNUSED.
1330         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1331         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1332         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1333         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1334         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1335         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1336         (PUSHSECTION_FORMAT): Remove.
1337         (SECTION_NAME_FORMAT): Redefine.
1338
1339 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1340
1341         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1342         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1343         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1344
1345 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1346             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1347
1348         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1349
1350 2011-05-19  Richard Guenther  <rguenther@suse.de>
1351
1352         PR middle-end/48985
1353         * tree-object-size.c (addr_object_size): If the pointed-to
1354         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1355
1356 2011-05-19  Richard Guenther  <rguenther@suse.de>
1357
1358         * gimple.c (gimple_types_compatible_p_1): Compare names of
1359         the types themselves.
1360         (iterative_hash_gimple_type): And hash them that way.
1361         (gimple_register_type_1): If we register a main variant properly
1362         initialize the leader to ourselves.
1363
1364 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1365
1366         PR target/45098
1367         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1368         get_loop_invariant_expr_id.
1369         (get_loop_invariant_expr_id): Use get_expr_id.
1370         (parm_decl_cost): New function.
1371         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1372         Improve bound cost estimation.  Use different inv_expr_id for elim and
1373         express cases.
1374
1375 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1376
1377         PR target/45098
1378         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1379         cost_base.cost == 0.
1380
1381 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1382
1383         PR target/49002
1384         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1385         Properly handle load cast.
1386
1387 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1388
1389         PR tree-optimization/49039
1390         * tree-vrp.c (extract_range_from_binary_expr): For
1391         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1392         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1393
1394 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1395
1396         PR target/45098
1397         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1398
1399 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1400
1401         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1402         (*tls_global_dynamic_64): Ditto.
1403         (*tls_local_dynamic_base_32_gnu): Ditto.
1404         (*tls_local_dynamic_base_64): Ditto.
1405         (tls_initial_exec_64_sun): Ditto.
1406
1407 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1408
1409         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1410         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1411         bf592-none.
1412         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1413         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1414         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1415         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1416         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1417         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1418         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1419
1420 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1421
1422         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1423         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1424         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1425         target_thread_pointer, arm_structure_size_boundary, struct
1426         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1427         struct abi_name, arm_all_abis): Remove.
1428         (arm_option_override) Don't process most enumerated option values here.
1429         Don't process target_fpe_name here.  Work with integer not string for
1430         structure size boundary; use separate diagnostics for each case.
1431         * config/arm/arm.h (enum float_abi_type, enum
1432         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1433         to arm-opts.h.
1434         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1435         arm_structure_size_boundary): Remove.
1436         * config/arm/arm.opt (mabi=): Use Enum and Init.
1437         (arm_abi_type): New Enum and EnumValue entries.
1438         (mfloat-abi=): Use Enum and Init.
1439         (float_abi_type): New Enum and EnumValue entries.
1440         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1441         (mfp16-format=): Use Enum and Init.
1442         (arm_fp16_format_type): New Enum and EnumValue entries.
1443         (mstructure-size-boundary=): Use UInteger and Init.
1444         (mtp=): Use Enum and Init.
1445         (arm_tp_type): New Enum and EnumValue entries.
1446
1447 2011-05-18  Richard Guenther  <rguenther@suse.de>
1448
1449         PR tree-optimization/49018
1450         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1451         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1452         gimple_has_side_effects.
1453
1454 2011-05-18  Richard Guenther  <rguenther@suse.de>
1455
1456         * gimple.c (gimple_register_type_1): New function, split out from ...
1457         (gimple_register_type): ... here.  Avoid infinite recursion.
1458
1459 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1460
1461         PR tree-optimization/41881
1462         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1463         reduction_chains along with a macro for its access.
1464         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1465         (destroy_loop_vec_info): Free reduction chains.
1466         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1467         (vect_is_slp_reduction): New function.
1468         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1469         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1470         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1471         definition types for reduction chains.
1472         (vect_supported_load_permutation_p): Don't allow permutations for
1473         reduction chains.
1474         (vect_analyze_slp_instance): Support reduction chains.
1475         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1476         (vect_get_constant_vectors):  Handle reduction chains.
1477         (vect_schedule_slp_instance): Mark the first statement of the
1478         reduction chain as reduction.
1479
1480 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1481
1482         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1483         names for group elements access.
1484         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1485         reduction chains as well.  Remove data reference and interleaving
1486         related words from the fields names.
1487         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1488         elements access.
1489         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1490         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1491         vect_update_interleaving_chain, vect_same_range_drs,
1492         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1493         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1494         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1495         vect_analyze_group_access, vect_analyze_data_ref_access,
1496         vect_create_data_ref_ptr, vect_transform_strided_load,
1497         vect_record_strided_load_vectors): Likewise.
1498         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1499         vect_model_load_cost, vectorizable_store, vectorizable_load,
1500         vect_remove_stores, new_stmt_vec_info): Likewise.
1501         * tree-vect-slp.c (vect_build_slp_tree,
1502         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1503
1504 2011-05-18  Richard Guenther  <rguenther@suse.de>
1505
1506         PR middle-end/48989
1507         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1508         operand verification.
1509         (verify_gimple_assign_binary): Likewise.
1510         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1511         to non-1-precision BOOLEAN_TYPEs.
1512
1513 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1514
1515         PR target/45098
1516         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1517
1518 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1519
1520         PR tree-optimization/49000
1521         * tree-ssa.c (execute_update_addresses_taken): Call
1522         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1523         be rewritten and decl has been marked for renaming, reset
1524         the debug stmt.
1525
1526 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1527
1528         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1529         enum_opts_set when testing if attributes have set -mfpmath=.
1530
1531 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1532
1533         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1534
1535 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1536
1537         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1538         info->entry with 0
1539         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1540         id.transform_lang_insert_block with NULL.
1541
1542 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1543
1544         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1545         (output_fp_compare): Change args 3 and 4 to bool.
1546         (ix86_expand_call): Change arg 6 to bool.
1547         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1548         (ix86_attr_length_vex_default): Change arg 3 to bool.
1549         * config/i386/i386.md: Update all uses.
1550         * config/i386/i386.c: Ditto.
1551         (ix86_flags_dependent): Change return type to bool.
1552
1553 2011-05-17  Richard Guenther  <rguenther@suse.de>
1554
1555         * gimple.c (type_hash_pair_compare): Fix comparison.
1556
1557 2011-05-17  Richard Guenther  <rguenther@suse.de>
1558
1559         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1560         case some more, fix final hash value of the non-singleton case.
1561
1562 2011-05-17  Richard Guenther  <rguenther@suse.de>
1563
1564         PR bootstrap/49013
1565         Revert
1566         2011-05-16  Richard Guenther  <rguenther@suse.de>
1567
1568         * gimple.c (gimple_types_compatible_p_1): Use names of the
1569         type itself, not its main variant.
1570         (iterative_hash_gimple_type): Likewise.
1571
1572 2011-05-17  Richard Guenther  <rguenther@suse.de>
1573
1574         * gimple.c (gimple_register_canonical_type): Use the main-variant
1575         leader for computing the canonical type.
1576
1577 2011-05-17  Nick Clifton  <nickc@redhat.com>
1578
1579         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1580         moves.
1581
1582         * config/rx/rx.md: Add peephole to remove redundant extensions
1583         after loads.
1584         (bitset_in_memory): Use rx_restricted_mem_operand.
1585         (bitinvert_in_memory): Likewise.
1586         (bitclr_in_memory): Likewise.
1587
1588 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1589             Nick Clifton  <nickc@redhat.com>
1590
1591         * config/rx/rx.md: Add peepholes to match a register move followed
1592         by a comparison of the moved register.  Replace these with an
1593         addition of zero that does both actions in one instruction.
1594
1595 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1596
1597         PR target/48986
1598         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1599         predicate to allow CONST_INT.
1600         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1601
1602 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1603
1604         * opts-common.c (opt_enum_arg_to_value): New.
1605         * opts.h (opt_enum_arg_to_value): Declare.
1606         * config/i386/i386.opt (fpmath): Remove.
1607         (mfpmath=): Use Enum, Init and Save.
1608         (fpmath_unit): New Enum and EnumValue entries.
1609         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1610         name for function fpmath state.
1611         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1612         * config/i386/i386.c: Include diagnostic.h.
1613         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1614         (ix86_target_string): Take enum fpmath_unit value instead of string.
1615         (ix86_debug_options): Update call to ix86_target_string.
1616         (ix86_option_override_internal): Don't process fpmath strings here.
1617         (x86_function_specific_save, ix86_function_specific_restore):
1618         Don't handle fpmath state specially.
1619         (ix86_function_specific_print): Pass fpmath state to
1620         ix86_target_string instead of printing in this function.
1621         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1622         Handle enum attributes.
1623         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1624         (ix86_valid_target_attribute_tree): Update option_strings
1625         handling.  Handle fpmath as enum option.
1626         (ix86_can_inline_p): Update field names for function fpmath state.
1627         (ix86_expand_builtin): Update call to ix86_target_string.
1628         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1629         (ix86_fpmath): Remove.
1630         * config/i386/t-i386 (i386.o): Update dependencies.
1631
1632 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1633
1634         PR preprocessor/48677
1635         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1636         from decoded_options[0], not from itself.
1637
1638 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1639
1640         * config/i386/constraints.md (z): New constraint.
1641         * config/i386/i386.c (c): New mode attribute.
1642         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1643         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1644         constraint for operand 0.
1645         (*call_vzeroupper): Ditto.
1646         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1647         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1648         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1649         Use "lzm" constraint for operand 0.
1650         (*call_pop_vzeroupper): Ditto.
1651         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1652         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1653         constraint for operand 0.
1654         (*sibcall_vzeroupper): Ditto.
1655         (*sibcall_rex64_ms_sysv): Ditto.
1656         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1657         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1658         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1659         (*sibcall_pop_vzeroupper): Ditto.
1660         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1661         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1662         mode iterator.  Use "<c>zm" constraint for operand 1.
1663         (*call_value_vzeroupper): Ditto.
1664         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1665         for operand 1.
1666         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1667         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1668         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1669         (*call_value_pop_vzeroupper): Ditto.
1670         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1671         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1672         mode iterator.  Use "Uz" constraint for operand 1.
1673         (*sibcall_value_vzeroupper): Ditto.
1674         (*sibcall_value_rex64_ms_sysv): Ditto.
1675         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1676         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1677         constraint for operand 1.
1678         (*sibcall_value_pop_vzeroupper): Ditto.
1679         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1680         and "z" constraint for operand 2.
1681         (*tls_global_dynamic_32_gnu): Ditto.
1682         (*tls_local_dynamic_base_32_gnu): Ditto.
1683         (*tls_local_dynamic_base_64): Ditto.
1684         (*tls_local_dynamic_32_once): Ditto.
1685         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1686         Update all callers.
1687         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1688
1689 2011-05-16  Richard Guenther  <rguenther@suse.de>
1690
1691         * gimple.c (gimple_types_compatible_p_1): Use names of the
1692         type itself, not its main variant.
1693         (iterative_hash_gimple_type): Likewise.
1694
1695 2011-05-16  Richard Guenther  <rguenther@suse.de>
1696
1697         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1698         always visit pointer target and function result and argument types.
1699
1700 2011-05-16  Jason Merrill  <jason@redhat.com>
1701
1702         PR c++/48999
1703         * tree-inline.c (copy_statement_list): Put back recursion.
1704
1705 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1706
1707         PR target/27663
1708         PR target/41076
1709         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1710         * config/avr/avr.md ("*ior<mode>qi.byte0",
1711         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1712
1713 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1714
1715         PR target/45099
1716         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1717         register is needed for a function argument.
1718
1719 2011-05-16  Richard Guenther  <rguenther@suse.de>
1720
1721         * gimple.c (struct type_hash_pair): New type.
1722         (type_hash_pair_compare): New function.
1723         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1724
1725 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1726
1727         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1728
1729 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1730
1731         * config/i386/i386.md (floating point move splitters): Fix
1732         usage of standard_80387_constant_p.
1733         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1734
1735 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1738
1739 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1740
1741         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1742         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1743         (tree_ssa_lim_finalize): Likewise.
1744
1745 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1746
1747         * config/i386/constraint.md (Yd, Yx): New register constraints.
1748         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1749         Yd conditional register constraint.
1750         (*movtf_internal): Use standard_sse_constant_opcode.
1751         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1752         Yx conditional register constraint.
1753         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1754         Yd conditional register constraint.  Use standard_sse_constant_p to
1755         check for valid SSE constants and call standard_sse_constant_opcode to
1756         output SSE insn.
1757         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1758         constants and call standard_sse_constant_opcode to output SSE insn.
1759         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1760         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1761         optimize_size is set.
1762         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1763
1764 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1765
1766         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1767
1768 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1769
1770         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1771         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1772         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1773         (evaluate_conditions_for_ipcp_clone): Removed.
1774         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1775         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1776         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1777
1778 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1779
1780         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1781         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1782         lieu of MAY_HAVE_DEBUG_STMTS.
1783         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1784         debug statements if !MAY_HAVE_DEBUG_STMTS.
1785
1786 2011-05-13  Martin Thuresson  <martint@google.com>
1787
1788         PR gcov-profile/47793
1789         * libgcov.c (gcov_exit): Support relative profile paths.
1790         * doc/invoke.texi (-fprofile-dir): Update for above change.
1791
1792 2011-05-13  Richard Guenther  <rguenther@suse.de>
1793
1794         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1795         type-pair caching, do not compare hashes.
1796
1797 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1798
1799         PR middle-end/48965
1800         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1801         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1802
1803 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1804
1805         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1806         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1807         compatible type for TRUTH_NOT_EXPR.
1808
1809 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1810
1811         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1812         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1813         can_create_pseudo_p ().
1814
1815 2011-05-13  Richard Guenther  <rguenther@suse.de>
1816
1817         PR lto/48978
1818         * gimple.c (iterative_hash_gimple_type): Revert change in
1819         pointer target and function result and argument hashing.
1820
1821 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1822
1823         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1824         (*movxf_internal_nointeger): Ditto.
1825         (*movdf_internal_rex64): Ditto.
1826         (*movdf_internal): Ditto.
1827         (*movdf_internal_nointeger): Ditto.
1828         (*movsf_internal): Ditto.
1829         (sincos splitters): Use can_create_pseudo ().
1830
1831 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1832
1833         * config/i386/i386-opts.h: New.
1834         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1835         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1836         ix86_section_threshold): Remove.
1837         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1838         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1839         OPT_mbranch_cost_.
1840         (ix86_option_override_internal): Don't decode strings for options
1841         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1842         __attribute__ uses in remaining diagnostics for options with
1843         string arguments.  Don't check for integer arguments being negative.
1844         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1845         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1846         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1847         ix86_branch_cost, ix86_section_threshold): Remove.
1848         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1849         HeaderInclude.
1850         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1851         but not Var.
1852         (masm=): Use Enum and Init.
1853         (asm_dialect): New Enum and EnumValue entries.
1854         (mbranch-cost=): Use UInteger.
1855         (mlarge-data-threshold=): Use UInteger and Init.
1856         (mcmodel=): Use Enum and Init.
1857         (cmodel): New Enum and EnumValue entries.
1858         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1859         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1860         mregparm=): Use UInteger.
1861         (mstringop-strategy=): Use Enum and Init.
1862         (stringop_alg): New Enum and EnumValue entries.
1863         (mtls-dialect=): Use Enum and Init.
1864         (tls_dialect): New Enum and EnumValue entries.
1865         (mabi=): Use Enum and Init.
1866         (calling_abi): New Enum and EnumValue entries.
1867         (mveclibabi=): Use Enum and Init.
1868         (ix86_veclibabi): New Enum and EnumValue entries.
1869
1870 2011-05-13  Nick Clifton  <nickc@redhat.com>
1871
1872         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1873         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1874
1875 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1876
1877         PR middle-end/48984
1878         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1879         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1880         (gimple_boolify): Check for cast for boolean_type_node instead for
1881         BOOLEAN_TYPE.
1882
1883 2011-05-13  Richard Guenther  <rguenther@suse.de>
1884
1885         PR tree-optimization/48172
1886         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1887         multiplying by number of iterations for equal step.
1888         (vect_create_cond_for_alias_checks): Likewise.
1889
1890 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1891
1892         * configure.ac: Use AS_HELP_STRING throughout.
1893         * configure: Regenerate.
1894
1895 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1896
1897         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1898         (ix86_emit_restore_regs_using_mov): Likewise.
1899         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1900
1901 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1902
1903         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1904         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1905         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1906         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1907         RTX_OK_FOR_OLO10_P): ...here.
1908         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1909         SYMBOLIC_CONST.
1910
1911 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1912
1913         * gimplify.c (gimple_boolify): Re-boolify expression
1914         arguments even if expression type is of kind BOOLEAN_TYPE.
1915         (gimplify_boolean_expr): Removed.
1916         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1917         and XOR. Additional take care that we keep expression's type.
1918         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1919         of TRUTH_AND|OR|XOR_EXPR.
1920
1921 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1922
1923         PR tree-optimization/48975
1924         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1925         on all bbs here and free and clear ifc_bbs at the end.
1926
1927 2011-05-12  Richard Guenther  <rguenther@suse.de>
1928
1929         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1930         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1931         until after simple checks.
1932         (gimple_types_compatible_p): Likewise.
1933         (iterative_hash_gimple_type): Always hash pointer targets
1934         and function return and argument types.
1935         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1936         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1937         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1938         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1939         completely in the simple compare section.
1940         (gimple_register_canonical_type): Query the cache again after
1941         registering.
1942
1943 2011-05-12  Richard Guenther  <rguenther@suse.de>
1944
1945         PR tree-optimization/48172
1946         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1947         the number of iterations from the segment size calculation.
1948         (vect_create_cond_for_alias_checks): Adjust.
1949
1950 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1951
1952         PR debug/48967
1953         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1954         if validate_subreg fails.
1955
1956 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1957
1958         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1959         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1960         early.
1961
1962 2011-05-12  DJ Delorie  <dj@redhat.com>
1963
1964         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1965         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1966         created builtin into rx_builtins array.
1967         (rx_builtin_decl): New function.
1968         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1969
1970 2011-05-12  DJ Delorie  <dj@redhat.com>
1971             Nick Clifton  <nickc@redhat.com>
1972
1973         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1974         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1975         (rx_is_legitimate_address): Add pre-decrement and post-increment
1976         addressing in HImode and QImode.  Fix test for out of range
1977         REG+INT addressing.
1978         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1979         (rx_align_for_label): Test label before extracting its usage count.
1980         (rx_adjust_insn_lengths): Fix selection of insn codes.
1981         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1982
1983 2011-05-11  Jason Merrill  <jason@redhat.com>
1984
1985         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1986
1987 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1988
1989         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1990         reindent the subsequent block.
1991
1992 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1993             Paul Pluzhnikov  <ppluzhnikov@google.com>
1994
1995         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1996         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1997         * config.in: Add LINKER_HASH_STYLE.
1998         * configure.ac: Add --with-linker-hash-style.
1999         * configure: Regenerate.
2000
2001 2011-05-11  Richard Guenther  <rguenther@suse.de>
2002
2003         PR middle-end/48964
2004         * gimple.c (iterative_hash_canonical_type): Fix typo.
2005
2006 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2007
2008         * config/i386/i386.c (legitimize_tls_address)
2009         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2010         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2011         __tls_get_addr symbol reference here.  Update call to
2012         gen_tls_global_dynamic_{32,64} for added arguments.
2013         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2014         expanders directly for TARGET_GNU2_TLS.  Determine
2015         __tls_get_addr symbol reference here.  Update call to
2016         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2017         unique UNSPEC REG_EQUIV to libcall block.
2018         (ix86_tls_get_addr): Declare static.
2019         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2020         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2021         Do not determine pic and __tls_get_addr symbol reference here. Do not
2022         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2023         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2024         (tls_global_dynamic_64): Add operand 2.  Do not determine
2025         __tls_get_addr symbol reference here.  Do not call
2026         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2027         (tls_local_dynamic_base64): Ditto for operand 1.
2028
2029 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2030
2031         * function.c (expand_function_start): Initialize stack_check_probe_note
2032         only if the generic stack checking mechanism is used.
2033
2034 2011-05-11  Richard Guenther  <rguenther@suse.de>
2035
2036         PR tree-optimization/15256
2037         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2038         (A & B) | C, combine (A op CST1) op CST2.
2039         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2040         visit assigns that have uses.
2041
2042 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2043
2044         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2045         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2046         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2047         (unpack_value_fields): Adjust for renaming.
2048         (lto_input_ts_type_tree_pointers): Split into...
2049         (lto_input_ts_type_common_tree_pointer): ...this and...
2050         (lto_input_ts_type_non_common_tree_pointers): ...this.
2051         (lto_input_tree_pointers): Adjust for above split.
2052         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2053         (pack_ts_type_common_value_fields): ...this.  Update comment.
2054         (lto_output_ts_type_tree_pointers): Split into...
2055         (lto_output_ts_type_common_tree_pointers): ...this and...
2056         (lto_output_ts_type_non_common_tree_pointers): ...this.
2057         (lto_output_tree_pointers): Adjust for above split.
2058         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2059         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2060         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2061         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2062         Define.
2063         (struct tree_type): Split into...
2064         (struct tree_type_common: ...this and...
2065         (struct tree_type_with_lang_specific): ...this and...
2066         (struct tree_type_non_common): ...this.  Adjust accessor macros
2067         accordingly.
2068         (TYPE_VALUES_RAW): Define.
2069         (union tree_node): Update for above changes.
2070         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2071         TS_TYPE_NON_COMMON.
2072         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2073         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2074         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2075         * treestructu.def (TS_TYPE): Remove.
2076         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2077         Define.
2078
2079 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2080
2081         PR debug/48159
2082         * tree-ssa.c (reset_debug_uses): New function.
2083         * tree-flow.h (reset_debug_uses): New prototype.
2084         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2085         * tree-loop-distribution.c (generate_loops_for_partition): Call
2086         reset_debug_uses on the stmts that will be removed.  Keep around
2087         all debug stmts, don't count them as bits in partition bitmap.
2088         (generate_builtin): Don't count debug stmts or labels as bits in
2089         partition bitmap.
2090
2091 2011-05-11  Richard Guenther  <rguenther@suse.de>
2092
2093         * gimple.c (gimple_type_hash_1): Merge with ...
2094         (gimple_type_hash): ... this.
2095         (gtc_visit): Remove mode parameter and simplify accordingly.
2096         (gimple_types_compatible_p_1): Likewise.
2097         (gimple_types_compatible_p): Likewise.
2098         (iterative_hash_gimple_type): Likewise.
2099         (visit): Likewise.
2100         (gimple_type_eq): Adjust.
2101
2102 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2103
2104         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2105         enters the branch create an anti edge in the opposite direction
2106         to prevent the creation of reg-moves.
2107         * modulo-sched.c: Adjust comment to reflect the fact we are
2108         scheduling closing branch.
2109         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2110         (stage_count): New field in struct partial_schedule.
2111         (calculate_stage_count): New function.
2112         (normalize_sched_times): Rename to reset_sched_times and handle
2113         incrementing the sched time of the nodes by a constant value
2114         passed as parameter.
2115         (duplicate_insns_of_cycles): Skip closing branch.
2116         (sms_schedule_by_order): Schedule closing branch.
2117         (ps_insn_find_column): Handle closing branch.
2118         (sms_schedule): Call reset_sched_times and adjust the code to
2119         support scheduling of the closing branch.
2120         (ps_insert_empty_row): Update calls to normalize_sched_times
2121         and rotate_partial_schedule functions.
2122
2123 2011-05-11  Richard Guenther  <rguenther@suse.de>
2124
2125         PR middle-end/48953
2126         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2127
2128 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2129
2130         * opts.c (finish_options): Move warning settings from process_options.
2131         * toplev.c (process_options): Move warning settings to finish_options.
2132
2133 2011-05-11  Richard Guenther  <rguenther@suse.de>
2134
2135         PR tree-optimization/18041
2136         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2137         (simplify_bitwise_binary): ... this.  Handle operand conversions
2138         by applying them to the result instead.
2139         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2140
2141 2011-05-11  Richard Guenther  <rguenther@suse.de>
2142
2143         * gimple.c (gimple_canonical_types_compatible_p): Split out
2144         from gimple_types_compatible_p and friends.  Do not recurse
2145         to pointed-to types.
2146         (gimple_canonical_type_eq): Use it.
2147         (iterative_hash_canonical_type): Split out from
2148         iterative_hash_gimple_type and friends.  Do not recurse
2149         to pointed-to types.
2150         (gimple_canonical_type_hash): Use it, allocate the hash here.
2151
2152 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2153
2154         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2155         recognizing doloop.
2156
2157 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2158
2159         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2160         instead of PREV_INSN.
2161
2162 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2163
2164         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2165         * loop-doloop.c (doloop_condition_get): Likewise.
2166         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2167         (doloop_end): New.
2168         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2169
2170 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2171
2172         * tree.def (CASE_LABEL_EXPR): Add an operand.
2173         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2174
2175 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2176
2177         * c-decl.c (c_override_global_bindings_to_false): Remove.
2178         (global_bindings_p): Don't check
2179         c_override_global_bindings_to_false.
2180         * c-tree.h (c_override_global_bindings_to_false): Remove.
2181         * c-typeck.c (composite_type): Don't set
2182         c_override_global_bindings_to_false.
2183
2184 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2185
2186         PR target/48857, 48495
2187         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2188         (VSX_MODE): Ditto.
2189         (VSX_MOVE_MODE): Ditto.
2190         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2191         VSX vector types.  Add V2DImode.
2192         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2193         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2194         (MODES_TIEABLE_P): Ditto.
2195
2196         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2197         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2198         VSX_VECTOR_MODE.
2199         (init_cumulative_args): Ditto.
2200         (rs6000_function_arg_boundary): Ditto.
2201         (rs6000_function_arg_advance_1): Ditto.
2202         (rs6000_function_arg): Ditto.
2203         (rs6000_function_ok_for_sibcall): Ditto.
2204         (emit_frame_save): Ditto.
2205         (rs6000_function_value): Ditto.
2206         (rs6000_libcall_value): Ditto.
2207
2208 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2209
2210         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2211         i386/darwin-lib.h to $libgcc_tm_file.
2212         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2213
2214 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2215
2216         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2217
2218 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2219
2220         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2221         * config/rs6000/rs6000-tables.opt: New file (generated).
2222         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2223         rs6000/rs6000-tables.opt to extra_options.
2224         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2225         * config/rs6000/rs6000.c (rs6000_select): Remove.
2226         (processor_target_table): Move contents to rs6000-cpus.def.
2227         (darwin_rs6000_override_options): Check
2228         global_options_set.x_rs6000_cpu_index instead of
2229         rs6000_select[1].string.
2230         (rs6000_option_override_internal): Likewise.
2231         (rs6000_handle_option): Don't assert that global structures are in
2232         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2233         (rs6000_default_cpu): New variable.
2234         (rs6000_file_start): Set it instead of local default_cpu.  Check
2235         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2236         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2237         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2238         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2239         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2240         rs6000_select): Remove.
2241         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2242         Remove.
2243         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2244         * config/rs6000/t-rs6000
2245         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2246         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2247         global_options_set.x_rs6000_cpu_index instead of
2248         rs6000_select[1].string.
2249         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2250         global_options_set.x_rs6000_cpu_index instead of
2251         rs6000_select[1].string.
2252
2253 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2254
2255         * config.gcc (libgcc_tm_file): Define instead of including files
2256         from ../../libgcc/config/ in tm_file.
2257         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2258         * configure: Regenerate.
2259         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2260         libgcc_tm.h, cs-libgcc_tm.h): New.
2261         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2262         (clean): Remove libgcc_tm.h.
2263         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2264         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2265         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2266
2267 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2268
2269         PR target/48896
2270         * config/avr/avr.c (avr_ret_register): Return unsigned int
2271         instead of int.
2272         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2273         it to avr_libcall_value.
2274         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2275         expand_expr.
2276         (avr_expand_binop_builtin): Ditto.
2277         (avr_expand_unop_builtin): Ditto.
2278
2279 2011-05-10  DJ Delorie  <dj@redhat.com>
2280
2281         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2282         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2283         * config/rx/rx.c (rx_align_for_label): Add label and
2284         uses_threshold parameters.  Do not align when the label is not
2285         used enough.
2286         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2287
2288 2011-05-10  Richard Guenther  <rguenther@suse.de>
2289
2290         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2291         a series of conversions and apply foldings similar to what
2292         fold-const does.
2293         (tree_ssa_forward_propagate_single_use_vars): Call it.
2294
2295 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2296
2297         PR tree-optimization/48611
2298         PR tree-optimization/48794
2299         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2300         referenced from RESX or EH_DISPATCH arguments.
2301
2302         PR debug/48928
2303         * dfp.c (decimal_to_decnumber): Handle conversion from
2304         dconst{1,2,m1,half}.
2305
2306 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2307
2308         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2309         for !flag_prefer_avx128.
2310         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2311
2312 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2313
2314         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2315         (fold_ternary_loc): Use expr_location_or.
2316
2317 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2318
2319         PR debug/48853
2320         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2321         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2322         Pmode and mem_mode is not VOIDmode.
2323
2324 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2325
2326         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2327         TYPE_QUAL_RESTRICT): Convert to enum.
2328
2329 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2330
2331         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2332         (const_pow2_1_to_8_operand): Ditto.
2333         (const_pow2_1_to_128_operand): Ditto.
2334         (const_pow2_1_to_32768_operand): Ditto.
2335         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2336         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2337         in insn constraint to check integer value of operand 3.
2338         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2339
2340         (PINSR_MODE): New mode iterator.
2341         (sse2p4_1): New mode attribute.
2342         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2343         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2344         iterator.  Use const_int_operand instead of
2345         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2346         exact_log2 in insn constraint to check integer value of operand 3.
2347
2348 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2349
2350         * config/i386/sse.md (blendbits): Remove mode attribute.
2351         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2352         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2353         Check integer value of operand 3 in insn constraint.
2354
2355 2011-05-09  Richard Guenther  <rguenther@suse.de>
2356
2357         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2358         for diagnostics.
2359         (lto_symtab_merge): Likewise.  Do not register types here.
2360         (lto_symtab_merge_decls_2): Likewise.
2361         (lto_symtab_merge_decls_1): Likewise.
2362         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2363         * gimple.c (enum gtc_mode): Declare.
2364         (gimple_types_compatible_p): Make static.
2365
2366 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2367
2368         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2369         temporary register to match Pmode.
2370
2371 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2372
2373         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2374         and *vec_concatv4si_1_avx.
2375
2376 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2377
2378         PR rtl-optimization/48927
2379         * ira-conflicts.c (commutative_constraint_p): Use
2380         recog_data.alternative_enabled_p to disable alternatives where
2381         "enabled" attribute is false.
2382         (get_dup_num): Ditto.
2383         * ira-lives.c (single_reg_class): Ditto.
2384         (ira_implicitly_set_insn_hard_regs): Ditto.
2385
2386 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2387
2388         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2389         (dataflow_set_preserve_mem_locs): Likewise.
2390
2391 2011-05-09  Philipp Thomas  <pth@suse.de>
2392
2393         * config/mep/mep.c (mep_validate_vliw): Syntax description
2394         should not be translated.
2395
2396 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2397
2398         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2399         * config/mips/mips-tables.opt: New file (generated).
2400         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2401         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2402         MIPS_ARCH_OPTION_NATIVE): Define.
2403         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2404         mips-cpus.def.
2405         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2406         mips_parse_cpu): Remove.
2407         (mips_cpu_info_from_opt, mips_default_arch): New.
2408         (mips_handle_option): Don't assert that global structures are in
2409         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2410         (mips_option_override): Use new variables and functions to set
2411         state of these options.  Use strcmp to check for individual CPU names.
2412         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2413         definition.
2414         * config/mips/mips.opt (march=): Use ToLower and Enum.
2415         (mips): Use ToLower, Enum and Var.
2416         (mtune=): Use ToLower and Enum.
2417         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2418
2419 2011-05-08  Jan Hubicka  <jh@suse.cz>
2420
2421         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2422         Arrange type pairs to be UID ordered.
2423         (gimple_lookup_type_leader): Make inline.
2424
2425 2011-05-09  Nick Clifton  <nickc@redhat.com>
2426
2427         PR target/48899
2428         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2429         PROCESSOR_DEFAULT.
2430
2431         PR target/48897
2432         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2433         variable 's'.
2434
2435 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2436
2437         * combine.c (simplify_comparison): Abstract out parts into...
2438         (simplify_compare_const): ... new function.
2439         (try_combine): Generalize parallel arithmetic/compare combining
2440         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2441
2442 2011-05-08  Jan Hubicka  <jh@suse.cz>
2443
2444         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2445         (cgraph_create_virtual_clone): Call hooks once virtual clone
2446         is finished.
2447         * cgraph.h (cgraph_clone_node): Update prototype.
2448         * ipa-cp.c (ipcp_estimate_growth): Use
2449         estimate_ipcp_clone_size_and_time.
2450         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2451         * lto-cgraph.c (input_node): Update.
2452         * ipa-inline.c (recursive_inlining): Update.
2453         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2454         (evaluate_conditions_for_known_args): Break out from ...
2455         (evaluate_conditions_for_edge): ... here.
2456         (evaluate_conditions_for_ipcp_clone): New function.
2457         (inline_node_duplication_hook): Update clone summary based
2458         on parameter map.
2459         (estimate_callee_size_and_time): Rename to ...
2460         (estimate_node_size_and_time): take NODE instead of EDGE;
2461         take POSSIBLE_TRUTHS as argument.
2462         (estimate_callee_size_and_time): Update.
2463         (estimate_ipcp_clone_size_and_time): New function.
2464         (do_estimate_edge_time): Update.
2465
2466 2011-05-08  Richard Guenther  <rguenther@suse.de>
2467
2468         PR middle-end/48908
2469         PR middle-end/48905
2470         * expmed.c (expand_shift_1): Compute adjusted constant shift
2471         amount manually.
2472
2473 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2474
2475         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2476
2477 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2478
2479         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2480
2481 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2482
2483         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2484
2485 2011-05-07  Jan Hubicka  <jh@suse.cz>
2486
2487         * ipa-inline-transform.c (inline_call): Account when program size
2488         decreases.
2489         * ipa-inline.c (relative_time_benefit): New function.
2490         (edge_badness): Reorganize to be power 2 based; fix thinko when
2491         computing badness for negative growth; update comments to match
2492         reality; better dumps.
2493
2494 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2495
2496         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2497         type to bool and adjust comment.
2498         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2499         (fold_mathfn_compare): Remove calls to global_bindings_p.
2500         (fold_inf_compare): Likewise.
2501         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2502         * c-tree.h (global_bindings_p): Adjust prototype.
2503         * c-decl.c (global_bindings_p): Return bool and simplify.
2504
2505 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2506
2507         PR tree-optimization/48837
2508         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2509         when accumulator transformation is performed.
2510
2511 2011-05-06  Jan Hubicka  <jh@suse.cz>
2512
2513         * i386.h (ix86_tune_indices): Add
2514         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2515         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2516         * i386.c (initial_ix86_tune_features): Add
2517         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2518         (software_prefetching_beneficial_p): Remove predicate.
2519         (ix86_option_override_internal): Use new macro.
2520
2521 2011-05-06  Jan Hubicka  <jh@suse.cz>
2522
2523         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2524
2525 2011-05-06  Jan Hubicka  <jh@suse.cz>
2526
2527         * cgraph.c (cgraph_add_thunk): Create real function node instead
2528         of alias node; finalize it and mark needed/reachale; arrange visibility
2529         to be right and add it into the corresponding same comdat group list.
2530         (dump_cgraph_node): Dump thunks.
2531         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2532         cgraph_function_with_gimple_body_p,
2533         cgraph_first_function_with_gimple_body,
2534         cgraph_next_function_with_gimple_body): New functions.
2535         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2536         New macros.
2537         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2538         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2539         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2540         devirtualization when optimizing.
2541         (verify_cgraph_node): Verify thunks.
2542         (cgraph_analyze_function): Analyze thunks.
2543         (cgraph_mark_functions_to_output): Output thunks only in combination
2544         with function they are assigned to.
2545         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2546         alias into normal node.
2547         (assemble_thunks): New functoin.
2548         (cgraph_expand_function): Use it.
2549         * lto-cgraph.c (lto_output_node): Stream thunks.
2550         (input_overwrite_node): Stream in thunks.
2551         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2552         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2553         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2554         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2555         (inline_analyze_function): Do not care about thunk jump functions.
2556         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2557         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2558         cgraph_function_with_gimple_body_p.
2559         * passes.c (do_per_function_toporder): Use
2560         cgraph_function_with_gimple_body_p.
2561         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2562         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2563         (function_called_by_processed_nodes_p): Likewise.
2564
2565 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2566
2567         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2568         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2569         entries.
2570         (mabi=): Replace with separate entries for mabi=altivec,
2571         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2572         mabi=ieeelongdouble and mabi=ibmlongdouble.
2573         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2574         check for -mabi=spe without SPE ABI support here.
2575         (rs6000_handle_option): Replace OPT_mabi_ handling with
2576         OPT_mabi_altivec and OPT_mabi_spe handling.
2577
2578 2011-05-06  Cary Coutant  <ccoutant@google.com>
2579
2580         * dwarf2out.c (contains_subprogram_definition): New function.
2581         (should_move_die_to_comdat): Call it.
2582
2583 2011-05-06  Jeff Law  <law@redhat.com>
2584
2585         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2586         remove_ctrl_stmt_and_useless_edges.
2587         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2588         (fixup_template_block, thread_single_edge): Likewise.
2589         (mark_threaded_blocks): Use THREAD_TARGET.
2590
2591 2011-05-06  Alan Modra  <amodra@gmail.com>
2592
2593         PR target/48900
2594         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2595         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2596
2597 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2598
2599         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2600         constraint modifier to "r".
2601
2602 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2603
2604         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2605         fall through for OPT_mcmodel_.
2606
2607 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2608
2609         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2610         instruction sizes.
2611         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2612
2613 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2614
2615         PR target/47930
2616         * config/arm/arm.opt (marm): Document it.
2617         (mthumb): Reject negative variant.
2618
2619 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2620
2621         PR target/48898
2622         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2623         Fix typo in "ccvt" variable name.
2624
2625 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2626
2627         PR target/48895
2628         * config/vms/vms-ar.c (main): Remove cwd variable.
2629
2630 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2631
2632         PR debug/48902
2633         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2634
2635 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2636
2637         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2638         * gimplify.c (gimplify_switch_expr): Likewise.
2639         * omp-low.c (expand_omp_sections): Likewise.
2640         * tree-eh.c (lower_try_finally_switch): Likewise.
2641         (lower_eh_dispatch): Likewise.
2642         * tree.h (build_case_label): Declare.
2643         * tree.c (build_case_label): Define.
2644
2645 2011-05-05  Jason Merrill  <jason@redhat.com>
2646
2647         PR c++/40975
2648         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2649         (copy_statement_list): Don't recurse.
2650         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2651         STATEMENT_LIST.
2652
2653 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2654
2655         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2656         through from -mfpu= handling.
2657         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2658
2659 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2660
2661         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2662         POST_MODIFY.
2663
2664 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2665
2666         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2667         for 11.31.
2668         (hppa[12]*-*-hpux11*): Ditto.
2669         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2670         * config/ia64/hpux-unix2003.h: New.
2671         * config/pa/pa-hpux1131.opt: New.
2672         * config/pa/pa-hpux1131.h: New.
2673         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2674         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2675         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2676
2677 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2678
2679         PR debug/48853
2680         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2681         instead of mode as 3rd argument to recursive call.
2682         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2683         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2684         VOIDmode.
2685         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2686         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2687         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2688         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2689
2690 2011-05-05  Julian Brown  <julian@codesourcery.com>
2691
2692         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2693         parenthesis in D-register case.
2694
2695 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2696
2697         * opt-functions.awk (var_type_struct): Handle Enum options.
2698         * optc-gen.awk: Don't check range of variables of character type.
2699         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2700         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2701         rs6000_sdata_name, rs6000_explicit_options): Remove.
2702         (rs6000_option_override_internal): Check for -malign-power here.
2703         Use global_options_set instead of rs6000_explicit_options.
2704         (rs6000_parse_fpu_option): Remove.
2705         (rs6000_handle_option): Access variables via opts and opts_set
2706         pointers.  Use error_at and warning_at.  Add fall-through
2707         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2708         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2709         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2710         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2711         here.  Don't use rs6000_parse_fpu_option.
2712         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2713         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2714         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2715         (mrecip=): Use Var.
2716         (mspe): Use Var and Save.
2717         (mtraceback=): Use Enum and Var.
2718         (rs6000_traceback_type): New Enum and EnumValue entries.
2719         (mfloat-gprs=): Use Enum, Var and Save.
2720         (rs6000_float_gprs): New Enum and EnumValue entries.
2721         (mlong-double-): use Var and Save.
2722         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2723         (malign-): Use Enum and Var.
2724         (rs6000_alignment_flags): New Enum and EnumValue entries.
2725         (mfpu=): Use Enum.
2726         (fpu_type_t): New Enum and EnumValue entries.
2727         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2728         global_options_set instead of rs6000_explicit_options.
2729         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2730         global_options_set instead of rs6000_explicit_options.
2731         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2732         global_options_set instead of rs6000_explicit_options.
2733         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2734         global_options_set instead of rs6000_explicit_options.
2735         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2736         global_options_set instead of rs6000_explicit_options.
2737         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2738         global_options_set instead of rs6000_explicit_options.
2739         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2740         definition.
2741         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2742         global_options_set instead of rs6000_explicit_options.
2743         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2744         (rs6000_cmodel): New Enum and EnumValue entries.
2745         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2746         global_options_set instead of rs6000_explicit_options.
2747         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2748         (mtls-size=): Use Enum and Var.
2749         (rs6000_tls_size): New Enum and EnumValue entries.
2750
2751 2011-05-05  Michael Matz  <matz@suse.de>
2752
2753         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2754         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2755         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2756         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2757         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2758         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2759         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2760         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2761         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2762         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2763         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2764         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2765         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2766         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2767         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2768         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2769
2770 2011-05-05  Richard Guenther  <rguenther@suse.de>
2771
2772         * expmed.c (expand_variable_shift): Rename to ...
2773         (expand_shift_1): ... this.  Take an expanded shift amount.
2774         For rotates recurse directly not building trees for the shift amount.
2775         (expand_variable_shift): Wrap around expand_shift_1.
2776         (expand_shift): Adjust.
2777
2778 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2779
2780         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2781
2782 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2783
2784         * tree.h (get_pending_sizes): Remove prototype.
2785         (put_pending_size): Likewise.
2786         (put_pending_sizes): Likewise.
2787         * stor-layout.c (pending_sizes): Delete.
2788         (get_pending_sizes): Likewise.
2789         (put_pending_size): Likewise.
2790         (put_pending_sizes): Likewise.
2791         (variable_size): Do not call put_pending_size and tidy up.
2792         * function.h (struct function): Remove dont_save_pending_sizes_p.
2793         * lto-streamer-in.c (input_function): Do not stream it.
2794         * lto-streamer-out.c (output_function): Likewise.
2795         * tree-inline.c (initialize_cfun): Do not copy it.
2796         * c-decl.c (store_parm_decls): Do not set it.
2797         * omp-low.c (create_task_copyfn): Likewise.
2798         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2799
2800 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2801
2802         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2803         conditions.
2804         (*movdf_internal): Ditto.
2805         (*movdf_internal_nointeger): Ditto.
2806         (*movsf_internal): Ditto.
2807
2808 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2809
2810         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2811         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2812         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2813         (c_variable_size): Remove.
2814         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2815         call put_pending_sizes.
2816         (get_parm_info): Add parameter expr.  Use it to set
2817         arg_info->pending_sizes.
2818         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2819         get_pending_sizes.
2820         * c-parser.c (c_parser_parms_declarator): Update call to
2821         c_parser_parms_list_declarator.
2822         (c_parser_parms_list_declarator): Take parameter expr.  Update
2823         call to push_parm_decl.  Update recursive call.  Don't call
2824         get_pending_sizes.  Update calls to get_parm_info.
2825         (c_parser_objc_method_definition): Update calls to
2826         c_parser_objc_method_decl and objc_start_method_definition.
2827         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2828         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2829         grokparm.
2830         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2831         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2832         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2833
2834 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2835
2836         PR pch/45979
2837         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2838         __ARM_EABI__ hosts.
2839
2840 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2841
2842         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2843         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2844         (spu_output_mi_thunk): New function.
2845
2846 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2847
2848         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2849         targetm.asm_out.print_operand.
2850         * config/sol2.c: Include target.h.
2851
2852 2011-05-04  Jan Hubicka  <jh@suse.cz>
2853
2854         * ipa-inline.c (reset_edge_caches): New function.
2855         (update_caller_keys): Add check_inlinablity_for; do not
2856         reset edge caches; remove now unnecesary loop.
2857         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2858         (update_all_callee_keys): Likewise.
2859         (inline_small_functions): Sanity check cache; update code
2860         recomputing it.
2861
2862 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2863
2864         PR rtl-optimization/47612
2865         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2866         as the last insn of the sequence to be moved.
2867
2868 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2869
2870         PR fortran/48864
2871         * doc/invoke.texi (Ofast): Document that it
2872         enables Fortran's -fno-protect-parens.
2873
2874 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2875
2876         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2877
2878 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2879
2880         * stor-layout.c (variable_size): Do not issue errors.
2881
2882 2011-05-04  Richard Guenther  <rguenther@suse.de>
2883
2884         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2885         for array-ref indices.
2886         (tree_coverage_counter_addr): Likewise.
2887         (build_fn_info_type): Use size_int for index types.
2888         (build_gcov_info): Likewise.
2889
2890 2011-05-04  Richard Guenther  <rguenther@suse.de>
2891
2892         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2893         to build_int_cst.
2894         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2895         for constructor indices.
2896         (push_init_level): Likewise.
2897
2898 2011-05-04  Richard Guenther  <rguenther@suse.de>
2899
2900         * explow.c (promote_mode): Move variable declarations before code.
2901
2902 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2903
2904         * tree.h (build_function_type_array): Declare.
2905         (build_varargs_function_type_array): Declare.
2906         (build_function_type_vec, build_varargs_function_type_vec): Define.
2907         * tree.c (build_function_type_array_1): New function.
2908         (build_function_type_array): New function.
2909         (build_varargs_function_type_array): New function.
2910
2911 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2912
2913         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2914         before setting STMT_VINFO_TYPE.
2915
2916 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2917
2918         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2919         instead of spu_pass_by_reference.
2920
2921 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2922
2923         * calls.c (emit_library_call_value_1): Invoke
2924         promote_function_mode hook on libcall arguments.
2925         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2926         argument being NULL.
2927         * targhooks.c (default_promote_function_mode): Lisewise.
2928         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2929         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2930
2931         * doc/tm.texi: Document that TYPE argument might be NULL.
2932
2933 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2934
2935         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2936
2937 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2938
2939         From Bernd Schmidt
2940         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2941
2942 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2943
2944         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2945         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2946         Move ...
2947         * mips-tfile.c: ... here.
2948         Don't include coretypes.h, tm.h, filenames.h.
2949         (saber_stop): Remove definition and all calls.
2950         [__SABER__]: Remove.
2951         (__LINE__): Remove default.
2952         (Size_t, Ptrdiff_t): Remove definitions.
2953         Replace by size_t, ptrdiff_t.
2954         [!MIPS_DEBUGGING_INFO]: Remove.
2955         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2956         (progname): Add const.
2957         (STATIC): Remove.
2958         Replace all uses by static.
2959         (ALIGN_SYMTABLE_OFFSET): Remove default.
2960         * mips-tdump.c: Don't include coretypes.h, tm.h.
2961         Remove !MIPS_IS_STAB guard.
2962         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2963         $(TM_H), filenames.h dependencies.
2964         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2965
2966 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2967
2968         From Jie Zhang
2969         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2970         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2971
2972 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2973
2974         From Bernd Schmidt
2975         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2976         account and save/restore RETS.
2977         (PROFILE_BEFORE_PROLOGUE): Define.
2978         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2979         the push insn to use predecrement.
2980
2981 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2982
2983         From Jie Zhang
2984         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2985
2986 2011-05-04  Nick Clifton  <nickc@redhat.com>
2987
2988         * config/mn10300/mn10300.c: Include cfgloop.h.
2989         (DUMP): New macro.
2990         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2991         Lcc or a FLcc insn into the instruction stream.
2992         (mn10300_block_contains_call): New function.  Returns true if the
2993         given basic block contains a CALL insn.
2994         (mn10300_loop_contains_call_insn): New function.  Returns true if
2995         the given loop contains a CALL insn.
2996         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2997         to use the SETLB and Lcc or FLcc insns.
2998         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2999         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3000         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3001         disable the SETLB optimization.
3002         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3003         __SETLB__ or __NO_SETLB__.
3004         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3005         (movsf_internal): Handle MDR register.
3006         (cmpsi): Make visible.
3007         (setlb): New pattern.
3008         (Lcc): New pattern.
3009         (FLcc): New pattern.
3010
3011 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3012
3013         PR target/48860
3014         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3015         for reg<->xmm moves.
3016         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3017         (vec_concatv2di_rex64_sse): Ditto.
3018         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3019         (*vec_extractv2di_1_rex64): Ditto.
3020
3021         Revert:
3022         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3023
3024         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3025         reg<->xmm moves.
3026         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3027
3028 2011-05-04  Richard Guenther  <rguenther@suse.de>
3029
3030         * tree.h (int_const_binop): Remove notrunc argument.
3031         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3032         create integer constants that are properly truncated.
3033         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3034         (const_binop): Remove zero notrunc argument to int_const_binop.
3035         (size_binop_loc): Likewise.
3036         (fold_div_compare): Likewise.
3037         (maybe_canonicalize_comparison_1): Likewise.
3038         (fold_comparison): Likewise.
3039         (fold_binary_loc): Likewise.
3040         (multiple_of_p): Likewise.
3041         * expr.c (store_constructor): Likewise.
3042         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3043         (maybe_fold_stmt_addition): Likewise.
3044         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3045         * stor-layout.c (layout_type): Likewise.
3046         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3047         * tree-sra.c (build_ref_for_offset): Likewise.
3048         (build_user_friendly_ref_for_offset): Likewise.
3049         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3050         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3051         * tree-ssa-loop-niter.c (inverse): Likewise.
3052         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3053         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3054         * tree-switch-conversion.c (check_range): Likewise.
3055         (build_constructors): Likewise.
3056         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3057         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3058         (extract_range_from_assert): Likewise.
3059         (vrp_int_const_binop): Likewise.
3060         (extract_range_from_binary_expr): Likewise.
3061         (extract_range_from_unary_expr): Likewise.
3062         (check_array_ref): Likewise.
3063         (find_case_label_range): Likewise.
3064         (simplify_div_or_mod_using_ranges): Likewise.
3065         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3066         comparing case labels for merging.
3067
3068 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3069
3070         * dwarf2out.c (debug_str_hash_forced): Removed.
3071         (gen_label_for_indirect_string): Removed.
3072         (get_debug_string_label): Removed.
3073         (AT_string_form): Generate label directly.
3074         (output_indirect_string): Test indirect_string_node for
3075         DW_FORM_strp instead of checking label and refcount.
3076         (prune_indirect_string): Removed.
3077         (prune_unused_types): Don't check debug_str_hash_forced or
3078         call prune_indirect_string.
3079
3080 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3081
3082         PR other/48093
3083         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3084
3085 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3086
3087         PR debug/47994
3088         PR debug/47919
3089         * combine.c (try_combine): Skip debug insns at m_split tests.
3090
3091 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3092
3093         PR42288
3094         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3095         when info_section_emitted.
3096
3097 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3098
3099         * config/mips/mips-opts.h: New.
3100         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3101         to mips-opts.h.
3102         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3103         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3104         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3105         via opts pointer.
3106         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3107         mips-opts.h.
3108         (mips_abi, mips_code_readable): Don't declare.
3109         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3110         (mabi=): Use Enum and Var.
3111         (mips_abi): New Enum and EnumValue entries.
3112         (mcode-readable=): Use Enum and Var.
3113         (mips_code_readable_setting): New Enum and EnumValue entries.
3114         (mr10k-cache-barrier=): Use Enum and Var.
3115         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3116
3117 2011-05-03  Jan Hubicka  <jh@suse.cz>
3118
3119         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3120         replace hash by pointer map.
3121         (cgraph_node_set_element_def, cgraph_node_set_element,
3122         const_cgraph_node_set_element, varpool_node_set_element_def,
3123         varpool_node_set_element, const_varpool_node_set_element): Remove.
3124         (free_cgraph_node_set, free_varpool_node_set): New function.
3125         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3126         * tree-emutls.c: Free varpool node set.
3127         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3128         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3129         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3130         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3131         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3132         Move here from ipa.c; implement using pointer_map
3133         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3134         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3135         debug_cgraph_node_set, varpool_node_set_new,
3136         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3137         dump_varpool_node_set, debug_varpool_node_set):
3138         Move to ipa-uitls.c.
3139         * passes.c (ipa_write_summaries): Update.
3140
3141 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3142
3143         From Mike Frysinger:
3144         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3145         bf542/bf544/bf547/bf548/bf549.
3146
3147 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3148
3149         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3150
3151 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3152
3153         From Bernd Schmidt:
3154         * config/bfin/bfin.md (MOVCC): New mode_macro.
3155         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3156         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3157         comments from generated assembly.
3158
3159 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3160
3161         From Bernd Schmidt
3162         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3163         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3164         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3165         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3166         * config/bfin/lib1funcs.asm (___muldi3): New function.
3167
3168 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3169
3170         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3171         build_function_type_list instead of build_function_type.
3172         Rearrange initialization of `args' to do so.
3173
3174 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3175
3176         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3177         instead of build_function_type.
3178
3179 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3180
3181         * config/rs6000/rs6000.c (spe_init_builtins): Call
3182         build_function_type_list instead of build_function_type.
3183         (paired_init_builtins, altivec_init_builtins): Likewise.
3184         (builtin_function_type): Likewise.
3185
3186 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3187
3188         * config/sh/sh.c (sh_media_init_builtins): Call
3189         build_function_type_list instead of build_function_type.
3190
3191 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3192
3193         * config/sparc/sparc.c (sparc_file_end): Call
3194         build_function_type_list instead of build_function_type.
3195
3196 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3197
3198         * config/alpha/alpha.c (alpha_init_builtins): Call
3199         build_function_type_list instead of build_function_type.
3200
3201 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3202
3203         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3204         build_function_type_list instead of build_function_type.
3205
3206 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3207
3208         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3209         build_function_type_list instead of build_function_type.
3210         Delete `endlink' variable.
3211
3212 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3213
3214         * config/avr/avr.c (avr_init_builtins): Call
3215         build_function_type_list instead of build_function_type.
3216
3217 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3218
3219         * config/picochip/picochip.c (picochip_init_builtins): Call
3220         build_function_type_list instead of build_function_type.
3221         Delete `endlink' variable.
3222
3223 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3224
3225         * config/bfin/bfin.c (bfin_init_builtins): Call
3226         build_function_type_list instead of build_function_type.
3227
3228 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3229
3230         From Bernd Schmidt
3231         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3232         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3233
3234 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3235
3236         From Jie Zhang:
3237         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3238         libbffastfp overrides libgcc when -mfast-fp.
3239
3240 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3241
3242         Originally from Bernd Schmidt
3243         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3244         * config/bfin/bfin.c (override_options): Test it and error if
3245         TARGET_FDPIC.
3246
3247 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3248
3249         Originally From Bernd Schmidt
3250         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3251         FD-PIC.
3252
3253 2011-05-03  Jeff Law  <law@redhat.com>
3254
3255         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3256         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3257         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3258         than accessing AUX field directly.  Free the AUX field before
3259         clearing it.
3260         (thread_block, thread_through_loop_header): Likewise.
3261         (thread_single_edge, mark_threaded_blocks): Likewise.
3262         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3263         (register_jump_thread): Do not attempt to thread to a NULL edge.
3264
3265 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3266
3267         * function.c (init_function_start): Call decide_function_section.
3268         * varasm.c (decide_function_section): New function.
3269         (assemble_start_function): When not using
3270         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3271         or first_function_block_is_cold.
3272         * rtl.h (decide_function_section): Declare.
3273
3274 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3275             Jakub Jelinek  <jakub@redhat.com>
3276
3277         PR target/48774
3278         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3279         only succeed if req_mode is the same as set_mode.
3280
3281 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3282
3283         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3284         * genemit.c (gen_exp): Handle RETURN.
3285         * emit-rtl.c (verify_rtx_sharing): Likewise.
3286         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3287         * rtl.c (copy_rtx): RETURN is shared.
3288         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3289         (ret_rtx): New.
3290         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3291         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3292         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3293         * config/cris/cris.c (cris_expand_return): Likewise.
3294         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3295         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3296         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3297         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3298         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3299         Likewise.
3300         * config/v850/v850.c (expand_epilogue): Likewise.
3301         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3302         * config/arm/arm.md (epilogue): Likewise.
3303         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3304         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3305         variable to ret_reg.
3306
3307 2011-05-03  Richard Guenther  <rguenther@suse.de>
3308
3309         PR lto/48846
3310         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3311         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3312         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3313
3314 2011-05-03  Richard Guenther  <rguenther@suse.de>
3315
3316         * c-decl.c (grokdeclarator): Instead of looking at
3317         TREE_OVERFLOW check if the constant fits in the index type.
3318
3319 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3320
3321         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3322         (vec_store_lanes<mode><mode>): Likewise.
3323
3324 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3325
3326         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3327         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3328         convert_optab_index values.
3329         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3330         * genopinit.c (optabs): Initialize the new optabs.
3331         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3332         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3333         (expand_STORE_LANES): New functions.
3334         * tree.h (build_array_type_nelts): Declare.
3335         * tree.c (build_array_type_nelts): New function.
3336         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3337         (vect_model_load_cost): Likewise.
3338         (vect_store_lanes_supported, vect_load_lanes_supported)
3339         (vect_record_strided_load_vectors): Declare.
3340         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3341         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3342         (vect_transform_strided_load): Split out statement recording into...
3343         (vect_record_strided_load_vectors): ...this new function.
3344         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3345         (write_vector_array, create_array_ref): New functions.
3346         (vect_model_store_cost): Add store_lanes_p argument.
3347         (vect_model_load_cost): Add load_lanes_p argument.
3348         (vectorizable_store): Try to use store-lanes functions for
3349         interleaved stores.
3350         (vectorizable_load): Likewise load-lanes and loads.
3351         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3352         to vect_model_store_cost.
3353         (vect_build_slp_tree): Likewise vect_model_load_cost.
3354
3355 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3356
3357         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3358         * hooks.c (hook_bool_mode_uhwi_false): New function.
3359         * target.def (array_mode_supported_p): New hook.
3360         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3361         * doc/tm.texi: Regenerate.
3362         * stor-layout.c (mode_for_array): New function.
3363         (layout_type): Use it.
3364         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3365         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3366
3367 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3368
3369         PR target/48723
3370         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3371         for -fstack-check if the size to allocate is negative.
3372
3373 2011-05-02  Lawrence Crowl  <crowl@google.com>
3374
3375         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3376         (timevar_cond_start): New for starting a timer only when it is not
3377         already running.
3378         (timevar_cond_stop): New for stopping a timer when it was not already
3379         running.
3380
3381         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3382         (timevar_cond_start): New as above.
3383         (timevar_cond_stop): New as above.
3384
3385         * timevar.def: Add start/stop timers for compiler phases,
3386         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3387         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3388         and TV_PHASE_FINALIZE.
3389         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3390         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3391         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3392         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3393         Make unused TV_OVERLOAD into a start/stop timer.
3394
3395         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3396         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3397         to indicate that they are start/stop timers.
3398
3399         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3400         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3401         Move initialization to do_compile.
3402         (do_compile): Add initialization from above.
3403         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3404
3405         * c-decl.c (c_write_global_declarations): Add start/stop of
3406         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3407
3408         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3409         or TV_PARSE_INLINE, as appropriate.
3410         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3411         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3412
3413 2011-05-02  Jason Merrill  <jason@redhat.com>
3414
3415         PR c++/40975
3416         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3417
3418 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3419
3420         PR c/35445
3421         * c-decl.c (finish_decl): Only create a composite if the types are
3422         compatible.
3423
3424 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3425
3426         * config/fr30/fr30-protos.h (Mmode): Don't define.
3427         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3428         definition where used.
3429         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3430         define.  Expand definitions where used.
3431         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3432         Expand definitions where used.
3433         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3434         rx_function_arg, rx_function_arg_advance,
3435         rx_function_arg_boundary): Expand definitions of those macros.
3436         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3437         definition where used.
3438
3439 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3440
3441         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3442         reg<->xmm moves.
3443         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3444         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3445         with *movv2sf_internal_rex64_avx.
3446         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3447         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3448         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3449         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3450         "vex" in "prefix" attribute calculation.
3451         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3452
3453 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3454
3455         PR target/47951
3456         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3457         inputs match the output.
3458
3459 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3460
3461         PR target/47955
3462         * config/m68k/m68k.c (m68k_expand_prologue): Set
3463         current_function_static_stack_size.
3464
3465 2011-05-02   Jan Hubicka  <jh@suse.cz>
3466
3467         * lto-streamer.c (lto_streamer_cache_insert_1,
3468         lto_streamer_cache_lookup, lto_streamer_cache_create,
3469         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3470         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3471
3472 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3473
3474         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3475         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3476         config/m68k/t-opts: New files.
3477         * config/m68k/m68k-tables.opt: New file (generated).
3478         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3479         extra_options and m68k/t-opts to tmake_file.
3480         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3481         (all_isas): Initialize using m68k-isas.def.
3482         (all_microarchs): Initialize using m68k-microarchs.def.
3483         (m68k_find_selection): Remove.
3484         (m68k_handle_option): Don't assert that global structures are in
3485         use.  Use error_at.  Access variables via opts pointer.  Don't
3486         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3487         directly for -m68020-40 and -m68020-60.
3488         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3489         m68k_tune_entry here.
3490         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3491         to m68k-opts.h.
3492         (m68k_library_id_string): Remove declaration.
3493         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3494         (m68k_library_id_string): New Variable.
3495         (march=, mcpu=, mtune=): Use Enum and Var.
3496
3497 2011-05-02  Richard Guenther  <rguenther@suse.de>
3498
3499         * varasm.c (output_constructor_regular_field): Compute zero-based
3500         index with double-ints.  Make sure to ICE instead of producing
3501         wrong code.
3502         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3503         in asserts.  Properly use a signed type.
3504
3505 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3506
3507         * config/i386/sse.md (V): New mode iterator.
3508         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3509         TARGET_SSE2.
3510         (V_256): Rename from AVX256MODE.
3511         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3512         condition to all users.
3513         (VF1): Ditto.
3514         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3515         condition to all users.
3516         (VF_128): Make V4SF mode unconditional.
3517         (VF_256): Rename from AVX256MODEF2P.
3518         (VI4F_128): Rename from SSEMODE4S.
3519         (VI8F_128): Rename from SSEMODE2D.
3520         (VI4F_256): Rename from AVX256MODE8P.
3521         (VI8F_256): Rename from AVX256MODE4P.
3522         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3523         (ssescalarmodesuffix): Remove SF and DF modes.
3524         (SSEMODE124): Remove.
3525         (SSEMODE1248): Ditto.
3526         (SSEMODEF2P): Ditto.
3527         (AVXMODEF2P): Ditto.
3528         (AVXMODEFDP): Ditto.
3529         (AVXMODEFSP): Ditto.
3530         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3531         unconditional.
3532         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3533         unconditional.
3534         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3535         xop_pcmov_<mode>256.  Use V mode iterator.
3536
3537         Adjust RTX patterns globally for renamed mode attributes.
3538
3539 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3540
3541         * haifa-sched.c (sched_emit_insn): Emit insn before first
3542         non-scheduled insn.  Inform back-end about new insn.  Add
3543         new insn to scheduled_insns list.
3544
3545 2011-05-02  Richard Guenther  <rguenther@suse.de>
3546
3547         PR tree-optimization/48822
3548         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3549         (process_scc): Indicate which iteration we start.
3550
3551 2011-05-02  Jan Hubicka  <jh@suse.cz>
3552
3553         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3554         (lto_section_overrun): New.
3555         * lto-section-out.c (append_block): Rename to ...
3556         (lto_append_block): ... this one; export.
3557         (lto_output_1_stream): Move lto lto-streamer.h
3558         (lto_output_data_stream): Update.
3559         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3560         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3561         functions.
3562
3563 2011-05-02  Richard Guenther  <rguenther@suse.de>
3564
3565         * tree.c (tree_code_counts): New global array.
3566         (record_node_allocation_statistics): Count individual tree codes.
3567         (dump_tree_statistics): Dump individual code stats.
3568
3569 2011-05-01  Jan Hubicka  <jh@suse.cz>
3570
3571         * ipa-inline.c (caller_growth_limits): Fix thinko when
3572         looking for largest stack frame.
3573         * ipa-inline.h (dump_inline_summary): Declare.
3574         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3575         on stack usage.
3576         (dump_inline_summary): Export.
3577         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3578
3579 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3580
3581         * reginfo.c (memory_move_cost): Change rclass argument type form
3582         'enum reg_class' to reg_class_t.
3583         * reload.h (memory_move_cost): Update prototype.
3584         * postreload.c reload_cse_simplify_set): Change type dclass var to
3585         reg_class_t.
3586         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3587         Update prototype.
3588         (ira_allocate_and_set_costs): Change aclass argument type form
3589         'enum reg_class' to reg_class_t.
3590         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3591         Change aclass argument type to reg_class_t.
3592         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3593         to reg_class_t.
3594         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3595         memory_move_cost call.
3596
3597         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3598         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3599         Change type tmp var to reg_class_t.
3600
3601 2011-04-30  Jan Hubicka  <jh@suse.cz>
3602
3603         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3604         inlining into function with flatten attribute.
3605         (want_inline_small_function_p): Be more realistic about inlining
3606         cold calls where callee size grows.
3607
3608 2011-04-30  Jan Hubicka  <jh@suse.cz>
3609
3610         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3611         flags.
3612
3613 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3614
3615         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3616         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3617         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3618         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3619         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3620         (print_operand): Rename to...
3621         (sparc_print_operand): ...this. Make static. Adjust
3622         sparc_print_operand function call.
3623         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3624         functions.
3625
3626 2011-04-30  Jan Hubicka  <jh@suse.cz>
3627
3628         PR middle-end/48752
3629         * ipa-inline.c (early_inliner): Disable when doing late
3630         addition of function.
3631
3632 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3633
3634         * dwarf2out.c (get_address_mode): New inline.
3635         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3636         if not dwarf_strict emit
3637         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3638         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3639         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3640         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3641         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3642         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3643         mem_loc_descriptor callers.
3644         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3645         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3646         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3647         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3648         (base_types): New variable.
3649         (get_base_type_offset, calc_base_type_die_sizes,
3650         base_type_for_mode, mark_base_types, base_type_cmp,
3651         move_marked_base_types): New functions.
3652         (calc_die_sizes): Assert that die_offset is 0 or equal to
3653         next_die_offset.
3654         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3655         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3656         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3657         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3658         (gen_subprogram_die): Don't give up on call site parameters
3659         with non-integral or large integral modes.  Adjust
3660         mem_loc_descriptor callers.
3661         (prune_unused_types): Call prune_unused_types_mark on base_types
3662         vector entries.
3663         (resolve_addr): Call mark_base_types.
3664         (dwarf2out_finish): Call move_marked_base_types.
3665
3666         PR tree-optimization/48809
3667         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3668         type.
3669         (gen_inbound_check): Don't compute index_expr - range_min in utype
3670         again, instead reuse SSA_NAME initialized in build_arrays.
3671         Remove two useless gsi_for_stmt calls.
3672
3673 2011-04-29  Jeff Law  <law@redhat.com>
3674
3675         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3676
3677 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3678
3679         * cgraph.h (cgraph_postorder): Remove declaration.
3680         * ipa-utils.h (ipa_free_postorder_info): Declare.
3681         (ipa_reverse_postorder): Likewise.
3682         * cgraphunit.c: Include ipa-utils.h.
3683         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3684         * ipa-inline.c: Include ipa-utils.h.
3685         (ipa_inline): Update call to ipa_reverse_postorder.
3686         * ipa-pure-const.c (propagate_pure_const): Update call to
3687         ipa_reduced_postorder and ipa_print_order.  Call
3688         ipa_free_postorder_info to clean up.
3689         (propagate_nothrow): Likewise.
3690         * ipa-reference.c (propagate): Removed a useless call to
3691         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3692         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3693         * ipa.c: Include ipa-utils.h.
3694         (ipa_profile): Update call to ipa_reverse_postorder.
3695         (cgraph_postorder): Moved to...
3696         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3697         (ipa_utils_print_order): Renamed to ipa_print_order.
3698         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3699         comments.
3700         (ipa_free_postorder_info): New function.
3701         * passes.c: Include ipa-utils.h.
3702         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3703         (ipa_write_summaries): Likewise.
3704         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3705         (cgraphunit.o): Likewise.
3706         (ipa.o): Likewise.
3707         (ipa-inline.o): Likewise.
3708
3709 2011-04-29  Jan Hubicka  <jh@suse.cz>
3710
3711         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3712         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3713         * ipa-inline.h (clause_t): Turn into unsigned int.
3714         * ipa-inline-analysis.c (add_clause): Do more simplification.
3715         (and_predicates): Shortcut more cases.
3716         (predicates_equal_p): Move forward; check that clauses are properly
3717         ordered.
3718         (or_predicates): Shortcut more cases.
3719         (edge_execution_predicate): Rewrite as...
3720         (set_cond_stmt_execution_predicate): ... this function; handle
3721         __builtin_constant_p.
3722         (set_switch_stmt_execution_predicate): New .
3723         (compute_bb_predicates): New.
3724         (will_be_nonconstant_predicate): Update TODO.
3725         (estimate_function_body_sizes): Use compute_bb_predicates
3726         and free them later, always try to estimate if stmt is constant.
3727         (estimate_time_after_inlining, estimate_size_after_inlining):
3728         Gracefully handle optimized out edges.
3729         (read_predicate): Fix off by one error.
3730
3731 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3732
3733         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3734
3735 2011-04-27  Xinliang David Li  <davidxl@google.com>
3736
3737         * tree-profile.c (init_ic_make_global_vars): Set
3738         tls attribute on ic vars.
3739         * coverage.c (coverage_end_function): Initialize
3740         function_list with zero.
3741
3742 2011-04-29  Richard Guenther  <rguenther@suse.de>
3743
3744         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3745         for the type of the result.
3746         (fold_builtin_isascii): Likewise.
3747         (fold_builtin_toascii): Use integer_type_node where appropriate.
3748         (fold_builtin_logb): Likewise.
3749         (fold_builtin_frexp): Likewise.
3750         (fold_builtin_strstr): Likewise.
3751         (fold_builtin_strpbrk): Likewise.
3752         (fold_builtin_fputs): Likewise.
3753         (fold_builtin_sprintf): Likewise.
3754         (fold_builtin_snprintf): Likewise.
3755         (fold_builtin_printf): Likewise.
3756         (do_mpfr_remquo): Use a proper type for the assigned constant.
3757         (do_mpfr_lgamma_r): Likewise.
3758         * dwarf2out.c (resolve_one_addr): Use size_int.
3759         * except.c (init_eh): Likewise.
3760         (assign_filter_values): Use integer_type_node for filter values.
3761         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3762         indices.
3763         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3764         for EH region numbers.
3765         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3766         for the shift amount.
3767
3768 2011-04-29  Richard Guenther  <rguenther@suse.de>
3769
3770         * expr.h (expand_shift): Rename to ...
3771         (expand_variable_shift): ... this.
3772         (expand_shift): Take a constant shift amount.
3773         * expmed.c (expand_shift): Rename to ...
3774         (expand_variable_shift): ... this.
3775         (expand_shift): New wrapper around expand_variable_shift.
3776         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3777         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3778         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3779         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3780         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3781         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3782         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3783         emit_store_flag_1, emit_store_flag): Likewise.
3784         * builtins.c (expand_builtin_signbit): Likewise.
3785         * calls.c (load_register_parameters): Likewise.
3786         * function.c (assign_parm_setup_block): Likewise.
3787         * lower-subreg.c (resolve_shift_zext): Likewise.
3788         * optabs.c (widen_bswap, expand_abs_nojump,
3789         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3790         * spu/spu.c (spu_expand_extv): Likewise.
3791         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3792
3793 2011-04-29  Richard Guenther  <rguenther@suse.de>
3794
3795         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3796         for the remapped region number.
3797         * predict.c (build_predict_expr): Use integer_type_node for the
3798         predict kind.
3799         * fold-const.c (fold_binary_loc): Use integer_type_node for
3800         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3801
3802 2011-04-29  Michael Matz  <matz@suse.de>
3803
3804         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3805         other trees that just builtins.
3806         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3807
3808 2011-04-29  Richard Guenther  <rguenther@suse.de>
3809
3810         * tree-nested.c (get_trampoline_type): Use size_int.
3811         (get_nl_goto_field): Likewise.
3812         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3813         for all indexes.
3814         (lower_eh_constructs_2): Likewise.
3815         (lower_resx): Likewise.
3816         (lower_eh_dispatch): Likewise.
3817         * tree-mudflap.c (mf_build_string): Use size_int.
3818         (mudflap_register_call): Use integer_type_node for the flag.
3819         (mudflap_enqueue_constant): Use size_int.
3820         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3821         instead of rebuilding it.
3822
3823 2011-04-29  Richard Guenther  <rguenther@suse.de>
3824
3825         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3826         Handle OBJ_TYPE_REF.
3827         (find_func_aliases_for_call): Use it more consistently.
3828
3829 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3830
3831         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3832         (rank_for_schedule): Use it.
3833         (schedule_block): Set it.
3834
3835 2011-04-28  David Li  <davidxl@google.com>
3836
3837         * tree.c (crc32_string): Use crc32_byte.
3838         (crc32_byte): New function.
3839         * tree.h (crc32_byte): New function.
3840         * gcov.c (read_graph_file): Handle new cfg_cksum.
3841         (read_count_file): Ditto.
3842         * profile.c (instrument_values): Ditto.
3843         (get_exec_counts): Ditto.
3844         (read_profile_edge_counts): Ditto.
3845         (compute_branch_probabilities): Ditto.
3846         (compute_value_histograms): Ditto.
3847         (branch_prob): Ditto.
3848         (end_branch_prob): Ditto.
3849         * coverage.c (read_counts_file): Ditto.
3850         (get_coverage_counts): Ditto.
3851         (tree_coverage_counter_addr): Ditto.
3852         (coverage_checksum_string): Ditto.
3853         (coverage_begin_output): Ditto.
3854         (coverage_end_function): Ditto.
3855         (build_fn_info_type): Ditto.
3856         (build_fn_info_value): Ditto.
3857         * libgcov.c (gcov_exit): Ditto.
3858         * gcov-dump.c (tag_function): Ditto.
3859         (compute_checksum): Remove.
3860
3861 2011-04-29  Alan Modra  <amodra@gmail.com>
3862
3863         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3864         unspec plus offset.  Tidy macho code.
3865
3866 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3867
3868         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3869         node instead of a decl.  Update all callers.
3870         * cgraph.h: Update declaration.
3871
3872 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3873
3874         PR tree-optimization/48765
3875         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3876         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3877         to indicate if loop aware SLP is being used.  Scan the statements
3878         and update the vectorization factor according to the type of
3879         vectorization before statement analysis.
3880         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3881         pass it to vect_analyze_loop_operations.
3882         (vectorizable_reduction): Set number of copies to 1 in case of pure
3883         SLP statement.
3884         * tree-vect-stmts.c (vectorizable_conversion,
3885         vectorizable_assignment, vectorizable_shift,
3886         vectorizable_operation, vectorizable_type_demotion,
3887         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3888         Likewise.
3889         (vectorizable_condition): Move the check that it is not SLP
3890         vectorization before the number of copies check.
3891         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3892         to vectorize the loop using SLP.
3893
3894 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3895
3896         PR middle-end/48597
3897         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3898         inline asm.
3899
3900 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3901
3902         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3903         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3904         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3905         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3906         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3907         linux*.h headers.
3908         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3909         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3910         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3911         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3912         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3913         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3914         REG_NAME.
3915         * config/i386/linux.h (REG_NAME): Don't define.
3916         * config/i386/linux64.h (REG_NAME): Don't define.
3917         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3918         Undefine before defining.
3919
3920 2011-04-28  Jan Hubicka  <jh@suse.cz>
3921
3922         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3923         nonconstant_names array.
3924         (estimate_function_body_sizes): Build nonconstant_names array; handle
3925         BUILT_IN_CONSTANT_P.
3926
3927 2011-04-28  Richard Guenther  <rguenther@suse.de>
3928
3929         PR bootstrap/48804
3930         Revert
3931         2011-04-28  Richard Guenther  <rguenther@suse.de>
3932
3933         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3934         as late as possible.
3935
3936 2011-04-28  Richard Guenther  <rguenther@suse.de>
3937
3938         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3939         (debug_constraint): Do it here.
3940         (dump_constraints): And here.
3941         (rewrite_constraints): And here.
3942         (dump_constraint_edge): Remove.
3943         (dump_constraint_graph): Rewrite to produce DOT output.
3944         (solve_constraints): Build succ graph as late as possible.
3945         Dump constraint graphs before and after solving.
3946
3947 2011-04-28  Richard Guenther  <rguenther@suse.de>
3948
3949         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3950         New function split out from ...
3951         (find_func_aliases): ... here.  Call it.
3952         (find_func_aliases_for_call): Likewise.
3953
3954 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3955
3956         * internal-fn.h (internal_fn_name_array): Declare.
3957         (internal_fn_flags_array): Likewise.
3958
3959 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3960
3961         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3962         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3963         Move from sse.md.
3964         (ssemodefsuffix): Remove.
3965         (ssevecmodesuffix): New mode attribute.
3966         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3967         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3968         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3969         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3970         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3971         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3972         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3973         ssemodesuffix mode attribute.
3974         (float splitters): Use ssevecmodesuffix mode attribute.
3975         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3976         (sseinsmode): Rename from avxvecmode.
3977         (avxsizesuffix): Rename from avxmodesuffix.
3978         (sseintvecmode): Rename from avxpermvecmode.
3979         (ssedoublevecmode): Rename from ssedoublesizemode.
3980         (ssehalfvecmode): Rename from avxhalfvecmode.
3981         (ssescalarmode): Rename from avxscalarmode.
3982         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3983         templates for ssemodesuffix mode attribute.
3984         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3985         mode attribute.
3986
3987         Adjust RTX patterns globally for renamed mode attributes.
3988
3989 2011-04-27  Jan Hubcika  <jh@suse.cz>
3990
3991         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3992         * ipa-inline-analysis.c: Include alloc-pool.h.
3993         (edge_predicate_pool): New.
3994         (trye_predicate_p): New function
3995         (false_predicate_p): New function.
3996         (add_clause): Sanity check that false clauses are "optimized";
3997         never add clauses to predicate that is already known to be false.
3998         (and_predicate): Use flase_predicate_p.
3999         (evaulate_predicate): Rename to ...
4000         (evaluate_predicate): ... this one; update all callers; assert
4001         that false is not listed among possible truths.
4002         (dump_predicate): Use true_predicate_p.
4003         (account_size_time): Use false_predicate_p.
4004         (evaulate_conditions_for_edge): Rename to ...
4005         (evaluate_conditions_for_edge) ... this one.
4006         (edge_set_predicate): New function.
4007         (inline_edge_duplication_hook): Duplicate edge predicates.
4008         (inline_edge_removal_hook): Free edge predicates.
4009         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4010         (dump_inline_summary): Update.
4011         (estimate_function_body_sizes): Set edge predicates.
4012         (estimate_calls_size_and_time): Handle predicates.
4013         (estimate_callee_size_and_time): Update.
4014         (remap_predicate): Add toplev_predicate; update comment.
4015         (remap_edge_predicates): New function.
4016         (inline_merge_summary): Compute toplev predicate; update.
4017         (read_predicate): New function.
4018         (read_inline_edge_summary): Use it.
4019         (inline_read_section): Likewise.
4020         (write_predicate): New function.
4021         (write_inline_edge_summary): Use it.
4022         (inline_write_summary): Likewise.
4023         (inline_free_summary): Free alloc pool and edge summary vec.
4024
4025 2011-04-27  Richard Guenther  <rguenther@suse.de>
4026
4027         * tree-ssa-structalias.c (changed_count): Remove.
4028         (changed): Use a bitmap.
4029         (unify_nodes): Adjust.
4030         (do_sd_constraint): Likewise.
4031         (do_ds_constraint): Likewise.
4032         (do_complex_constraint): Likewise.
4033         (solve_graph): Likewise.
4034
4035 2011-04-27  Jan Hubicka  <jh@suse.cz>
4036
4037         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4038
4039 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4040
4041         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4042         (avx_vperm2f128_*_operand): Ditto.
4043         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4044         Use avx_vpermilp_parallel in insn condition.
4045         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4046         Use avx_vperm2f128_parallel in insn condition.
4047
4048 2011-04-27  Richard Guenther  <rguenther@suse.de>
4049
4050         * Makefile.in (tree-ssa-structalias.o): Remove
4051         gt-tree-ssa-structalias.h dependency.
4052         (GTFILES): Remove tree-ssa-structalias.c.
4053         * tree.c (allocate_decl_uid): New function.
4054         (make_node_stat): Use it.
4055         (copy_node_stat): Likewise.
4056         * tree.h (allocate_decl_uid): Declare.
4057         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4058         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4059         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4060         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4061         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4062         (struct heapvar_map): Likewise.
4063         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4064         heapvar_insert): Likewise.
4065         (make_heapvar_for): Rename to ...
4066         (make_heapvar): ... this.  Simplify.
4067         (fake_var_decl_obstack): New global var.
4068         (build_fake_var_decl): New function.
4069         (make_constraint_from_heapvar): Adjust.
4070         (handle_lhs_call): Likewise.
4071         (create_function_info_for): Likewise.
4072         (intra_create_variable_infos): Likewise.
4073         (init_alias_vars): Allocate fake_var_decl_obstack.
4074         (init_alias_heapvars, delete_alias_heapvars): Remove.
4075         (compute_points_to_sets): Do not call init_alias_heapvars.
4076         (ipa_pta_execute): Likewise.
4077         (delete_points_to_sets): Free fake_var_decl_obstack.
4078
4079 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4080
4081         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4082         (si_from_UTItype, si_to_UTItype): New functions.
4083         (__udivmodti4): Use them to implement type-punning.
4084         * config/spu/multi3.c (union qword_TItype): New data type.
4085         (si_from_TItype, si_to_TItype): New functions.
4086         (__multi3): Use them to implement type-punning.
4087
4088 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4089
4090         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4091
4092 2011-04-27  Jan Hubicka  <jh@suse.cz>
4093
4094         * ipa-prop.c (function_insertion_hook_holder): New holder.
4095         (ipa_add_new_function): New function.
4096         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4097         Register/deregister holder.
4098
4099 2011-04-27  Richard Guenther  <rguenther@suse.de>
4100
4101         PR tree-optimization/48772
4102         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4103
4104 2011-04-27  Richard Guenther  <rguenther@suse.de>
4105
4106         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4107         TARGET_MEM_REF handling.
4108
4109 2011-04-27  Nick Clifton  <nickc@redhat.com>
4110
4111         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4112         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4113         (REG_CLASS_NAMES): Likewise.
4114         (REG_CLASS_CONTENTS): Likewise.
4115         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4116         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4117         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
4118         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
4119         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
4120         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4121         duplicate register classes.
4122         (frv_class_likely_spilled_p): Likewise.
4123         (frv_register_move_cost): Likewise.
4124
4125         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4126         end of the regno_reg_class array.
4127
4128 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
4129
4130         PR c/48742
4131         * c-typeck.c (build_binary_op): Don't wrap arguments if
4132         int_operands is true.
4133
4134 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4135
4136         PR target/48767
4137         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4138         targetm.calls.must_pass_in_stack for void type.
4139
4140 2011-04-26  Jan Hubicka  <jh@suse.cz>
4141
4142         * cgraphbuild.c (build_cgraph_edges): Update call
4143         of cgraph_create_edge and cgraph_create_indirect_edge.
4144         * cgraph.c (cgraph_create_edge_including_clones,
4145         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4146         cgraph_update_edges_for_call_stmt_node): Do not take nest
4147         argument; do not initialize call_stmt_size/time.
4148         (dump_cgraph_node): Do not dump nest.
4149         (cgraph_clone_edge): Do not take loop_nest argument;
4150         do not propagate it; do not clone call_stmt_size/time.
4151         (cgraph_clone_node): Likewise.
4152         (cgraph_create_virtual_clone): Update.
4153         * cgraph.h (struct cgraph_edge): Remove
4154         call_stmt_size/call_stmt_time/loop_nest.
4155         (cgraph_create_edge, cgraph_create_indirect_edge,
4156         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4157         prototype.
4158         * tree-emutls.c (gen_emutls_addr): Update.
4159         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4160         loop_nest; handle indirect calls, too.
4161         (clone_inlined_nodes): Do not care about updating inline summaries.
4162         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4163         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4164         stream call_stmt_size/call_stmt_time/loop_nest.
4165         * ipa-inline.c (edge_badness): Update.
4166         (ipa_inline): dump summaries after inlining.
4167         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4168         New.
4169         (inline_edge_summary): New function.
4170         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4171         (inline_edge_removal_hook): Handle edge summaries.
4172         (inline_edge_duplication_hook): New hook.
4173         (inline_summary_alloc): Alloc hooks.
4174         (initialize_growth_caches): Do not register removal hooks.
4175         (free_growth_caches); Do not free removal hook.
4176         (dump_inline_edge_summary): New function.
4177         (dump_inline_summary): Use it.
4178         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4179         (inline_update_callee_summaries): New function.
4180         (inline_merge_summary): Use it.
4181         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4182         (read_inline_edge_summary): New function.
4183         (inline_read_section): Use it.
4184         (write_inline_edge_summary): New function.
4185         (inline_write_summary): Use it.
4186         (inline_free_summary): Free edge new holders.
4187         * tree-inline.c (copy_bb): Update.
4188
4189 2011-04-26  Jason Merrill  <jason@redhat.com>
4190
4191         * tree-eh.c (lower_try_finally_switch): Create the label along with
4192         the CASE_LABEL_EXPR.
4193
4194 2011-04-26  David S. Miller  <davem@davemloft.net>
4195             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4196
4197         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4198         * configure: Regenerate.
4199
4200 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4201
4202         PR target/48258
4203         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4204         reduction.
4205         (VEC_reduc): New code iterator and splitters for vector reduction.
4206         (VEC_reduc_name): Ditto.
4207         (VEC_reduc_rtx): Ditto.
4208         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4209         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4210
4211         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4212         support for extracting SF on VSX.
4213
4214         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4215         generating xscvspdp.
4216         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4217         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4218         double add, minimum, maximum vector reduction.
4219         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4220         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4221         optimize double vector reduction.
4222         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4223
4224 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4225
4226         * config/fr30/fr30.h (inhibit_libc): Don't define.
4227         * config/m32r/m32r-protos.h: Correct comment.
4228         * config/v850/v850.h (GHS_default_section_names,
4229         GHS_current_section_names): Use tree, not union tree_node *.
4230
4231 2011-04-26  Xinliang David Li  <davidxl@google.com>
4232
4233         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4234         * c-family/c-opts.c (c_common_handle_option): Set
4235         warn_maybe_uninitialized.
4236         * opts.c (common_handle_option): Ditto.
4237         * common.opt:  New option.
4238         * tree-ssa.c (warn_uninit): Add one more parameter.
4239         (warn_uninitialized_var): Pass warning code.
4240         * tree-flow.h: Interface change.
4241
4242
4243 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4244
4245         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4246         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4247         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4248
4249 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4250
4251         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4252         * config/mips/mips.opt (mmips-tfile): Remove.
4253
4254         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4255         mips-tdump reference to ...
4256         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
4257         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4258         reference by Tru64 UNIX.
4259
4260 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
4261
4262         PR debug/48768
4263         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4264         is error_mark_node, set value to NULL.
4265
4266         PR tree-optimization/48734
4267         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4268         if return value from maybe_fold_*_comparsions isn't something
4269         the code is prepared to handle.
4270
4271 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
4272
4273         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4274         mode check.
4275         (ext_QIreg_nomode_operands): Remove.
4276         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4277         (*andsi_1): Ditto.
4278         (*andhi_1): Ditto.
4279
4280 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
4281
4282         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4283
4284 2011-04-26  Richard Guenther  <rguenther@suse.de>
4285
4286         * c-typeck.c (build_unary_op): Do not expand array-refs via
4287         pointer arithmetic.  Only adjust qualifiers for function types.
4288
4289 2011-04-26  Richard Guenther  <rguenther@suse.de>
4290
4291         PR middle-end/48694
4292         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4293         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4294         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
4295         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4296
4297 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
4298
4299         * doc/extend.texi: Document __underlying_type.
4300
4301 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
4302
4303         * config/rs6000/titan.md (automata_option "progress"): Remove.
4304
4305 2011-04-25  Jeff Law  <law@redhat.com>
4306
4307         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4308
4309 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
4310
4311         * system.h (ENUM_BITFIELD): Remove.
4312
4313 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
4314             Eric Botcazou  <ebotcazou@adacore.com>
4315
4316         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4317         for STORE_FLAG_VALUE==-1 case.
4318
4319 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
4320
4321         PR target/43804
4322         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4323         LEGITIMATE_PIC_OPERAND_P.
4324
4325 2011-04-24  Jan Hubicka  <jh@suse.cz>
4326
4327         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4328         WPA hack.
4329         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4330         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4331         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4332         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4333         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4334         Sanity check predicate length.
4335         (remap_predicate): Likewise; sanity check jump functions.
4336         (inline_read_section, inline_write_summary): Sanity check
4337         predicate length.
4338
4339 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
4340
4341         PR other/48748
4342         * doc/extend.texi (Type Traits): Document __is_standard_layout,
4343         __is_literal_type, and __is_trivial; update throughout about
4344         possibly cv-qualified void types.
4345
4346 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4347
4348         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4349         testsuite and make it version agnostic.
4350
4351 2011-04-22  Jan Hubicka  <jh@suse.cz>
4352
4353         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4354
4355 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
4356
4357         PR c/48685
4358         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4359         to VOID_TYPE even around MODIFY_EXPR.
4360
4361 2011-04-22  Mike Stump  <mikestump@comcast.net>
4362
4363         * gensupport.c (read_md_rtx): Fix typo in comment.
4364         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4365         comment.
4366
4367 2011-04-22  Jan Hubicka  <jh@suse.cz>
4368
4369         * gengtype.c (open_base_files): Add ipa-inline.h include.
4370         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4371         ipa-prop.c; update all uses.
4372         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4373         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4374         merge summary of inlined function into former caller.
4375         * ipa-inline.c (max_benefit): Remove.
4376         (edge_badness): Compensate for removal of benefits.
4377         (update_caller_keys): Use
4378         reset_node_growth_cache/reset_edge_growth_cache.
4379         (update_callee_keys): Likewise.
4380         (update_all_callee_keys): Likewise.
4381         (inline_small_functions): Do not collect max_benefit; do not reset
4382         estimated_growth; call free_growth_caches and initialize_growth_caches.
4383         * ipa-inline.h (struct condition, type clause_t, struct predicate,
4384         struct size_time_entry): New structures.
4385         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4386         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4387         and estimated_growth.
4388         (edge_growth_cache_entry): New structure.
4389         (node_growth_cache, edge_growth_cache): New global vars.
4390         (estimate_growth): Turn into inline.
4391         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4392         initialize_growth_caches, free_growth_caches): Declare.
4393         (estimate_edge_growth): Rewrite.
4394         (estimate_edge_time): Implement as inline cache lookup.
4395         (reset_node_growth_cache, reset_edge_growth_cache): New inline
4396         functions.
4397         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4398         (NUM_CONDITIONS): New constant.
4399         (predicate_conditions): New enum.
4400         (IS_NOT_CONSTANT): New constant.
4401         (edge_removal_hook_holder): New var.
4402         (node_growth_cache, edge_growth_cache): New global vars.
4403         (true_predicate, single_cond_predicate, false_predicate,
4404         not_inlined_predicate, add_condition, add_clause, and_predicates,
4405         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4406         dump_clause, dump_predicate, account_size_time,
4407         evaulate_conditions_for_edge): New functions.
4408         (inline_summary_alloc): Move to heap.
4409         (inline_node_removal_hook): Clear condition and entry vectors.
4410         (inline_edge_removal_hook): New function.
4411         (initialize_growth_caches, free_growth_caches): New function.
4412         (dump_inline_summary): Update.
4413         (edge_execution_predicate): New function.
4414         (will_be_nonconstant_predicate): New function.
4415         (estimate_function_body_sizes): Compute BB and constantness predicates.
4416         (compute_inline_parameters): Do not clear estimated_growth.
4417         (estimate_edge_size_and_time): New function.
4418         (estimate_calls_size_and_time): New function.
4419         (estimate_callee_size_and_time): New function.
4420         (remap_predicate): New function.
4421         (inline_merge_summary): New function.
4422         (do_estimate_edge_time): New function based on...
4423         (estimate_edge_time): ... this one.
4424         (do_estimate_edge_growth): New function.
4425         (do_estimate_growth): New function based on....
4426         (estimate_growth): ... this one.
4427         (inline_analyze_function): Analyze after deciding on jump functions.
4428         (inline_read_section): New function.
4429         (inline_read_summary): Use it.
4430         (inline_write_summary): Write all the new data.
4431         * ipa-prop.c (ipa_get_param_decl_index): Export.
4432         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4433         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4434         Declare.
4435         (ipa_get_lattice): Move here from ipa-cp.c
4436         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4437         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4438         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4439         cgraph_edge_inlinable_p): Remove.
4440         * cgraphunit.c: Include ipainline.h
4441         (cgraph_process_new_functions): Update call of
4442         compute_inline_parameters.
4443
4444 2011-04-22  Richard Guenther  <rguenther@suse.de>
4445
4446         * tree.c (build_int_cst): Properly create canonicalized integer
4447         constants.
4448         (build_int_cst_type): Remove scary comments.
4449
4450 2011-04-22  Xinliang David Li  <davidxl@google.com>
4451
4452         * toplev.c (process_options): Enable -Werror=coverage-mismatch
4453         by default when -Wno-error is not specified.
4454         * opts-global.c (decode_options): Remove call to
4455         control_warning_options.
4456
4457 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4458
4459         PR tree-optimization/48717
4460         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4461         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4462
4463 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
4464
4465         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
4466         definition where used.
4467
4468 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4469
4470         PR c/48716
4471         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4472         TREE_STATIC variables declared inside of some OpenMP construct.
4473
4474 2011-04-22  Martin Jambor  <mjambor@suse.cz>
4475
4476         PR middle-end/48585
4477         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4478
4479 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
4480
4481         PR c/36750
4482         * c-typeck.c (pop_init_level): Do not warn about initializing
4483         with ` = {0}'.
4484
4485 2011-04-22  Alan Modra  <amodra@gmail.com>
4486
4487         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4488         when returning call_cookie.
4489         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4490         pointers, to functions with no more vector args than the current
4491         function, and some non-local calls for ABI_V4.
4492         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4493         sibcall_nonlocal_aix64): Combine to ..
4494         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
4495         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4496         (sibcall_value_nonlocal_aix<mode>): ..likewise.
4497         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4498         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
4499         operand.
4500         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4501         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4502         sibcall_value_symbolic_64): Delete.
4503
4504 2011-04-21  Xinliang David Li  <davidxl@google.com>
4505
4506         * cgraph.h: Remove pid.
4507         * cgraph.c: Remove pid.
4508         * value-prof.c (init_node_map): New function.
4509         (del_node_map): New function.
4510         (find_func_by_funcdef_no): New function.
4511         (gimple_ic_transform): Call new function.
4512         * cgraphunit.c (cgraph_finalize_function): Remove pid.
4513         * function.c (get_last_funcdef_no): New function.
4514         * function.h (get_last_funcdef_no): New function.
4515         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4516         to libgcov function.
4517         (tree-profiling): Call node map init and delete function.
4518
4519 2011-04-21  Ian Lance Taylor  <iant@google.com>
4520
4521         * godump.c (go_format_type): Use exported Go name for anonymous
4522         field name.
4523
4524 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4525
4526         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4527         Call builtin_function_type_list instead of builtin_function_type.
4528         (UNARY, BINARY, TRINARY, QUAD): Likewise.
4529
4530 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4531
4532         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4533         build_function_type_list instead of build_function_type.
4534         Delete variable `endlink'.
4535
4536 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4537
4538         * config/s390/s390.c (s390_init_builtins): Call
4539         build_function_type_list instead of build_function_type.
4540
4541 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4542
4543         * config/ia64/ia64.c (ia64_init_builtins): Call
4544         build_function_type_list instead of builtin_function_type.
4545
4546 2011-04-21  Easwaran Raman  <eraman@google.com>
4547
4548         * cfgexpand.c (stack_var): Remove OFFSET...
4549         (add_stack_var): ...and its reference here...
4550         (expand_stack_vars): ...and here.
4551         (stack_var_cmp): Sort by descending order of size.
4552         (partition_stack_vars): Change heuristic.
4553         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4554         (dump_stack_var_partition): Add newline after each partition.
4555
4556 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
4557             Jeff Law  <law@redhat.com>
4558
4559         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4560         * gengtype.c (matching_file_name_substitute): Likewise.
4561
4562 2011-04-21  Richard Guenther  <rguenther@suse.de>
4563
4564         PR lto/48703
4565         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4566
4567 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4568
4569         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4570
4571 2011-04-21  Richard Guenther  <rguenther@suse.de>
4572
4573         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4574         file name.
4575
4576 2011-04-21  Richard Guenther  <rguenther@suse.de>
4577
4578         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4579         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4580         Use DECL_P, not SSA_VAR_P.
4581         (ptr_derefs_may_alias_p): Likewise.
4582         (ptr_deref_may_alias_ref_p_1): Likewise.
4583         (decl_refs_may_alias_p): Likewise.
4584         (refs_may_alias_p_1): Likewise.
4585         (ref_maybe_used_by_call_p_1): Likewise.
4586         (call_may_clobber_ref_p_1): Likewise.
4587         (indirect_ref_may_alias_decl_p): Assume indirect refrences
4588         are either MEM_REF or TARGET_MEM_REF.
4589         (indirect_refs_may_alias_p): Likewise.
4590         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4591         for MEM_EXPR of indirect calls.
4592
4593 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4594
4595         * vmsdbgout.c (write_srccorr): Compute file length from the string.
4596         (dst_file_info_struct): Remove flen field.
4597         (lookup_filename): Remove code that set flen field.
4598
4599 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4600
4601         * config/ia64/ia64.c (ia64_start_function): Add a guard.
4602
4603 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
4604
4605         PR target/48708
4606         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4607         vec_extract and vec_concat for non-SSE4_1 targets.
4608
4609 2011-04-21  Richard Guenther  <rguenther@suse.de>
4610
4611         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4612         return statements.
4613
4614 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4615
4616         * config/i386/cygming.h (union tree_node, TREE): Don't define or
4617         undefine.
4618         (FILE): Don't undefine.
4619
4620 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4621
4622         * config/alpha/alpha.c (struct machine_function): Use rtx, not
4623         struct rtx_def *.
4624         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4625         struct rtx_def *.
4626         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4627         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4628         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4629         rtx_def *.
4630         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
4631         definitions where used.
4632         * config/microblaze/microblaze.h (struct microblaze_args): Use
4633         rtx, not struct rtx_def *.
4634         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4635         rtx_def *.
4636         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4637         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4638         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4639         not struct rtx_def *.
4640         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4641         struct rtx_def *.
4642         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4643         rtx_def *.
4644         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4645
4646 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4647
4648         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4649         operand_equal_p to compare DR_BASE_ADDRESSes.
4650         (vect_check_interleaving): Likewise.
4651
4652 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4653
4654         PR target/46329
4655         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4656         for all Neon struct constants.
4657
4658 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4659
4660         * target.def (legitimate_constant_p): New hook.
4661         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4662         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4663         * doc/tm.texi: Regenerate.
4664         * hooks.h (hook_bool_mode_rtx_true): Declare.
4665         * hooks.c (hook_bool_mode_rtx_true): Define.
4666         * system.h (LEGITIMATE_CONSTANT_P): Poison.
4667         * calls.c (precompute_register_parameters): Replace uses of
4668         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4669         (emit_library_call_value_1): Likewise.
4670         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4671         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4672         * ira-costs.c (scan_one_insn): Likewise.
4673         * recog.c (general_operand, immediate_operand): Likewise.
4674         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4675         * reload1.c (init_eliminable_invariants): Likewise.
4676
4677         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4678         mode argument.
4679         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4680         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4681         argument.
4682         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4683         * config/alpha/predicates.md (input_operand): Update call to
4684         alpha_legitimate_constant_p.
4685
4686         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4687         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4688         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4689         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4690         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4691         (arm_legitimate_constant_p): New functions.
4692         (arm_cannot_force_const_mem): Make static.
4693
4694         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4695
4696         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4697         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4698         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4699         instead of bfin_legitimate_constant_p.
4700         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
4701         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4702
4703         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4704
4705         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4706
4707         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4708         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4709         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4710         (frv_legitimate_constant_p): Make static.  Add a mode argument.
4711
4712         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4713         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4714         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4715
4716         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4717         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4718         * config/i386/i386.c (legitimate_constant_p): Rename to...
4719         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
4720         argument.
4721         (ix86_cannot_force_const_mem): Update accordingly.
4722         (ix86_legitimate_address_p): Likewise.
4723         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4724         * config/i386/i386.md: Update commentary.
4725
4726         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4727         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4728         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4729         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
4730
4731         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4732
4733         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4734         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4735         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4736         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
4737
4738         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4739         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4740         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4741
4742         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4743         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4744         (m32r_legitimate_constant_p): New function.
4745
4746         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4747         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4748         LEGITIMATE_CONSTANT_P.
4749         (LEGITIMATE_CONSTANT_P): Delete.
4750         * config/m68k/m68k.c (m68k_expand_prologue): Call
4751         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4752         (m68k_legitimate_constant_p): New function.
4753         * config/m68k/m68k.md: Update comments.
4754
4755         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4756         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4757         (mcore_legitimate_constant_p): New function.
4758
4759         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4760         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4761         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4762         Add a mode argument.
4763         (mep_legitimate_address): Update accordingly.
4764         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4765
4766         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4767         Delete.
4768         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4769         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4770         static.  Check OP's mode for VOIDmode.
4771         (microblaze_legitimate_constant_p): New function.
4772         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4773
4774         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4775         * config/mips/mips.c (mips_legitimate_constant_p): New function.
4776         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4777         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4778         * config/mips/predicates.md: Update comments.
4779
4780         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4781         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4782         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4783         (mmix_legitimate_constant_p): Make static, return a bool, and take
4784         a mode argument.
4785         (mmix_print_operand_address): Update accordingly.
4786
4787         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4788         Delete.
4789         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
4790         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4791         static.  Add a mode argument.
4792         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4793
4794         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4795
4796         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4797         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4798         (pa_legitimate_constant_p): New function.
4799
4800         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4801
4802         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4803         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4804         (pdp11_legitimate_constant_p): New function.
4805
4806         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4807         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4808         (rs6000_legitimate_constant_p): New function.
4809
4810         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4811         (rx_legitimate_constant_p): ...this.
4812         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4813         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4814         (rx_legitimate_constant_p): ...this.
4815         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4816         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4817
4818         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4819         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4820         * config/s390/s390.c (legitimate_constant_p): Rename to...
4821         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
4822         and add a mode argument.
4823         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4824
4825         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4826
4827         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4828         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4829         (sh_legitimate_constant_p): New function.
4830
4831         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4832         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4833         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4834         (legitimate_constant_p): Rename to...
4835         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
4836         argument.
4837         (constant_address_p): Update accordingly.
4838
4839         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4840         argument and return a bool.
4841         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4842         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4843         (spu_legitimate_constant_p): Add a mode argument and return a bool.
4844         (spu_rtx_costs): Update accordingly.
4845         * config/spu/predicates.md (vec_imm_operand): Likewise.
4846
4847         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4848
4849         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4850         * config/v850/v850.c (v850_legitimate_constant_p): New function.
4851         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4852
4853         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4854         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4855         * config/vax/vax.c (legitimate_constant_p): Likewise.
4856
4857         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4858         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4859         (xtensa_legitimate_constant_p): New function.
4860
4861 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4862
4863         * target.def (cannot_force_const_mem): Add a mode argument.
4864         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4865         * doc/tm.texi: Regenerate.
4866         * hooks.h (hook_bool_mode_rtx_false): Declare.
4867         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4868         (hook_bool_mode_const_rtx_true): Likewise.
4869         (hook_bool_mode_rtx_false): New function.
4870         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4871         to be non-VOID.  Update call to cannot_force_const_mem.
4872         (find_reloads): Update accordingly.
4873         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4874         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4875         argument.
4876         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4877         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4878         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4879         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4880         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4881         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4882         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4883         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4884         (m68k_cannot_force_const_mem): ...this new function.
4885         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4886         argument.
4887         (mips_const_insns, mips_legitimize_const_move): Update calls.
4888         (mips_secondary_reload_class): Likewise.
4889         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4890         (pa_cannot_force_const_mem): ...this new function.
4891         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4892         (rs6000_cannot_force_const_mem): ...this new function.
4893         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4894         argument.
4895         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4896         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4897         to...
4898         (xtensa_cannot_force_const_mem): ...this new function.
4899
4900 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4901
4902         * config/mips/mips.c (mips16_build_function_stub): Call
4903         build_function_type_list instead of build_function_type.
4904         (mips16_build_call_stub): Likewise.
4905
4906 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4907
4908         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4909         instead of build_function_type.
4910
4911 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4912
4913         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4914         instead of build_function_type.
4915
4916 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4917
4918         PR target/48678
4919         * config/i386/i386.md (insv): Change operand 0 constraint to
4920         "register_operand".  Change operand 1 and 2 constraint to
4921         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4922         * config/i386/sse.md (sse4_1_pinsrb): Export.
4923         (sse2_pinsrw): Ditto.
4924         (sse4_1_pinsrd): Ditto.
4925         (sse4_1_pinsrq): Ditto.
4926         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4927         * config/i386/i386.c (ix86_expand_pinsr): New.
4928
4929 2011-04-20  Easwaran Raman  <eraman@google.com>
4930
4931         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4932         containing union type only with -fstrict-aliasing.
4933
4934 2011-04-20  Jim Meyering  <meyering@redhat.com>
4935
4936         Remove useless if-before-free tests.
4937         * calls.c (expand_call, save_area): Likewise.
4938         * cfgcleanup.c (try_forward_edges): Likewise.
4939         * collect2.c (collect_execute): Likewise.
4940         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4941         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4942         * coverage.c (coverage_checksum_string): Likewise.
4943         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4944         * cselib.c (cselib_init): Likewise.
4945         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4946         (df_set_clean_cfg): Likewise.
4947         * function.c (free_after_compilation): Likewise.
4948         * gcc.c (do_spec_1, main): Likewise.
4949         * gcov.c (create_file_names): Likewise.
4950         * gensupport.c (identify_predicable_attribute): Likewise.
4951         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4952         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4953         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4954         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4955         * ipa-pure-const.c (local_pure_const): Likewise.
4956         * ipa-reference.c (propagate): Likewise.
4957         * ira-costs.c (free_ira_costs): Likewise.
4958         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4959         * matrix-reorg.c (mat_free): Likewise.
4960         * prefix.c (get_key_value): Likewise.
4961         * profile.c (compute_value_histograms): Likewise.
4962         * reload1.c (free_reg_equiv): Likewise.
4963         * sched-deps.c (free_deps): Likewise.
4964         * sel-sched-ir.c (fence_clear): Likewise.
4965         * sese.c (set_rename, if_region_set_false_region): Likewise.
4966         * tree-data-ref.c (free_rdg): Likewise.
4967         * tree-eh.c (lower_try_finally): Likewise.
4968         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4969         * tree-ssa-live.c (delete_var_map): Likewise.
4970         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4971         * tree-ssa-pre.c (phi_trans_add): Likewise.
4972
4973 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
4974
4975         PR tree-optimization/48611
4976         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4977         beyond ERT_MUST_NOT_THROW region.
4978
4979 2011-04-20  Catherine Moore  <clm@codesourcery.com>
4980
4981         * config/mips/mips.opt (mfix-24k): New.
4982         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4983         * config/mips/mips.md (length): Increase by 4 for stores if
4984         fixing 24K errata.
4985         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4986         all noreorder if fixing 24K errata.
4987         * doc/invoke.texi: Document mfix-24k.
4988
4989 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
4990
4991         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
4992         quad-word modes, reduce to 9-bit index range when above 1016 limit.
4993
4994 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4995
4996         * config/arm/arm.c (arm_gen_constant): Move movw support ....
4997         (const_ok_for_op): ... to here.
4998
4999 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5000
5001         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5002         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5003
5004 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5005
5006         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5007
5008 2011-04-20  Richard Guenther  <rguenther@suse.de>
5009
5010         PR tree-optimization/47892
5011         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5012         are if-convertible.
5013
5014 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5015
5016         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5017
5018 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5019
5020         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5021
5022 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5023
5024         PR target/18145
5025
5026         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5027         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5028         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5029         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5030         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5031
5032         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5033         New prototype.
5034
5035         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5036         (avr_asm_named_section, avr_asm_output_aligned_common,
5037         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5038         New functions to update...
5039         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5040         (avr_asm_init_sections): Overwrite section callbacks for
5041         data_section, bss_section.
5042         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5043         from here to...
5044         (avr_file_end): ...here.
5045
5046 2011-04-20  Richard Guenther  <rguenther@suse.de>
5047
5048         PR middle-end/48695
5049         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5050         objects and types here.  Adjust for their offset before comparing.
5051
5052 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5053
5054         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5055         statement per copy.
5056
5057 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5058
5059         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5060         (GIMPLE_H): Include $(INTERNAL_FN_H).
5061         (OBJS-common): Add internal-fn.o.
5062         (internal-fn.o): New rule.
5063         * internal-fn.def: New file.
5064         * internal-fn.h: Likewise.
5065         * internal-fn.c: Likewise.
5066         * gimple.h: Include internal-fn.h.
5067         (GF_CALL_INTERNAL): New gf_mask.
5068         (gimple_statement_call): Put fntype into a union with a new
5069         internal_fn field.
5070         (gimple_build_call_internal): Declare.
5071         (gimple_build_call_internal_vec): Likewise.
5072         (gimple_call_same_target_p): Likewise.
5073         (gimple_call_internal_p): New function.
5074         (gimple_call_internal_fn): Likewise.
5075         (gimple_call_fntype): Return null for internal calls.
5076         (gimple_call_set_fntype): Assert that the function is not internal.
5077         (gimple_call_set_fn): Likewise.
5078         (gimple_call_set_fndecl): Likewise.
5079         (gimple_call_set_internal_fn): New function.
5080         (gimple_call_addr_fndecl): Handle null functions.
5081         (gimple_call_return_type): Likewise null types.
5082         * gimple.c (gimple_build_call_internal_1): New function.
5083         (gimple_build_call_internal): Likewise.
5084         (gimple_build_call_internal_vec): Likewise.
5085         (gimple_call_same_target_p): Likewise.
5086         (gimple_call_flags): Handle calls to internal functions.
5087         (gimple_call_fnspec): New function.
5088         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5089         (gimple_has_side_effects): Handle null functions.
5090         (gimple_rhs_has_side_effects): Likewise.
5091         (gimple_call_copy_skip_args): Handle calls to internal functions.
5092         * cfgexpand.c (expand_call_stmt): Likewise.
5093         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5094         * gimple-fold.c (gimple_fold_call): Handle null functions.
5095         (gimple_fold_stmt_to_constant_1): Don't fold
5096         calls to internal functions.
5097         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5098         functions.
5099         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5100         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5101         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5102         (do_warn_unused_result): Likewise.
5103         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5104         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5105         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5106         the target of a call.
5107         (initialize_hash_element): Update accordingly.
5108         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5109         (iterative_hash_hashable_expr): Handle calls to internal functions.
5110         (print_expr_hash_elt): Likewise.
5111         * tree-ssa-pre.c (can_value_number_call): Likewise.
5112         (eliminate): Handle null functions.
5113         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5114         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5115         (find_func_aliases): Likewise.
5116         * value-prof.c (gimple_ic_transform): Likewise.
5117         (gimple_indirect_call_to_profile): Likewise.
5118         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5119         * lto-streamer-out.c (output_gimple_stmt): Likewise.
5120
5121 2011-04-19  Jan Hubicka  <jh@suse.cz>
5122
5123         * ipa-inline-transform.c (save_inline_function_body): Add comments.
5124         * ipa-inline.c (inline_small_functions): Compute summaries first,
5125         populate heap later.
5126
5127 2011-04-19  Jan Hubicka  <jh@suse.cz>
5128
5129         * cgraph.h (save_inline_function_body): Remove.
5130         * ipa-inline-transform.c: New file, broke out of...
5131         * ipa-inline.c: ... this one; Update toplevel comment.
5132         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5133         make global.
5134         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5135         (cgraph_mark_inline_edge): Rename to inline_call; move to
5136         ipa-inline-transform.c.
5137         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5138         move to ipa-inline-transform.c
5139         (recursive_inlining, inline_small_functions, flatten_function,
5140         ipa_inline, inline_always_inline_functions,
5141         early_inline_small_functions): Update.
5142         (inline_transform): Move to ipa-inline-transform.c.
5143         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5144         Declare.
5145         * Makefile.in (ipa-inline-transform.o): New file.
5146         * cgraphunit.c (save_inline_function_body): Move to
5147         ipa-inline-transform.c
5148
5149 2011-04-19  DJ Delorie  <dj@redhat.com>
5150
5151         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5152         registers if we already know there aren't any.
5153         (m32c_emit_epilogue): Don't emit a barrier here.
5154         (m32c_emit_eh_epilogue): Likewise.
5155         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5156         operands at expand time.
5157         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5158         int" wchar type.
5159         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5160         duplicates.  Provide aliases instead.
5161         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5162         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5163         the compiler.
5164
5165 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5166
5167         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5168         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5169         (general_or_i64_p, sparc_register_move_cost): New function.
5170
5171 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5172
5173         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5174         Add lynx, mipssde.  Sort table.
5175
5176 2011-04-19  Xinliang David Li  <davidxl@google.com>
5177
5178         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5179         not negative.
5180
5181 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5182
5183         PR target/48678
5184         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5185         is a SUBREG with non-MODE_INT mode inside of it.
5186
5187 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5188
5189         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5190         also according to actual contants.
5191         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5192         (gimple_fold_call): Use it.
5193         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5194
5195 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5196
5197         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5198         non-pointer assignments.
5199
5200 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5201
5202         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5203         account anc_offset and otr_type from the indirect edge info.
5204         * ipa-prop.c (get_ancestor_addr_info): New function.
5205         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5206         get_ancestor_addr_info, call it.
5207         (ipa_note_param_call): Do not initialize information about polymorphic
5208         calls, return the indirect call graph edge.  Remove the last
5209         parameter, adjust all callers.
5210         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5211         parameters.  Initialize polymorphic information in the indirect edge.
5212
5213 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5214
5215         PR lto/48148
5216         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5217         the types if they have different enumeration identifiers.
5218
5219 2011-04-19  Jan Hubicka  <jh@suse.cz>
5220
5221         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5222         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5223         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5224         (optimize_function_for_size_p) ... here.
5225
5226 2011-04-19  Richard Guenther  <rguenther@suse.de>
5227
5228         PR lto/48207
5229         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5230         langhook.
5231
5232 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5233
5234         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5235         if DECL_NO_INLINE_WARNING_P is set on the function.
5236
5237 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
5238
5239         PR fortran/47976
5240         * reload1.c (inc_for_reload): Return void. All callers changed.
5241         (emit_input_reload_insns): Don't try to delete previous output
5242         reloads to a register, or record spill_reg_store for autoincs.
5243
5244 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
5245
5246         * gengtype.h: Updated copyright year.
5247         (struct input_file_st): Add inpisplugin field.
5248         (type_fileloc): New function.
5249         * gengtype.c
5250         (write_typed_struct_alloc_def): Add gcc_assert.
5251         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5252         (write_typed_alloc_defns): Don't output for plugin files.
5253         (input_file_by_name): Clear inpisplugin field.
5254         (main): Set inpisplugin field for plugin files.
5255
5256 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
5257
5258         * gengtype-state.c (string_eq): New.
5259         (read_state): Use string_eq instead of strcmp when creating the
5260         state_ident_tab.
5261
5262 2011-04-19  Wei Guozhi  <carrot@google.com>
5263
5264         PR target/47855
5265         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5266         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5267         linkage.
5268         * config/arm/constraints.md (Uu): New constraint.
5269         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5270
5271 2011-04-19  Tristan Gingold  <gingold@adacore.com>
5272
5273         * config.gcc (-*-*-*vms): Added.
5274         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5275         definitions moved.
5276         * config/vms/vms-ld.c: New file.
5277         * config/vms/vms-ar.c: New file.
5278         * config/vms/t-vmsnative: New file.
5279
5280 2011-04-18  Xinliang David Li  <davidxl@google.com>
5281
5282         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5283
5284 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5285
5286         PR middle-end/48661
5287         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5288         if TREE_TYPE (v) is non-NULL.
5289
5290         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5291         gimple_get_virt_mehtod_for_binfo.
5292         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5293         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5294         callers.
5295         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5296
5297 2011-04-18  Michael Matz  <matz@suse.de>
5298             Steve Ellcey  <sje@cup.hp.com>
5299
5300         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5301         use its mode as source mode if it isn't VOIDmode.
5302
5303 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
5304
5305         * doc/passes.texi: Fill crossref nodes.
5306
5307 2011-04-18  Jim Meyering  <meyering@redhat.com>
5308
5309         Fix doubled-word typos in comments and strings
5310         * config/alpha/vms-unwind.h: s/for for/for/
5311         * config/arm/unwind-arm.h: Likewise.
5312         * config/microblaze/microblaze.c: Likewise.
5313         * config/sh/constraints.md: s/in in/in/
5314         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5315
5316 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
5317
5318         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5319         (AVX_FLOAT_MODE_P): Ditto.
5320         (AVX128_VEC_FLOAT_MODE_P): Ditto.
5321         (AVX256_VEC_FLOAT_MODE_P): Ditto.
5322         (AVX_VEC_FLOAT_MODE_P): Ditto.
5323         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5324         (UNSPEC_MASKSTORE): Ditto.
5325         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5326         Merge from <sse>_movmsk<ssemodesuffix> and
5327         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
5328         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
5329         iterator.
5330         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5331         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5332         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5333
5334 2011-04-18  Jan Hubicka  <jh@suse.cz>
5335
5336         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5337
5338         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5339         (want_inline_function_called_once_p): Break out the logic from
5340         ipa_inline.
5341         (edge_badness): Ensure that profile is not misupdated.
5342         (lookup_recursive_calls): Prioritize by call frequencies.
5343         (inline_small_functions): Move program size estimates here;
5344         actually process whole queue even when unit growth has been
5345         met. (to properly compute inline_failed reasons and for the
5346         case unit size decrease.) Revisit comments on recursive inlining.
5347         (ipa_inline): Remove unit summary code; first inline hot calls
5348         of functions called once, cold calls next.
5349         (order, nnodes): Remove unused variables.
5350         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5351         (GTFILES): Remove ipa-inline.c
5352         * sel-sched.c (fill_insns): Silence uninitialized var warning.
5353
5354 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5355
5356         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5357
5358 2011-04-18  Jie Zhang  <jie@codesourcery.com>
5359             Richard Earnshaw  <rearnsha@arm.com>
5360
5361         * arm.c (neon_builtin_type_bits): Remove.
5362         (typedef enum neon_builtin_mode): New.
5363         (T_MAX): Don't define.
5364         (typedef enum neon_builtin_datum): Remove bits, codes[],
5365         num_vars and base_fcode.  Add mode, code and fcode.
5366         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5367         VAR10): Change accordingly.
5368         (neon_builtin_data[]): Change accordingly
5369         (arm_init_neon_builtins): Change accordingly.
5370         (neon_builtin_compare): Remove.
5371         (locate_neon_builtin_icode): Remove.
5372         (arm_expand_neon_builtin): Change accordingly.
5373
5374         * arm.h (enum arm_builtins): Move to ...
5375         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5376
5377         * arm.c (arm_builtin_decl): Declare.
5378         (TARGET_BUILTIN_DECL): Define.
5379         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5380         (arm_builtin_decls[]): New.
5381         (arm_init_neon_builtins): Store builtin declarations in
5382         arm_builtin_decls[].
5383         (arm_init_tls_builtins): Likewise.
5384         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
5385         (arm_builtin_decl): New.
5386
5387 2011-04-18  Richard Guenther  <rguenther@suse.de>
5388
5389         * tree.c (upper_bound_in_type): Build properly canonicalized
5390         INTEGER_CSTs.
5391         (lower_bound_in_type): Likewise.
5392
5393 2011-04-18  Richard Guenther  <rguenther@suse.de>
5394
5395         * gimple.h (gimple_call_addr_fndecl): New function.
5396         (gimple_call_fndecl): Use it.
5397         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5398         for direct calls.
5399         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5400         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5401
5402 2011-04-18  Richard Guenther  <rguenther@suse.de>
5403
5404         PR middle-end/48650
5405         * tree.c (build_string): STRING_CST is now derived from tree_typed.
5406
5407 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5408
5409         PR lto/48492
5410         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5411         DECL_IN_CONSTANT_POOL without RTL.
5412
5413 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
5414             Ira Rosen  <ira.rosen@linaro.org>
5415
5416         PR target/48252
5417         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5418         to match neon_vzip/vuzp/vtrn_internal.
5419         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5420         outputs explicitly dependent on both inputs.
5421         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5422
5423 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5424
5425         PR tree-optimization/48616
5426         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5427         whether the shift is by scalar or vector based on whether all SLP
5428         scalar stmts have the same rhs.
5429
5430 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
5431
5432         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5433         memory operands.
5434
5435 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5436
5437         PR target/43700
5438         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5439         registers.
5440
5441 2011-04-17  Jan Hubicka  <jh@suse.cz>
5442
5443         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5444         * cgrpahunit.c (cgraph_finalize_function): Do not set
5445         finalized_by_frontend.
5446         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5447         finalized_by_frontend.
5448
5449 2011-04-17  Jan Hubicka  <jh@suse.cz>
5450
5451         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5452         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5453         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5454         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5455         method.
5456         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5457         gimple-fold.c
5458         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5459
5460 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5461
5462         PR lto/48538
5463         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5464         is non-null before accessing it.
5465         (input_cgraph): Remove trailing spaces.
5466
5467 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5468
5469         * params.def (sms-min-sc): New param flag.
5470         * modulo-sched.c (sms_schedule): Use it.
5471         * doc/invoke.texi (sms-min-sc): Document it.
5472
5473 2011-04-17  Jan Hubicka  <jh@suse.cz>
5474
5475         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5476         present, also set gimple_call_set_cannot_inline.
5477         * ipa-inline.c: Update toplevel comment.
5478         (MAX_TIME): Remove.
5479         (cgraph_clone_inlined_nodes): Fix linebreaks.
5480         (cgraph_check_inline_limits): Restructure to ...
5481         (caller_growth_limits): ... this one; be more tolerant
5482         on growth in nested inline chains; add explanatory comment;
5483         fix stack accounting thinko introduced by previous patch.
5484         (cgraph_default_inline_p): Remove.
5485         (report_inline_failed_reason): New function.
5486         (can_inline_edge_p): New function.
5487         (can_early_inline_edge_p): New function.
5488         (leaf_node_p): Move upwards in file.
5489         (want_early_inline_function_p): New function.
5490         (want_inline_small_function_p): New function.
5491         (want_inline_self_recursive_call_p): New function.
5492         (cgraph_edge_badness): Rename to ...
5493         (edge_badness) ... this one; fix linebreaks.
5494         (update_edge_key): Update call of edge_baddness; add
5495         detailed dump about queue updates.
5496         (update_caller_keys): Use can_inline_edge_p and
5497         want_inline_small_function_p.
5498         (cgraph_decide_recursive_inlining): Rename to...
5499         (recursive_inlining): Use can_inline_edge_p and
5500         want_inline_self_recursive_call_p; simplify and remove no longer
5501         valid FIXME.
5502         (cgraph_set_inline_failed): Remove.
5503         (add_new_edges_to_heap): Use can_inline_edge_p and
5504         want_inline_small_function_p.
5505         (cgraph_decide_inlining_of_small_functions): Rename to ...
5506         (inline_small_functions): ... this one; cleanup; use
5507         can/want predicates; cleanup debug ouput; work edges till fibheap
5508         is exhausted and do not stop once unit growth is reached; remove
5509         later loop processing remaining edges.
5510         (cgraph_flatten): Rename to ...
5511         (flatten_function): ... this one; use can_inline_edge_p
5512         and can_early_inline_edge_p predicates.
5513         (cgraph_decide_inlining): Rename to ...
5514         (ipa_inline): ... this one; remove unreachable nodes before
5515         inlining functions called once; simplify the pass.
5516         (cgraph_perform_always_inlining): Rename to ...
5517         (inline_always_inline_functions): ... this one; use
5518         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5519         (cgraph_decide_inlining_incrementally): Rename to ...
5520         (early_inline_small_functions): ... this one; simplify
5521         using new predicates; cleanup; make dumps prettier.
5522         (cgraph_early_inlining): Rename to ...
5523         (early_inliner): newer inline regular functions into always-inlines;
5524         fix updating of call stmt summaries.
5525         (pass_early_inline): Update for new names.
5526         (inline_transform): Fix formating.
5527         (gate_cgraph_decide_inlining): Rename to ...
5528         (pass_ipa_inline): ... this one.
5529         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5530         * ipa-inline-analysis.c (dump_inline_summary): Update.
5531         (compute_inline_parameters): Do not compute disregard_inline_limits;
5532         look for mismatching arguments.
5533         (estimate_growth): Fix handlig of non-trivial self recursion.
5534         (inline_read_summary): Do not read info->disregard_inline_limits.
5535         (inline_write_summary): Do not write info->disregard_inline_limits.
5536         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5537         and move all checks into can_inline_edge_p predicate; re-enable code
5538         comparing optimization levels.
5539         (expand_call_inline): Do not test inline_forbidden_into_p.
5540         * Makefile.in (ipa-inline.o): Update arguments.
5541
5542 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5543
5544         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5545
5546 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5547
5548         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5549
5550 2011-04-17  Michael Matz  <matz@suse.de>
5551
5552         PR tree-optimization/48622
5553         PR lto/48645
5554         * ipa-inline-analysis.c (inline_read_summary): Read size/time
5555         in same order as they're written.
5556
5557 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5558
5559         * config/pa/predicates.md: Reorganize and simplify predicates.
5560         Eliminate duplicate code checks.
5561         (arith_operand): Rename to arith14_operand
5562         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5563         * config/pa/pa.md: Use renamed operands.
5564         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5565         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5566         arith11_operand, adddi3_operand, indexed_memory_operand,
5567         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5568         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5569         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5570         move_dest_operand, move_src_operand, prefetch_cc_operand,
5571         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5572         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5573         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5574         div_operand, int5_operand, movb_comparison_operator,
5575         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5576         arith_double_operand, ireg_operand, lhs_lshift_operand,
5577         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5578         integer_store_memory_operand): Likewise.
5579         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5580         (integer_store_memory_operand, read_only_operand,
5581         function_label_operand, borx_reg_operand,
5582         non_hard_reg_operand): Likewise.
5583         (eq_neq_comparison_operator): Delete unused operator.
5584         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5585         function_label_operand.
5586         (emit_move_sequence): Likewise.
5587
5588 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5589
5590         * config/i386/sse.md (sseunpackmode): New mode attribute.
5591         (ssepackmode): Ditto.
5592         (vec_pack_trunc_<mode>): Macroize expander from
5593         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5594         (vec_unpacks_lo_<mode>): Macroize expander from
5595         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5596         (vec_unpacks_hi_<mode>): Macroize expander from
5597         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5598         (vec_unpacku_lo_<mode>): Macroize expander from
5599         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5600         (vec_unpacku_hi_<mode>): Macroize expander from
5601         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5602         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5603         ix86_expand_sse4_unpack.
5604         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5605
5606 2011-04-16  Jan Hubicka  <jh@suse.cz>
5607
5608         * cgraphbuild.c: Include ipa-inline.h.
5609         (reset_inline_failed): Use initialize_inline_failed.
5610         * cgraph.c: Include ipa-inline.h.
5611         (cgraph_create_node_1): Do not initialize estimated_growth.
5612         (initialize_inline_failed): More to ipa-inline-analysis.c
5613         (dump_cgraph_node): Do not dump inline flags.
5614         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5615         and disregard_inline_limits flags.
5616         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5617         time, size, estimated_growth.
5618         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5619         Update.
5620         * cgraphunit.c (cgraph_decide_is_function_needed): Use
5621         DECL_DISREGARD_INLINE_LIMITS.
5622         (cgraph_analyze_function): Do not initialize
5623         node->local.disregard_inline_limits.
5624         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5625         inlinable, versionable and disregard_inline_limits.
5626         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5627         cgraph_check_inline_limits, cgraph_default_inline_p,
5628         cgraph_edge_badness, update_caller_keys, update_callee_keys,
5629         add_new_edges_to_heap): Update.
5630         (cgraph_decide_inlining_of_small_function): Update; set
5631         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5632         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5633         cgraph_decide_inlining_incrementally): Update.
5634         * ipa-inline.h (inline_summary): Add inlinable, versionable,
5635         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5636         time, size and estimated_growth parameters.
5637         (estimate_edge_growth): Update.
5638         (initialize_inline_failed): Declare.
5639         * ipa-split.c: Include ipa-inline.h
5640         (execute_split_functions): Update.
5641         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5642         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5643         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5644         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5645         estimated_growth to INT_MIN.
5646         (inline_node_duplication_hook): Likewise.
5647         (dump_inline_summary): Dump new fields.
5648         (compute_inline_parameters): Update.
5649         (estimate_edge_time, estimate_time_after_inlining,
5650         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5651         inline_write_summary):
5652         (initialize_inline_failed): Move here from cgraph.c.
5653         * tree-sra.c: Include ipa-inline.h.
5654         (ipa_sra_preliminary_function_checks): Update.
5655         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5656         ipa-inline.h.
5657
5658 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5659
5660         * config/i386/sse.md (V16): New mode iterator.
5661         (VI1, VI8): Ditto.
5662         (AVXMODEQI, AVXMODEDI): Remove.
5663         (sse2, sse3): New mode attribute.
5664         (mov<mode>): Use V16 mode iterator.
5665         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5666         (push<mode>1): Use V16 mode iterator.
5667         (movmisalign<mode>): Ditto.
5668         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5669         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5670         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5671         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5672         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5673         avx_movdqu<avxmodesuffix>.
5674         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5675         *avx_movdqu<avxmodesuffix>.
5676         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5677         avx_lddqu<avxmodesuffix>.
5678         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5679         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5680         avx_movnt<AVXMODEDI:mode>.
5681         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5682         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5683
5684 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5685
5686         PR target/48629
5687         * haifa-sched.c (prune_ready_list, schedule_block): Use
5688         sched_pressure_p rather than flag_sched_pressure.
5689
5690 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5691
5692         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5693         cgraph_get_node instead of cgraph_get_create_node.
5694
5695 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
5696
5697         * cfgexpand.c (expand_debug_expr): Use
5698         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5699
5700 2011-04-15  Michael Matz  <matz@suse.de>
5701
5702         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5703         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5704         * function.c (gimplify_parameters): Ditto.
5705         * gimplify.c (gimplify_vla_decl): Ditto.
5706
5707         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5708         (gimple_call_set_alloca_for_var): New inline function.
5709         (gimple_call_alloca_for_var_p): Ditto.
5710         * gimple.c (gimple_build_call_from_tree): Remember
5711         CALL_ALLOCA_FOR_VAR_P state.
5712         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5713
5714         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5715         calls if they were for VLA objects.
5716
5717 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5718
5719         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5720         of ADR_EXPRs.
5721
5722 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5723
5724         PR middle-end/48601
5725         * tree-emutls.c (lower_emutls_function_body): Call
5726         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
5727         result is non-NULL.
5728
5729 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5730
5731         * c-decl.c (detect_field_duplicates): Call
5732         objc_detect_field_duplicates instead of objc_get_interface_ivars.
5733
5734 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
5735
5736         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5737         * gimple.c (gimple_asm_clobbers_memory_p): Define.
5738         * ipa-pure-const.c (check_stmt): Call it.
5739         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5740
5741 2011-04-15  Richard Guenther  <rguenther@suse.de>
5742
5743         PR tree-optimization/48290
5744         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5745         Properly decide inhibiting propagation based on the valueized
5746         operand.  Do loop-closed SSA form preserving here ...
5747         (init_copy_prop): ... not here.
5748
5749 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5750
5751         PR target/48612
5752         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5753         (*ieee_smax<mode>3): Likewise.
5754
5755 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5756
5757         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5758         Replace match_operand with match_dup for the third operand in
5759         these expanders.
5760
5761 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5762
5763         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5764         to track processing of conditionals.  Update all callers.
5765         (try_combine, simplify_if_then_else): Update.
5766
5767 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5768
5769         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5770         -fsched-pressure.
5771
5772 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
5773
5774         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5775         instead of match_operand for operand 3.
5776
5777 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
5778
5779         * recog.h (insn_operand_data): Add an "allows_mem" field.
5780         * genoutput.c (output_operand_data): Initialize it.
5781         * optabs.c (maybe_legitimize_operand_same_code): New function.
5782         (maybe_legitimize_operand): Use it when matching the original
5783         op->value.
5784
5785 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5786
5787         * gimplify.c: Fix issues in comments throughout.
5788         (voidify_wrapper_expr): Fix long line.
5789         (build_stack_save_restore): Likewise.
5790         (gimplify_loop_expr): Likewise.
5791         (gimplify_compound_lval): Likewise.
5792         (gimplify_init_ctor_eval): Likewise.
5793         (gimplify_modify_expr_rhs): Likewise.
5794         (omp_notice_threadprivate_variable): Likewise.
5795
5796 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5797
5798         * cfgexpand.c (expand_call_stmt): Convert the function type to the
5799         original one if this is not a builtin function.
5800
5801 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
5802
5803         PR target/48605
5804         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5805         offset it as needed based on top 2 bits in operands[3], change
5806         MEM mode to SFmode and mask those 2 bits away from operands[3].
5807
5808 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5809
5810         * c-parser.c (c_parser_objc_protocol_definition): Updated for
5811         change from objc_declare_protocols() to objc_declare_protocol().
5812
5813 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
5814
5815         * config/i386/sse.md (sse4_1): New mode attribute.
5816         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5817         avx_blend<ssemodesuffix><avxmodesuffix> and
5818         sse4_1_blend<ssemodesuffix> using VF mode iterator.
5819         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5820         avx_blendv<ssemodesuffix><avxmodesuffix> and
5821         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5822         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5823         avx_dp<ssemodesuffix><avxmodesuffix> and
5824         sse4_1_dp<ssemodesuffix> using VF mode iterator.
5825         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5826         (sse4_1_packusdw): Merge with *avx_packusdw.
5827         (sse4_1_pblendvb): Merge with *avx_pblendvb.
5828         (sse4_1_pblendw): Merge with *avx_pblendw.
5829         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5830         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5831         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5832         VF mode iterator.
5833         (sse4_1_round<ssescalarmodesuffix>): Merge with
5834         *avx_round<ssescalarmodesuffix>.
5835         (aesenc): Merge with *avx_aesenc.
5836         (aesenclast): Merge with *avx_aesenclast.
5837         (aesdec): Merge with *avx_aesdec.
5838         (aesdeclast): Merge with *avx_aesdeclast.
5839         (pclmulqdq): Merge with *pclmulqdq.
5840         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5841         New predicate.
5842         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5843
5844 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
5845
5846         PR middle-end/48608
5847         * cfgexpand.c (get_decl_align_unit): Renamed to ...
5848         (align_local_variable): This.  Update DECL_ALIGN.
5849         (add_stack_var): Updated.
5850         (expand_one_stack_var): Likewise.
5851
5852 2011-04-14  Richard Guenther  <rguenther@suse.de>
5853
5854         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5855         Remove.
5856         (dse_initialize_block_local_data, dse_leave_block,
5857         record_voperand_set, get_stmt_uid): Likewise.
5858         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5859         (dse_optimize_stmt): Remove voperand set handling code.
5860         Simplify and improve to handle any kind of killing stmt.
5861         (dse_record_phi): Remove.
5862         (dse_enter_block): Simplify.
5863         (tree_ssa_dse): Likewise.
5864         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5865
5866 2011-04-14  Jan Hubicka  <jh@suse.cz>
5867
5868         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5869         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5870         (cgraph_local_info): Remove inline_summary.
5871         * ipa-cp.c: Include ipa-inline.h.
5872         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5873         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5874         accesor.
5875         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5876         (input_overwrite_node): Do not set inline summary.
5877         (input_node): Do not stream inline summary.
5878         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5879         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5880         growth; we do not have inline parameters computed for that anyway.
5881         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5882         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5883         (inline_summary_t): New type and VECtor.
5884         (debug_inline_summary, dump_inline_summaries): Declare.
5885         (inline_summary): Use VOCtor.
5886         (estimate_edge_growth): Kill hack computing call stmt size directly.
5887         * lto-section-in.c (lto_section_name): Add inline section.
5888         * ipa-inline-analysis.c: Include lto-streamer.h
5889         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5890         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5891         (inline_summary_vec): Define.
5892         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5893         dump_inline_summaries): New functions.
5894         (estimate_function_body_sizes): Properly compute size/time of outgoing
5895         calls.
5896         (compute_inline_parameters): Alloc inline_summary; do not compute
5897         size/time of incomming calls.
5898         (estimate_edge_time): Avoid missing time summary hack.
5899         (inline_read_summary): Read inline summary info.
5900         (inline_write_summary): Write inline summary info.
5901         (inline_free_summary): Free all hooks and inline summary vector.
5902         * lto-streamer.h: Add LTO_section_inline_summary section.
5903         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5904         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5905
5906 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5907
5908         * tree-vectorizer.h (vect_strided_store_supported): Add a
5909         HOST_WIDE_INT argument.
5910         (vect_strided_load_supported): Likewise.
5911         (vect_permute_store_chain): Return void.
5912         (vect_transform_strided_load): Likewise.
5913         (vect_permute_load_chain): Delete.
5914         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5915         count argument.  Check that the count is a power of two.
5916         (vect_strided_load_supported): Likewise.
5917         (vect_permute_store_chain): Return void.  Update after above changes.
5918         Assert that the access is supported.
5919         (vect_permute_load_chain): Likewise.
5920         (vect_transform_strided_load): Return void.
5921         * tree-vect-stmts.c (vectorizable_store): Update calls after
5922         above interface changes.
5923         (vectorizable_load): Likewise.
5924         (vect_analyze_stmt): Don't check for strided powers of two here.
5925
5926 2011-04-14  Richard Guenther  <rguenther@suse.de>
5927
5928         PR tree-optimization/48590
5929         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5930         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5931         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5932         BUILT_IN_STACK_SAVE.
5933         * tree-ssa-dce.c (propagate_necessity): Handle
5934         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5935
5936 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5937
5938         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5939         objc_declare_class.
5940
5941 2011-04-14  Richard Guenther  <rguenther@suse.de>
5942
5943         * tree.h (get_object_alignment_1): Declare.
5944         * builtins.c (get_object_alignment_1): Split out worker from ...
5945         (get_object_alignment): ... here.
5946         * fold-const.c (get_pointer_modulus_and_residue): Use
5947         get_object_alignment_1.
5948
5949 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5950
5951         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5952         type parameter.
5953         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5954         parameter.  Generalise code to handle arrays as well as vectors.
5955         (vect_setup_realignment): Update accordingly.
5956         * tree-vect-stmts.c (vectorizable_store): Likewise.
5957         (vectorizable_load): Likewise.
5958
5959 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5960
5961         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5962         within the per-copy loop.
5963
5964 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5965
5966         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5967         in the dump file.
5968
5969 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5970
5971         * doc/options.texi (Negative): Explicitly mention that the
5972         Negative chain must be circular.
5973
5974 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
5975
5976         * function.h (block_chainon): Declare.
5977         * function.c (block_chainon): Define.
5978
5979 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
5980             Eric Weddington  <eric.weddington@atmel.com>
5981             Georg-Johann Lay  <avr@gjlay.de>
5982
5983         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
5984         New Includes
5985         (avr_init_builtins, avr_expand_builtin,
5986         avr_expand_delay_cycles, avr_expand_unop_builtin,
5987         avr_expand_binop_builtin ): New functions.
5988         (avr_builtin_id): New enum
5989         (struct avr_builtin_description): New struct
5990         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5991         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5992
5993         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5994         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
5995         UNSPECV_DELAY_CYCLES): new enumeration values
5996         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5997         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5998         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5999         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6000         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6001         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6002         "fmulsu"): New insns
6003
6004         * config/avr/avr-c.c: fix line endings
6005         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6006         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6007         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6008         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6009         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6010
6011         * doc/extend.texi (AVR Built-in Functions): New node
6012         (Target Builtins): Add documentation of AVR
6013         built-in functions.
6014
6015 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6016
6017         PR target/44643
6018         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6019         alone. Error if non-const data has attribute progmem.
6020
6021 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6022
6023         * tree.h (struct tree_constructor): Include tree_typed instead of
6024         tree_common.
6025         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6026         TS_TYPED instead of TS_COMMON.
6027
6028 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6029
6030         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6031         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6032         (sse2_psadbw): Merge with *avx_psadbw.
6033         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6034         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6035         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6036         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6037         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6038         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6039         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6040         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6041         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6042         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6043         (ssse3_palignrti): Merge with *avx_palignrti.
6044
6045 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6046
6047         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6048         * tree-ssanames.c (fini_ssanames): VEC_free it.
6049         (make_ssa_name_fn): Update for VECness of free_ssanames.
6050         (release_ssa_name, release_dead_ssa_names): Likewise.
6051         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6052         tree_common.
6053         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6054         TS_TYPED instead of TS_COMMON.
6055
6056 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6057
6058         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6059         statistics_counter_event.
6060         * tree-ssa-copyrename.c (stats): Define.
6061         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6062         statistics_counter_event.
6063         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6064         (bswap_stats, widen_mul_stats): Define.
6065         (insert_reciprocals): Increment rdivs_inserted.
6066         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6067         rfuncs_inserted.  Add calls to statistics_counter_event.
6068         (execute_cse_sincos_1): Increment inserted.
6069         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6070         statistics_counter_event.
6071         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6072         of bswap_stats.  Add calls to statistics_counter_event.
6073         (convert_mult_to_widen): Increment widen_mults_inserted.
6074         (convert_plusminus_to_widen): Increment maccs_inserted.
6075         (convert_mult_to_fma): Increment fmas_inserted.
6076         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6077         calls to statistics_counter_event.
6078
6079 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6080
6081         PR rtl-optimization/48455
6082         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6083         `temp_costs->mem_cost'.
6084
6085 2011-04-13  Jan Hubicka  <jh@suse.cz>
6086
6087         * ipa-inline.h: New file.
6088         * ipa-inline-analysis.c: New file. Broken out of ...
6089         * ipa-inline.c: ... this file; update toplevel comment;
6090         include ipa-inline.h
6091         (inline_summary): Move to ipa-inline.h
6092         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6093         ipa-inline-analysis.c.
6094         (cgraph_estimate_time_after_inlining): Rename to
6095         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6096         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6097         to estimate_edge_growth.
6098         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6099         rename to estimate_size_after_inlining.
6100         (cgraph_mark_inline_edge): Update for new naming convention.
6101         (cgraph_check_inline_limits): Likewise.
6102         (cgraph_edge_badness): Likewise.
6103         (cgraph_decide_recursive_inlining): Likewise.
6104         (cgraph_decide_inlining_of_small_functions): Likewise.
6105         (cgraph_decide_inlining_incrementally): Likewise.
6106         (cgraph_estimate_growth): Rename to estimate_growth; move to
6107         ipa-inline-analysis.c.
6108         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6109         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6110         (compute_inline_parameters): Likewise.
6111         (compute_inline_parameters_for_current): Likewise.
6112         (pass_inline_parameters): Likewise.
6113         (inline_indirect_intraprocedural_analysis): Likewise.
6114         (analyze_function): Rename to inline_analyze_function; likewise.
6115         (add_new_function): Move to ipa-inline-analysis.c.
6116         (inline_generate_summary): Likewise.
6117         (inline_read_summary): Likewise.
6118         (inline_write_summary): Likewise.
6119         * Makefile.in (ipa-inline-analysis.c): New file.
6120
6121 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6122
6123         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6124         * configure: Regenerate.
6125
6126 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6127
6128         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6129         instead of tree_common.
6130         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6131         Likewise.
6132         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6133         TS_TYPED rather than TS_COMMON.
6134         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6135
6136 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6137
6138         PR target/45263
6139         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6140         r20 around calls of __tablejump_elpm__
6141
6142 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6143
6144         PR middle-end/48591
6145         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6146         NULL.
6147         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6148
6149 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6150
6151         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6152         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6153         (cfi_vec): New typedef.
6154         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6155         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6156         (cie_cfi_vec): New static variable.
6157         (cie_cfi_head): Delete.
6158         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6159         declaration changed. Use vector rather than list operations.
6160         (new_cfi): Don't initialize the dw_cfi_next field.
6161         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6162         rather than list operations.
6163         (lookup_cfa): Use vector rather than list operations.
6164         (output_cfis): New argument upto. Accept a cfi_vec rather than
6165         a dw_cfi_ref list head as argument. All callers changed.
6166         Iterate over the vector using upto as a maximum index.
6167         (output_all_cfis): New static function.
6168         (output_fde): Use vector rather than list operations. Use the
6169         new upto argument for output_cfis rather than manipulating a
6170         list.
6171         (dwarf2out_begin_prologue): Change initializations to match
6172         new struct members.
6173         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6174         from the vector length rather than searching for the end of a list.
6175         Use output_all_cfis.
6176         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6177
6178 2011-04-13  Nick Clifton  <nickc@redhat.com>
6179
6180         * config/rx/rx.md (movmemsi): Do not use this pattern when
6181         volatile pointers are involved.
6182
6183 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6184
6185         * config/i386/sse.md (pinsrbits): Remove.
6186         (sse2_packsswb): Merge with *avx_packsswb.
6187         (sse2_packssdw): Merge with *avx_packssdw.
6188         (sse2_packuswb): Merge with *avx_packuswb.
6189         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6190         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6191         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6192         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6193         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6194         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6195         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6196         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6197         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6198         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6199         (sse2_loadld): Merge with *avx_loadld.
6200         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6201         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6202         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6203         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6204         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6205
6206 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6207
6208         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6209         calling TREE_CHAIN.
6210         * print-tree.c (print_node): Likewise.
6211         * tree-inline.c (copy_tree_r): Likewise.
6212         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6213         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6214         instead of TS_COMMON.
6215         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6216         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6217         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6218         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6219         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6220         ...and these...
6221         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6222         * tree.h: ...here.
6223         (TREE_CHAIN): Check for a TS_COMMON structure.
6224         (TREE_TYPE): Check for a TS_TYPED structure.
6225
6226 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6227
6228         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6229         cgraph_get_create_node instead of cgraph_node.
6230
6231 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6232
6233         * c-parser.c (c_parser_initelt): Updated call to
6234         objc_build_message_expr.
6235         (c_parser_postfix_expression): Likewise.
6236
6237 2011-04-12  Kai Tietz  <ktietz@redhat.com>
6238
6239         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6240         MASK_MS_BITFIELD_LAYOUT bit.
6241
6242 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6243
6244         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6245         assert it is always true.
6246         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6247         moves.
6248
6249 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6250
6251         * c-parser.c (c_lex_one_token): Rewritten conditional used when
6252         compiling Objective-C to be more efficient.
6253
6254 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
6255
6256         * opts-common.c (decode_cmdline_options_to_array): Remove variable
6257         argv_copied.
6258
6259 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6260
6261         * recog.h, genoutput.c, optabs.c: Revert last patch.
6262
6263 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6264
6265         PR target/48090
6266         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6267
6268 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6269
6270         * recog.h (insn_operand_data): Add an "allows_mem" field.
6271         * genoutput.c (output_operand_data): Initialize it.
6272         * optabs.c (maybe_legitimize_operand_same_code): New function.
6273         (maybe_legitimize_operand): Use it when matching the original
6274         op->value.
6275
6276 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6277
6278         * genpreds.c (process_define_predicate): Move most processing
6279         to gensupport.c.  Continue to validate the expression.
6280         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6281         (process_define_predicate): Move processing to gensupport.c.
6282         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6283         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6284         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
6285         argument.
6286         (valid_predicate_name_p): New function, split out from old
6287         genpreds.c:process_define_predicate.
6288         (process_define_predicate): New function, combining code from
6289         old genpreds.c and genrecog.c functions.
6290         (process_rtx): Call it for DEFINE_PREDICATE and
6291         DEFINE_SPECIAL_PREDICATE.
6292
6293 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6294
6295         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6296         size of a '%A' memory reference.
6297         (T_DREG, T_QREG): New neon_builtin_type_bits.
6298         (arm_init_neon_builtins): Assert that the load and store operands
6299         are neon_struct_operands.
6300         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6301         (NEON_ARG_MEMORY): New builtin_arg.
6302         (neon_dereference_pointer): New function.
6303         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6304         Handle NEON_ARG_MEMORY.
6305         (arm_expand_neon_builtin): Update after above interface changes.
6306         Use NEON_ARG_MEMORY for loads and stores.
6307         * config/arm/predicates.md (neon_struct_operand): New predicate.
6308         * config/arm/iterators.md (V_two_elem): Tweak formatting.
6309         (V_three_elem): Use BLKmode for accesses that have no associated mode.
6310         (V_four_elem): Tweak formatting.
6311         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6312         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6313         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6314         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6315         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6316         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6317         (neon_vst4<mode>): Replace pointer operand with a memory operand.
6318         Use %A in the output template.
6319         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6320         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6321         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6322         the width of the memory access.  Remove post-increment.
6323         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6324
6325 2011-04-12  Nick Clifton  <nickc@redhat.com>
6326
6327         * config/v850/v850.c (expand_prologue): Do not use the CALLT
6328         instruction for interrupt handlers if the target is the basic V850
6329         architecture.
6330         (expand_epilogue): Likewise.
6331
6332 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6333
6334         PR rtl-optimization/48549
6335         * combine.c (propagate_for_debug): Also stop after BB_END of
6336         this_basic_block.  Process LAST and just stop processing after it.
6337         (combine_instructions): If last_combined_insn has been deleted,
6338         set last_combined_insn to its PREV_INSN.
6339
6340 2011-04-12  Richard Guenther  <rguenther@suse.de>
6341
6342         PR tree-optimization/46076
6343         * gimple.h (struct gimple_statement_call): Add fntype field.
6344         (gimple_call_fntype): Adjust.
6345         (gimple_call_set_fntype): New function.
6346         * gimple.c (gimple_build_call_1): Set the call function type.
6347         * gimplify.c (gimplify_call_expr): Preserve the function
6348         type the frontend used for the call.
6349         (gimplify_modify_expr): Likewise.
6350         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6351         function type.
6352         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6353         function type.
6354         * tree-ssa.c (useless_type_conversion_p): Function pointer
6355         conversions are useless.
6356
6357 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6358
6359         * cgraph.h (cgraph_node): Remove function declaration.
6360         (cgraph_create_node): Declare.
6361         (cgraph_get_create_node): Likewise.
6362         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6363         Updated all callers.
6364         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6365         the decl does not already exist.  Call cgraph_get_create_node instead
6366         of cgraph_node.
6367         (cgraph_get_create_node): New function.
6368         (cgraph_same_body_alias): Update comment.
6369         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6370         assert it does not return NULL.
6371         (cgraph_update_edges_for_call_stmt): Likewise.
6372         (cgraph_clone_edge): Likewise.
6373         (cgraph_create_virtual_clone): Likewise.
6374         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6375         instead of cgraph_node.
6376         (cgraph_add_new_function): Call cgraph_create_node or
6377         cgraph_get_create_node instead of cgraph_node.
6378         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6379         instead of cgraph_node.
6380         (record_eh_tables): Likewise.
6381         (mark_address): Likewise.
6382         (mark_load): Likewise.
6383         (build_cgraph_edges): Call cgraph_get_create_node instead
6384         of cgraph_node.
6385         (rebuild_cgraph_edges): Likewise.
6386         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6387         instead of cgraph_node.
6388         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6389         cgraph_node.
6390         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6391         cgraph_create_node instead of cgraph_node.
6392         * c-decl.c (finish_function): Call cgraph_get_create_node instead
6393         of cgraph_node.
6394         * lto-cgraph.c (input_node): Likewise.
6395         * lto-streamer-in.c (input_function): Likewise.
6396         * varasm.c (mark_decl_referenced): Likewise.
6397         (assemble_alias): Likewise.
6398
6399 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6400
6401         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6402         instead of cgraph_node and assert it does not return NULL.
6403         * lto-streamer-in.c (lto_read_body): Likewise.
6404         * omp-low.c (new_omp_context): Likewise.
6405         (create_task_copyfn): Likewise.
6406         * tree-emutls.c (lower_emutls_function_body): Likewise.
6407         * matrix-reorg.c (transform_allocation_sites): Likewise.
6408
6409 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6410
6411         PR c/48552
6412         * c-typeck.c (build_asm_expr): Error out on attempts to use
6413         void type outputs or inputs for constraints that allow reg or
6414         don't allow memory.
6415
6416 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
6417             Richard Earnshaw  <rearnsha@arm.com>
6418
6419         PR target/48250
6420         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6421         to use sign-magnitude offsets. Reject unsupported unaligned
6422         cases. Add detailed description in comments.
6423         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6424         condition from TARGET_32BIT to TARGET_ARM.
6425
6426 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
6427
6428         * tree.h (struct typed_tree): New.
6429         (struct tree_common): Include it instead of tree_base.
6430         (TREE_TYPE): Update for new location of type field.
6431         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6432         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6433         (union tree_node): Add typed field.
6434         * treestruct.def (TS_TYPED): New.
6435         * lto-streamer.c (check_handled_ts_structures): Handle it.
6436         * tree.c (MARK_TS_TYPED): New macro.
6437         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6438
6439 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6440
6441         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6442         (force_nonfallthru): Do not alter the loop nest if no basic block
6443         was created.
6444
6445 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6446
6447         * config/i386/sse.md (VI): New mode iterator.
6448         (SSEMODEI): Remove.
6449         (AVX256MODEI): Ditto.
6450         (AVXMODEF4P): Ditto.
6451         (avxvecpsmode): Ditto.
6452         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
6453         (sse2_andnot<mode>3): New expander.
6454         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6455         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
6456         (<any_logic:code><mode>3): Use VI mode iterator.
6457         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6458         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
6459         (*andnottf3): Handle AVX three-operand constraints.
6460         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6461
6462 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6463             Robert Millan  <rmh@gnu.org>
6464
6465         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6466         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6467         GNU_USER_DYNAMIC_LINKER64): Define.
6468         (REG_NAME): Don't undefine.
6469         (MD_UNWIND_SUPPORT): Undefine.
6470         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6471         (REG_NAME): Don't undefine.
6472         (MD_UNWIND_SUPPORT): Undefine.
6473         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6474
6475 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6476
6477         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6478         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6479
6480 2011-04-11  Xinliang David Li  <davidxl@google.com>
6481
6482         * value-profile.c (check_ic_target): New function.
6483         (gimple_ic_transform): Sanity check indirect call target.
6484         * gimple-low.c (gimple_check_call_args): Interface change.
6485         (gimple_check_call_matching_types): New function.
6486         * tree-inline.c (tree_can_inline_p): Call new function.
6487
6488 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
6489
6490         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6491         tree-pretty-print.h & realmpfr.h.
6492
6493 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
6494
6495         PR middle-end/48464
6496         * ira.c (setup_pressure_classes): Fix typo in loop condition.
6497         (setup_allocno_and_important_classes): Ditto.
6498
6499 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6500
6501         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6502         GNU_USER_DYNAMIC_LINKER.
6503         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6504         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6505         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6506         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6507         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6508         GNU_USER_TARGET_OS_CPP_BUILTINS.
6509         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6510         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6511         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6512         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6513         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6514         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6515         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6516         GNU_USER_TARGET_OS_CPP_BUILTINS.
6517         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6518         GNU_USER_DYNAMIC_LINKER.
6519         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6520         GNU_USER_TARGET_OS_CPP_BUILTINS.
6521         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6522         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6523         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6524         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6525         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6526         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6527         GNU_USER_DYNAMIC_LINKER64): Remove.
6528         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6529         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6530         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6531         GNU_USER_DYNAMIC_LINKER.
6532         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6533         GNU_USER_TARGET_OS_CPP_BUILTINS.
6534         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6535         GNU_USER_TARGET_OS_CPP_BUILTINS.
6536         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6537         to GNU_USER_TARGET_OS_CPP_BUILTINS.
6538         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6539         GNU_USER_TARGET_OS_CPP_BUILTINS.
6540         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6541         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6542         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6543         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6544         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6545         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6546         GNU_USER_DYNAMIC_LINKER.
6547         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6548         GNU_USER_TARGET_OS_CPP_BUILTINS.
6549         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6550         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6551         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6552         GNU_USER_DYNAMIC_LINKER.
6553         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6554         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6555         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6556         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6557         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6558         GNU_USER_DYNAMIC_LINKER.
6559         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6560         GNU_USER_DYNAMIC_LINKERN32.
6561         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6562         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
6563         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
6564         GNU_USER_DYNAMIC_LINKER32.
6565         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6566         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6567         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6568         GNU_USER_DYNAMIC_LINKER.
6569         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6570         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6571         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6572         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6573         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6574         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6575         GNU_USER_DYNAMIC_LINKER32.
6576         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6577         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6578         GNU_USER_DYNAMIC_LINKER.
6579         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6580         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6581         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6582         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
6583         GNU_USER_DYNAMIC_LINKER64.
6584         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6585         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6586         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6587         GNU_USER_DYNAMIC_LINKER.
6588         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6589         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6590         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6591         GNU_USER_DYNAMIC_LINKER.
6592         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6593         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6594         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6595         GNU_USER_DYNAMIC_LINKER32.
6596         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6597         GNU_USER_DYNAMIC_LINKER64.
6598         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6599         GNU_USER_DYNAMIC_LINKER64.
6600         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6601         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6602         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6603         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6604         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6605
6606 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6607
6608         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
6609         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6610         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6611         GNU_USER_DYNAMIC_LINKER.
6612         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6613         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
6614         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6615         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6616         GNU_USER_DYNAMIC_LINKER64.
6617         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6618         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6619         GNU_USER_LINK_EMULATION.
6620         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6621         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6622         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6623         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6624         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6625         CPP_SPEC, CC1_SPEC): Remove.
6626         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6627         (GNU_USER_DYNAMIC_LINKER): Define.
6628         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6629         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6630         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6631         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6632         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6633         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6634         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6635         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6636         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6637         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6638         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6639         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6640         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6641         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6642         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6643         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6644         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6645         GNU_USER_DYNAMIC_LINKER.
6646         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6647         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6648         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6649         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6650         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6651         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6652         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6653         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6654         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6655         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6656
6657 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6658
6659         PR target/9601
6660         PR target/11772
6661         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6662         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6663         comment.
6664         (ix86_is_msabi_thiscall): Removed.
6665         (ix86_is_type_thiscall): Likewise.
6666         (ix86_get_callcvt): New function.
6667         (ix86_comp_type_attributes): Simplify check.
6668         (ix86_function_regparm): Use ix86_get_callcvt for calling
6669         convention attribute checks.
6670         (ix86_return_pops_args): Likewise.
6671         (ix86_static_chain): Likewise.
6672         (x86_this_parameter): Likewise.
6673         (x86_output_mi_thunk): Likewise.
6674         (ix86_function_type_abi): Optimize check for types without attributes.
6675         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6676         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6677         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6678         by flag-values.
6679         (IX86_BASE_CALLCVT): Helper macro.
6680         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6681         Use ix86_get_callcvt for calling convention attribute checks and avoid
6682         symbol-decoration for stdcall in TARGET_RTD case.
6683         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6684         Likewise.
6685         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6686         for declaration.
6687
6688 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6689
6690         * config/i386/sse.md (VI_128): New mode iterator.
6691         (VI12_128): Rename from SSEMODE12.
6692         (VI14_128): Rename from SSEMODE14.
6693         (VI124_128): New mode iterator.
6694         (VI24_128): Rename from SSEMODE248.
6695         (VI248_128): Rename from SSEMODE248.
6696         (SSEMODE124C8): Remove.
6697         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6698         (*sse2_<plusminus_insn><mode>3): Merge with
6699         *avx_<plusminus_insn><mode>3.
6700         (*mulv8hi3): Merge with *avx_mulv8hi3.
6701         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6702         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6703         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6704         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6705         (ashr<mode>3): Merge with *avx_ashr<mode>3.
6706         (lshr<mode>3): Merge with *avx_lshr<mode>3.
6707         (ashl<mode>3): Merge with *avx_ashl<mode>3.
6708         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6709         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6710         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6711         (*<smaxmin:code>v8hi3): Ditto.
6712         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6713         (*<smaxmin:code>v16qi3): Ditto.
6714         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6715         (*sse2_eq<mode>3): Ditto.
6716         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6717         (*sse2_gt<mode>3): Ditto.
6718         (vcondv2di): Split out of vcond<mode>.
6719         (vconduv2di): Split out of vcondu<mode>.
6720
6721 2011-04-11  Richard Guenther  <rguenther@suse.de>
6722
6723         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6724         before calling tree_low_cst.
6725
6726 2011-04-11  Richard Guenther  <rguenther@suse.de>
6727
6728         * stor-layout.c (layout_type): Compute all array index size operations
6729         in the original type.
6730         (initialize_sizetypes): Add comment.
6731         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6732
6733 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6734
6735         * common.opt (Tbss=, Tdata=, Ttext=): New options.
6736
6737 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6738
6739         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6740         of cgraph_node, handle NULL return value.
6741         (cgraph_global_info): Likewise.
6742         (cgraph_rtl_info): Likewise.
6743         * tree-inline.c (estimate_num_insns): Likewise.
6744         * gimplify.c (unshare_body): Likewise.
6745         (unvisit_body): Likewise.
6746         (gimplify_body): Likewise.
6747         * predict.c (optimize_function_for_size_p): Likewise.
6748         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6749         (call_may_clobber_ref_p_1): Likewise.
6750         * varasm.c (function_section_1): Likewise.
6751         (assemble_start_function): Likewise.
6752
6753 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6754
6755         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6756         of cgraph_node.
6757         * final.c (rest_of_clean_state): Likewise.
6758         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6759         * passes.c (pass_init_dump_file): Likewise.
6760         (execute_all_ipa_transforms): Likewise.
6761         (function_called_by_processed_nodes_p): Likewise.
6762         * predict.c (maybe_hot_frequency_p): Likewise.
6763         (probably_never_executed_bb_p): Likewise.
6764         (compute_function_frequency): Likewise.
6765         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6766         (unnest_nesting_tree_1): Likewise.
6767         (lower_nested_functions): Likewise.
6768         * tree-optimize.c (execute_fixup_cfg): Likewise.
6769         (tree_rest_of_compilation): Likewise.
6770         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6771         * tree-sra.c (ipa_early_sra): Likewise.
6772         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6773         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6774         * ipa.c (record_cdtor_fn): Likewise.
6775         * ipa-inline.c (cgraph_early_inlining): Likewise.
6776         (compute_inline_parameters_for_current): Likewise.
6777         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6778         * ipa-pure-const.c (local_pure_const): Likewise.
6779         * ipa-split.c (split_function): Likewise.
6780         (execute_split_functions): Likewise.
6781         * cgraphbuild.c (build_cgraph_edges): Likewise.
6782         (rebuild_cgraph_edges): Likewise.
6783         (cgraph_rebuild_references): Likewise.
6784         (remove_cgraph_callee_edges): Likewise.
6785         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6786         (verify_cgraph_node): Likewise.
6787         (cgraph_analyze_functions): Likewise.
6788         (cgraph_preserve_function_body_p): Likewise.
6789         (save_inline_function_body): Likewise.
6790         (save_inline_function_body): Likewise.
6791         * tree-inline.c (copy_bb): Likewise.
6792         (optimize_inline_calls): Likewise.
6793
6794 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6795
6796         PR tree-optimization/48195
6797         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6798         ipa_check_create_edge_args.
6799         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6800         ipa_check_create_edge_args.
6801         * ipa-inline.c (inline_generate_summary): Do not call
6802         ipa_check_create_node_params and ipa_check_create_edge_args.
6803         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6804         ipa_check_create_edge_args.
6805
6806 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
6807
6808         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6809         instead of loop.
6810         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6811         * function.c (record_hard_reg_sets): Likewise.
6812         * ira.c (compute_regs_asm_clobbered): Likewise.
6813         * sched-deps.c (sched_analyze_1): Likewise.
6814         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6815
6816 2011-04-09  Xinliang David Li  <davidxl@google.com>
6817
6818         PR tree-optimization/PR48484
6819         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6820         has_valid_pred lazily
6821
6822 2011-04-09  Duncan Sands  <baldrick@free.fr>
6823
6824         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6825
6826 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6827
6828         * combine.c (combine_validate_cost): Adjust comments.  Set registered
6829         cost of I0 to zero at the end, if any.
6830
6831 2011-04-08  Xinliang David Li  <davidxl@google.com>
6832
6833         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6834         to insane profile data.
6835
6836 2011-04-08  Xinliang David Li  <davidxl@google.com>
6837
6838         * ipa-cp.c (ipcp_update_profiling): Correct
6839          negative scale factor due to insane profile data.
6840
6841 2011-04-08  Xinliang David Li  <davidxl@google.com>
6842
6843         * final.c (dump_basic_block_info): New function.
6844         (final): Dump basic block.
6845         (final_scan_insn): Remove old dump.
6846
6847 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
6848
6849         PR target/47829
6850         * config.gcc (i386-*-freebsd): Disable unwind table generation for
6851         crtbegin/crtend.
6852
6853 2011-04-08  Michael Matz  <matz@suse.de>
6854
6855         PR middle-end/48389
6856         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6857         functions.
6858         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6859         * rtl.h (rebuild_jump_labels_chain): Declare.
6860         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6861         insns inserted on edges.
6862
6863 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6864
6865         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6866         * config/arm/arm-arches.def: New.
6867         * config/arm/arm-opts.h: New.
6868         * config/arm/genopt.sh: New.
6869         * config/arm/arm-tables.opt: New (generated).
6870         * config/arm/arm.c (arm_handle_option, arm_target_help,
6871         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6872         (all_architectures): Get most table contents from arm-arches.def.
6873         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6874         arm_selected_tune here.
6875         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6876         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6877         (march=, mcpu=, mtune=): Use Enum and Var.
6878         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6879         (arm.o): Update dependencies.
6880
6881 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6882
6883         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6884         of header_file.
6885         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6886         (write_typed_alloc_defns): Likewise.
6887         (main): Calls write_typed_alloc_defns with output_header.
6888
6889 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6890
6891         PR inline-asm/48435
6892         * ira-color.c (setup_profitable_hard_regs): Add comments.
6893         Don't take prohibited hard regs into account.
6894         (setup_conflict_profitable_regs): Rename to
6895         get_conflict_profitable_regs.
6896         (check_hard_reg_p): Check prohibited hard regs.
6897
6898 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6899
6900         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6901         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6902         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6903
6904 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6905
6906         PR target/48366
6907         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6908         move from floating point to shift amount register.
6909         (emit_move_sequence): Remove secondary reload support for floating
6910         point to shift amount amount register copies.
6911         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6912         amount register copies.
6913         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6914         register, return false if mode isn't a scalar integer mode.
6915         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6916
6917 2011-04-08  Richard Guenther  <rguenther@suse.de>
6918
6919         * gimple.c (gimple_call_flags): Remove kludge.
6920
6921 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6922
6923         * sel-sched.c (sel_region_init): Move call to
6924         sel_setup_region_sched_flags after setup_current_loop_nest.
6925
6926 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6927
6928         PR rtl-optimization/48272
6929         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6930         init_insn_reg_pressure_info.  Adjust a caller.
6931         * sched-int.h (init_insn_reg_pressure_info): Declare.
6932         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6933         when sched-pressure is enabled.
6934
6935 2011-04-08  Richard Guenther  <rguenther@suse.de>
6936
6937         * gimple.c (gimple_set_modified): Do not queue calls to
6938         MODIFIED_NORETURN_CALLS here ...
6939         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6940
6941 2011-04-08  Richard Guenther  <rguenther@suse.de>
6942
6943         PR lto/48467
6944         * toplev.c (lang_dependent_init): Do not open asm_out_file
6945         in WPA mode, nor perform debug machinery initialization.
6946         (finalize): Do not unlink asm_out_file in WPA mode.
6947
6948 2011-04-08  Richard Guenther  <rguenther@suse.de>
6949
6950         * gimple.h (gimple_call_fntype): New function.
6951         (gimple_call_return_type): Use it.
6952         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6953         * gimple-low.c (gimple_check_call_args): Likewise.
6954         * gimple.c (gimple_call_flags): Likewise.
6955         (gimple_call_arg_flags): Likewise.
6956         (gimple_call_return_flags): Likewise.
6957         * tree-cfg.c (verify_gimple_call): Likewise.
6958         (do_warn_unused_result): Likewise.
6959         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6960         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6961
6962 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6963
6964         PR rtl-optimization/48235
6965         * sel-sched.c (code_motion_process_successors): Recompute the last
6966         insn in basic block if control flow changed.
6967         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6968         Update condition for ilist_remove.
6969
6970 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6971
6972         PR rtl-optimization/48302
6973         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6974         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
6975         it to record added preheader blocks.
6976         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
6977         on to sel_add_loop_preheaders.
6978         (sel_region_init): Move call to setup_current_loop_nest after
6979         sel_init_bbs.
6980
6981 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6982
6983         PR target/48273
6984         * cfgloop.h (loop_has_exit_edges): New helper.
6985         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6986         non-clonable.
6987         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6988         that have no exit edges.
6989
6990 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6991
6992         PR rtl-optimization/48442
6993         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
6994         all callers.  Adjust assert.
6995
6996 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
6997
6998         PR tree-optimization/48377
6999         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7000         is_packed to true even for types with smaller TYPE_ALIGN than
7001         TYPE_SIZE.
7002
7003 2011-04-08  Richard Guenther  <rguenther@suse.de>
7004
7005         PR bootstrap/48513
7006         * doc/tm.texi: Re-generate.
7007
7008 2011-04-08  Wei Guozhi  <carrot@google.com>
7009
7010         PR target/47855
7011         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7012         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7013         * config/arm/arm.md (*push_multi): Change the length computation to
7014         call a C function.
7015
7016 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7017
7018         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7019         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7020         * doc/tm.texi: Regenerate.
7021         * system.h (ASM_OUTPUT_BSS): Poison.
7022         * varasm.c (asm_output_bss): Remove function.
7023         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7024
7025         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7026         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7027         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7028         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7029         Likewise.
7030         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7031         Likewise.
7032         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7033         Likewise.
7034         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7035
7036 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7037
7038         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7039         EnumValue lines.
7040
7041 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7042
7043         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7044         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7045         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7046         OPT_mcpu32.
7047         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7048         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7049         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7050         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7051         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7052         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7053         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7054         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7055         options.  Don't map other m68k options manually.  Don't handle
7056         old-style options as canonical.
7057         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7058         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7059
7060 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7061
7062         * basic-block.h (force_nonfallthru): Move to...
7063         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7064         (force_nonfallthru): ...here.
7065         * cfghooks.c (force_nonfallthru): New function.
7066         * cfgrtl.c (force_nonfallthru): Rename into...
7067         (rtl_force_nonfallthru): ...this.
7068         (commit_one_edge_insertion): Do not set AUX field.
7069         (commit_edge_insertions): Do not discover new basic blocks.
7070         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7071         (cfg_layout_rtl_cfg_hooks): Likewise.
7072         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7073         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7074         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7075
7076 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7077
7078         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7079         Remove macros.
7080
7081 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7082
7083         * config/i386/sse.md: Update copyright year.
7084         (avxcvtvecmode): Remove.
7085         (sse_movhlps): Merge with *avx_movhlps.
7086         (sse_movlhps): Merge with *avx_movlhps.
7087         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7088         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7089         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7090         (sse_loadhps): Merge with *avx_loadhps.
7091         (sse_storelps): Merge with *avx_storelps.
7092         (sse_loadlps): Merge with *avx_loadlps.
7093         (sse_movss): Merge with *avx_movss.
7094         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7095         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7096         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7097         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7098         (vec_set<mode>_0): Ditto.
7099         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7100         (sse4_1_insertps): Merge with *avx_insertps.
7101         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7102         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7103         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7104         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7105         (sse2_storehpd): Merge with *avx_storehpd.
7106         (sse2_loadhpd): Merge with *avx_loadhpd.
7107         (sse2_loadlpd): Merge with *avx_loadlpd.
7108         (sse2_movsd): Merge with *avx_movsd.
7109         (*vec_concatv2df): Merge with *vec_concatv2df.
7110
7111 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
7112
7113         PR debug/48343
7114         * combine.c (combine_instructions): Add last_combined_insn,
7115         update it if insn is after it, pass it to all try_combine calls.
7116         (try_combine): Add last_combined_insn parameter, pass it instead of
7117         i3 to propagate_for_debug.
7118
7119 2011-04-07  Nick Clifton  <nickc@redhat.com>
7120
7121         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7122         to handle MDR <-> data register transfers.
7123         (movhi_internal): Likewise.
7124
7125 2011-04-07  Alan Modra  <amodra@gmail.com>
7126
7127         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7128         previous stack info.
7129
7130 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7131
7132         PR target/43920
7133         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7134         flow_find_cross_jump.  Swap variables to implement backward replacement.
7135         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7136
7137 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7138
7139         PR target/43920
7140         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7141         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7142         and bb2.
7143         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7144         src1 or src2.  Redirect edges to the last basic block.  Update
7145         frequency and count on multiple basic blocks in case of fallthru.
7146
7147 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7148
7149         PR target/43920
7150         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7151         function.
7152         (old_insns_match_p): Change return type.  Replace return false/true
7153         with return dir_none/dir_both.  Use can_replace_by.
7154         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7155         direction from dir_p.  Register replacement direction in dir, last_dir
7156         and afterlast_dir.  Handle new return type of old_insns_match_p using
7157         merge_dir.  Return replacement direction in dir_p.
7158         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7159         return type of old_insns_match_p.
7160         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7161         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7162         flow_find_cross_jump.
7163         * basic-block.h (enum replace_direction): New type.
7164         (flow_find_cross_jump): Add parameter to declaration.
7165
7166 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7167
7168         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7169         (AVXMODEDCVTPS2DQ): Ditto.
7170         (VEC_FLOAT_MODE): Ditto.
7171         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7172         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7173         (<any_logic:code><mode>3): Use VF mode iterator.
7174         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7175         Use VF mode iterator.
7176         (copysign<mode>3): Use VF mode iterator.
7177         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7178         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7179         (*<any_logic:code><MODEF:mode>3): Merge with
7180         *avx_<any_logic:code><MODEF:mode>3.
7181         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7182         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7183         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7184         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7185         (sse2_cvtdq2ps): Use %v modifier.
7186         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7187         (avx_cvtps2dq<avxmodesuffix>): Remove.
7188         (sse2_cvtps2dq): Use %v modifier.
7189         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7190         (avx_cvttps2dq<avxmodesuffix>): Remove.
7191         (sse2_cvttps2dq): Use %v modifier.
7192         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7193         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7194         (sse2_cvtsd2siq): Fix insn template.
7195         (sse2_cvtsd2siq_2): Ditto.
7196         (sse2_cvttsd2siq): Ditto.
7197         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7198         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7199
7200 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7201
7202         * gcov-io.c: Use GCC Runtime Library Exception.
7203
7204 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7205
7206         PR debug/48466
7207         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7208         as base_reg whatever register reg has been eliminated to, instead
7209         of hardcoding STACK_POINTER_REGNUM.
7210
7211 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7212
7213         * doc/tm.texi.in: Document C target hooks as separate from general
7214         target hooks.
7215         * doc/tm.texi: Regenerate.
7216         * genhooks.c (struct hook_desc): Add docname field.
7217         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7218         docname field.
7219         (hook_array): Include c-target.def.
7220         (emit_documentation): Use docname field in output.
7221         (emit_init_macros): Take docname argument.  Only emit definitions
7222         for hooks matching docname.
7223         (main): Expect additional arguments in all cases.  Pass argument
7224         to emit_init_macros.
7225         * target.def: Move initial macro definitions and comments to
7226         target-hooks-macros.h.
7227         (gcc_targetcm): Move to c-family/c-target.def.
7228         * target.h (targetcm): Move declaration to c-family/c-target.h.
7229         * targhooks.c (default_handle_c_option): Move to
7230         c-family/c-opts.c.
7231         * targhooks.h (default_handle_c_option): Move declaration to
7232         c-family/c-common.h.
7233         * target-hooks-macros.h: New file.
7234         * config.gcc (target_has_targetcm): Define and use to add to
7235         c_target_objs and cxx_target_objs.
7236         * config/default-c.c: New file.
7237         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7238         of target.h and target-def.h.
7239         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7240         (darwin_objc_construct_string, darwin_cfstring_ref_p,
7241         darwin_check_cfstring_format_arg): Make static.
7242         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7243         TARGET_STRING_OBJECT_REF_TYPE_P,
7244         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7245         * config/darwin-protos.h (darwin_objc_construct_string,
7246         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7247         declare.
7248         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7249         TARGET_STRING_OBJECT_REF_TYPE_P,
7250         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7251         * config/t-darwin (darwin-c.o): Update dependencies.
7252         * system.h (TARGET_HAS_TARGETCM): Poison.
7253         * Makefile.in (TARGET_H): Update.
7254         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7255         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7256         (default-c.o): New target.
7257         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7258         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7259         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
7260         c-target.def.
7261         (build/genhooks.o): Update dependencies.
7262
7263 2011-04-06  Richard Guenther  <rguenther@suse.de>
7264
7265         * ipa-inline.c (enum inlining_mode): Remove.
7266         (cgraph_flatten): Use some other token.
7267         (cgraph_edge_early_inlinable_p): New function, split out from ...
7268         (cgraph_perform_always_inlining): New function, split out from ...
7269         (cgraph_decide_inlining_incrementally): ... here.
7270         (cgraph_mark_inline_edge): Adjust.
7271         (cgraph_early_inlining): Re-structure.
7272         (pass_early_inline): Require SSA form.
7273
7274 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
7275             Julian Brown  <julian@codesourcery.com>
7276             Mark Shinwell  <shinwell@codesourcery.com>
7277
7278         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7279         LO_REGS only for Thumb-1.
7280         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7281         be used in short instructions when optimising for size on Thumb-2.
7282
7283 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7284
7285         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7286         associated with user returns to be preserved.
7287
7288 2011-04-06  Tristan Gingold  <gingold@adacore.com>
7289
7290         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7291         symbol_queue_size, DBXOUT_DECR_NESTING,
7292         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7293         if XCOFF_DEBUGGING_INFO.
7294
7295 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7296
7297         * config/i386/i386.md (attribute isa): New.
7298         (attribute enabled): New.
7299         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7300         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7301         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7302         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7303         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7304         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7305         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7306         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7307
7308         * config/i386/sse.md (VF): New mode iterator.
7309         (VF1): Ditto.
7310         (VF2): Ditto.
7311         (VF_128): Ditto.
7312         (SSEMODEF4): Remove.
7313         (attribute sse): Handle V8SF and V4DF modes.
7314         (<absneg:code><mode>2): Use VF mode iterator.
7315         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
7316         mode iterator.
7317         (<plusminus_insn><mode>3): Use VF mode iterator.
7318         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7319         Use VF mode iterator.
7320         (<sse>_vm<plusminus_insn><mode>3): Merge with
7321         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
7322         (mul<mode>3): Use VF mode iterator.
7323         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
7324         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
7325         mode iterator.
7326         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7327         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7328         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
7329         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
7330         mode iterator.
7331         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7332         Use VF1 mode iterator.
7333         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7334         (sqrt<VF2:mode>2): New expander.
7335         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7336         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7337         and sqrtv2df2.  Use VF mode iterator.
7338         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
7339         mode iterator.
7340         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7341         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7342         Use VF1 mode iterator.
7343         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7344         (<smaxmin:code><mode>3): Use VF mode iterator.
7345         (*<smaxmin:code><mode>3_finite): Merge with
7346         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
7347         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7348         (<sse>_vm<smaxmin:code><mode>2): Merge with
7349         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
7350         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
7351         mode iterator.
7352         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
7353         mode iterator.
7354         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7355         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7356         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7357         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7358         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
7359         VF mode iterator.
7360         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7361         Use VF_128 mode iterator.
7362         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
7363         mode iterator.
7364         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
7365         VF_128 mode iterator.
7366         (vcond<mode>): Use VF mode iterator.
7367         * config/i386/predicates.md (sse_comparison_operator): Merge with
7368         avx_comparison_float_operator.  Do not declare as special_predicate.
7369         * config/i386/i386.c (struct builtin_description): Update for renamed
7370         compare patterns.
7371         (ix86_expand_args_builtin): Ditto.
7372         (ix86_expand_sse_compare_mask): Ditto.
7373
7374 2011-04-06  Richard Guenther  <rguenther@suse.de>
7375
7376         * tree-inline.c (estimate_num_insns): For calls simply account
7377         for all passed arguments and a used return value.
7378
7379 2011-04-06  Richard Guenther  <rguenther@suse.de>
7380
7381         PR tree-optimization/47663
7382         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7383         call_stmt_time fields.
7384         (cgraph_edge_inlinable_p): Declare.
7385         (cgraph_edge_recursive_p): New inline function.
7386         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7387         (cgraph_clone_edge): Copy it.
7388         * ipa-inline.c (cgraph_estimate_edge_time): New function.
7389         Account for call stmt time.
7390         (cgraph_estimate_time_after_inlining): Take edge argument.
7391         (cgraph_estimate_edge_growth): Account call stmt size.
7392         (cgraph_estimate_size_after_inlining): Take edge argument.
7393         (cgraph_mark_inline_edge): Adjust.
7394         (cgraph_check_inline_limits): Likewise.
7395         (cgraph_recursive_inlining_p): Remove.
7396         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7397         (cgraph_decide_recursive_inlining): Take edge argument and
7398         adjust.
7399         (cgraph_decide_inlining_of_small_functions): Do not avoid
7400         diags for recursive inlining here.
7401         (cgraph_flatten): Adjust.
7402         (cgraph_decide_inlining_incrementally): Likewise.
7403         (estimate_function_body_sizes): Remove call cost handling.
7404         (compute_inline_parameters): Initialize caller edge call costs.
7405         (cgraph_estimate_edge_growth): New function.
7406         (cgraph_estimate_growth): Use it.
7407         (cgraph_edge_badness): Likewise.
7408         (cgraph_check_inline_limits): Take an edge argument.
7409         (cgraph_decide_inlining_of_small_functions): Adjust.
7410         (cgraph_decide_inlining): Likewise.
7411         * tree-inline.c (estimate_num_insns): Only account for call
7412         return value if it is used.
7413         (expand_call_inline): Avoid diagnostics on recursive inline
7414         functions here.
7415         * lto-cgraph.c (lto_output_edge): Output edge call costs.
7416         (input_edge): Input edge call costs.
7417
7418 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7419
7420         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7421
7422 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7423
7424         * doc/invoke.texi (Spec Files): Fix typo.
7425
7426 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7427
7428         * profile.c (branch_prob): Move declaration of local variable.  Remove
7429         obsolete ??? comment.  Expand the location explicitly instead of using
7430         the LOCATION_FILE and LOCATION_LINE macros.
7431
7432 2011-04-06  Wei Guozhi  <carrot@google.com>
7433
7434         PR target/47855
7435         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7436         (arm_cond_branch): Likewise.
7437         (arm_cond_branch_reversed): Likewise.
7438         (arm_jump): Likewise.
7439         (push_multi): Likewise.
7440         * config/arm/constraints.md (Py): New constraint.
7441
7442 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7443
7444         PR bootstrap/48471
7445         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7446         Move these...
7447         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7448         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7449         #ifdef DBX_DEBUGGING_INFO.
7450
7451 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
7452
7453         PR bootstrap/48403
7454         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7455         if old and new states differ.
7456
7457 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7458
7459         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7460         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7461         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7462         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7463         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7464         mcfv4e): Use Alias.
7465         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7466         ColdFire options to -mcpu= options.
7467
7468 2011-04-05  Jeff Law  <law@redhat.com>
7469
7470         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7471         check if BB is a successor of LOOP->header and return
7472         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7473
7474 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7475
7476         * cprop.c (struct reg_use): Remove.
7477         (reg_use_table): Make an array of RTX.
7478         (find_used_regs, constprop_register, local_cprop_pass,
7479         bypass_block): Simplify users of reg_use_table.
7480         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
7481         on one of the uses found by find_used_regs.
7482
7483 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7484
7485         PR bootstrap/48469
7486         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7487         declaration.
7488
7489 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7490
7491         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7492         as an rtx.
7493         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7494
7495 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7496
7497         PR middle-end/48441
7498         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7499
7500 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7501
7502         * combine.c: Include obstack.h.
7503         (struct insn_link): Define.
7504         (uid_log_links): Adjust type.
7505         (FOR_EACH_LOG_LINK): New macro.
7506         (insn_link_obstack): Declare.
7507         (alloc_insn_link): Define.
7508         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
7509         type of link variables.
7510         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7511         (try_combine, record_promoted_values, distribute_notes): Likewise.
7512         (distribute_links): Likewise.  Tweak prototype.
7513         (clear_log_links): Delete.
7514         (adjust_for_new_dest): Call alloc_insn_link.
7515         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7516
7517 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7518
7519         * gcse.c (modify_mem_list): Convert to an array of VECs.
7520         (canon_modify_mem_list, compute_transp): Tweak formatting.
7521         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
7522         (load_killed_in_block_p): Likewise.
7523         (record_last_mem_set_info): Likewise.
7524         (clear_modify_mem_tables): Likewise.
7525
7526 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7527
7528         PR middle-end/48461
7529         * function.c (emit_use_return_register_into_block): Only define if
7530         HAVE_return.
7531
7532 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
7533
7534         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7535
7536 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7537
7538         * config/rx/rx-opts.h: New.
7539         * config/rx/rx.c (rx_cpu_type): Remove.
7540         (rx_handle_option): Don't assert that global structures are in
7541         use.  Access variables via opts pointer.  Defer most handling of
7542         OPT_mint_register_.  Use error_at.
7543         (rx_option_override): Handle deferred OPT_mint_register_ here.
7544         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7545         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7546         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7547         (rx_cpu_types): New Enum and EnumValue entries.
7548         (mint-register=): Use Defer and use Var accordingly.
7549
7550 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7551
7552         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7553         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7554         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7555         Move these...
7556         (debug_free_queue, debug_nesting, symbol_queue_index):
7557         ...and these...
7558         * dbxout.c: ...to here.  Make static.
7559
7560 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7561
7562         * gcse.c (modify_pair): Define.  Define a VEC of it.
7563         (canon_modify_mem_list): Convert to an array of VECs.
7564         (free_insn_expr_list_list): Delete.
7565         (clear_modify_mem_tables): Call VEC_free instead.
7566         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7567         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7568         (canon_list_insert, compute_transp): Likewise.
7569
7570 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7571
7572         PR target/43920
7573         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7574         for size.
7575
7576 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7577
7578         PR target/43920
7579         * function.c (emit_use_return_register_into_block): New function.
7580         (thread_prologue_and_epilogue_insns): Use
7581         emit_use_return_register_into_block.
7582
7583 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7584
7585         PR target/43920
7586         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7587         insn.
7588
7589 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7590
7591         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7592
7593 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
7594
7595         * config/arm/arm.md (define_constants for unspec): Replace with
7596         define_c_enum.
7597         (define_constants for unspecv): Replace with define_c_enum.
7598         * config/arm/neon.md (define_constants for unspec): Replace with
7599         define_c_enum.
7600
7601 2011-04-04  Richard Henderson  <rth@redhat.com>
7602
7603         PR bootstrap/48400
7604         * dwarf2out.c (output_line_info): Always emit line info from
7605         at least one section.
7606         (dwarf2out_init): Create text_section_line_info here ...
7607         (set_cur_line_info_table): ... not here.
7608
7609 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
7610
7611         PR target/48380
7612         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7613         not called.
7614
7615         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7616
7617 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7618
7619         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7620         (expr_equiv_p): Remove.
7621         (insert_set_in_table): Look at <dest, src> pair instead of expr.
7622         (hash_scan_set): Update call to insert_set_in_table.
7623         (dump_hash_table): Dump <dest, src> pair.
7624         (lookup_set): Simplify.  Lookup <dest, src> pair.
7625         (compute_transp): Remove, fold heavily simplified code into...
7626         (compute_local_properties): ...here.  Expect COMP and TRANSP
7627         unconditionally.
7628         (find_avail_set): Take set directly from struct expr.
7629         (find_bypass-set): Likewise.
7630         (bypass_block): Likewise.
7631         (cprop_insn): Likewise.  Remove redundant INSN_P test.
7632
7633         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7634         checks on form of COND from find_implicit_sets to here.
7635         (find_implicit_sets): Cleanup control flow. Split critical edges
7636         if it exposes implicit sets.  Allocate/resize implicit_sets as
7637         necessary.
7638         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7639         changed something.  Run df_analyze after find_implicit_sets if any
7640         edges were split.  Do not allocate implicit_sets here.
7641
7642         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7643         (gcse_obstack): Renamed to cprop_obstack.
7644         (GNEW, GNEWVEC, GNEWVAR): Remove.
7645         (gmalloc): Remove.
7646         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7647         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7648         (gcse_alloc): Likewise, and rename to cprop_alloc.
7649         (alloc_gcse_men, free_gcse_mem): Remove.
7650         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7651         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7652         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7653
7654         * cprop.c (oprs_not_set_p): Remove.
7655         (mark_set, mark_clobber): Remove.
7656         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7657         (reg_not_set_p): New function.
7658         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7659         (cprop_insn): Likewise.
7660         (cprop_jump): Use FOR_EACH_EDGE.
7661
7662 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7663
7664         PR bootstrap/48403
7665         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7666         (rank_for_schedule): Use scheduled_insns vector instead of
7667         last_scheduled_insn.
7668         (ok_for_early_queue_removal): Likewise.
7669         (queue_to_ready): Search forward in nonscheduled_insns_begin if
7670         we have a dbg_cnt.
7671         (choose_ready): Likewise.
7672         (commit_schedule): Use VEC_iterate.
7673         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
7674         a dbg_cnt, use it and ensure the first insn is in the ready list.
7675         (haifa_sched_init): Allocate scheduled_insns.
7676         (sched_extend_ready_list): Don't allocate it; reserve space.
7677         (haifa_sched_finish): Free it.
7678
7679 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7680
7681         * optc-gen.awk: Always remove type from Variable entry before
7682         recording in var_seen.
7683
7684 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7685
7686         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7687         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7688         call to tidy_fallthru_edges.
7689
7690 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7691
7692         * doc/options.texi (ToLower): Document.
7693         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7694         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7695         * opts.h (cl_option): Add cl_tolower field.
7696         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7697         arguments with lowercase strings.
7698         * config/rx/rx.opt (mcpu=): Add ToLower.
7699         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7700         argument.
7701
7702 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7703
7704         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7705
7706 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7707
7708         * config/vax/vax.c: Include reload.h.
7709
7710 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
7711
7712         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7713         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7714         (sparc_preferred_reload_class): New function.
7715
7716 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
7717
7718         PR debug/48401
7719         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7720         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7721
7722 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
7723
7724         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7725         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7726
7727 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
7728
7729         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7730         (ASM_OUTPUT_ALIGNED_BSS): Define.
7731
7732 2011-04-03  Michael Matz  <matz@suse.de>
7733
7734         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7735         and next_slot members.
7736         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7737         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7738         (lto_streamer_cache_append): Declare.
7739         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7740         unsigned index, remove offset parameter, ensure that we append
7741         or update existing entries.
7742         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7743         parameter, update next_slot for append.
7744         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7745         parameter.
7746         (lto_streamer_cache_insert_at): Likewise.
7747         (lto_streamer_cache_append): New function.
7748         (lto_streamer_cache_lookup): Use unsigned index.
7749         (lto_streamer_cache_get): Likewise.
7750         (lto_record_common_node): Don't test tree_node_can_be_shared.
7751         (preload_common_node): Adjust call to lto_streamer_cache_insert.
7752         (lto_streamer_cache_delete): Don't free offsets member.
7753         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7754         (lto_output_string_with_length): Use lto_output_data_stream.
7755         (lto_output_tree_header): Remove ix parameter, don't write it.
7756         (lto_output_builtin_tree): Likewise.
7757         (lto_write_tree): Adjust callers to above, don't track and write
7758         offset, write unsigned index.
7759         (output_unreferenced_globals): Don't emit all global vars.
7760         (write_global_references): Use unsigned indices.
7761         (lto_output_decl_state_refs): Likewise.
7762         (write_symbol): Likewise.
7763         * lto-streamer-in.c (lto_input_chain): Move earlier.
7764         (input_function): Use unsigned index.
7765         (input_alias_pairs): Don't read and then ignore all global vars.
7766         (lto_materialize_tree): Remove ix_p parameter, don't read index,
7767         don't pass it back, use lto_streamer_cache_append.
7768         (lto_register_var_decl_in_symtab): Use unsigned index.
7769         (lto_register_function_decl_in_symtab): Likewise.
7770         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7771         index.
7772         (lto_get_builtin_tree): Don't read index, use
7773         lto_streamer_cache_append.
7774         (lto_read_tree): Adjust call to lto_materialize_tree.
7775
7776         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7777         don't use function calls in arguments to MIN.
7778
7779         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7780         twice.
7781
7782         * gimple.c (gimple_type_leader_entry): Mark deletable.
7783
7784 2011-04-03  Alan Modra  <amodra@gmail.com>
7785
7786         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7787
7788 2011-04-03  Michael Matz  <matz@suse.de>
7789
7790         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7791         an integer.
7792         * tree.h (tree_decl_non_common.vindex): Adjust comment.
7793
7794 2011-04-03  Michael Matz  <matz@suse.de>
7795
7796         * cgraphbuild.c (record_reference): Canonicalize constructor values.
7797         * gimple-fold.c (canonicalize_constructor_val): Accept being called
7798         without function context.
7799         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7800         current_function_decl and cfun.
7801
7802 2011-04-03  Michael Matz  <matz@suse.de>
7803
7804         * tree.c (decl_init_priority_insert): Don't create entry for
7805         default priority.
7806         (decl_fini_priority_insert): Ditto.
7807         (fields_compatible_p, find_compatible_field): Remove.
7808         * tree.h (fields_compatible_p, find_compatible_field): Remove.
7809         * gimple.c (gimple_compare_field_offset): Adjust block comment.
7810
7811 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7812
7813         * combine.c (try_combine): Remove useless local variable.
7814
7815 2011-04-03  Richard Guenther  <rguenther@suse.de>
7816             Ira Rosen  <ira.rosen@linaro.org>
7817
7818         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7819         non-variable offsets and compare the remaining bases of the two
7820         accesses instead of looking for exact same data-ref.
7821
7822 2011-04-02  Kai Tietz  <ktietz@redhat.com>
7823
7824         PR target/48416
7825         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7826
7827         * i386.c (ix86_is_msabi_thiscall): New helper function.
7828         (ix86_is_type_thiscall): New helper function.
7829         (ix86_comp_type_attributes): Handle thiscall for method-functions
7830         special.
7831         (init_cumulative_args): Likewise.
7832         (find_drap_reg): Likewise.
7833         (ix86_static_chain): Likewise.
7834         (x86_this_parameter): Likewise.
7835         (x86_output_mi_thunk): Likewise.
7836
7837 2011-04-01  Olivier Hainque  <hainque@adacore.com>
7838             Nicolas Setton  <setton@adacore.com>
7839             Eric Botcazou  <ebotcazou@adacore.com>
7840
7841         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7842         (add_gnat_descriptive_type_attribute): New function.
7843         (gen_array_type_die): Call it.
7844         (gen_enumeration_type_die): Likewise.
7845         (gen_struct_or_union_type_die): Likewise.
7846         (modified_type_die): Likewise.
7847         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7848         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7849         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7850
7851 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7852
7853         PR bootstrap/48148
7854         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7855         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7856
7857         Revert:
7858         2011-03-17  Richard Guenther  <rguenther@suse.de>
7859
7860         PR bootstrap/48148
7861         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7862         origin for decls in other ltrans units.
7863         (input_varpool_node): Likewise.
7864
7865 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7866
7867         PR middle-end/48335
7868         * expr.c (expand_assignment): Handle all possibilities
7869         if TO_RTX is CONCAT.
7870         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7871         (store_split_bit_field): If SUBREG_REG (op0) or
7872         op0 itself has smaller mode than word, return it
7873         for offset 0 and const0_rtx for out-of-bounds stores.
7874         If word is const0_rtx, skip it.
7875
7876 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7877
7878         * config/h8300/h8300.c (print_operand_address): Rename to...
7879         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7880         Call h8300_print_operand and h8300_print_operand_address instead of
7881         print_operand and print_operand_address. Declare.
7882         (print_operand): Renake to...
7883         (h8300_print_operand): ...this. Make static. Adjust comments.
7884         Call h8300_print_operand instead of print_operand. Declare.
7885         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7886         (h8300_register_move_cost): Likewise.
7887         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7888         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7889         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7890         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7891         * config/h8300/h8300-protos.h (print_operand): Delete.
7892         (print_operand_address): Delete.
7893
7894 2011-04-01  Richard Henderson  <rth@redhat.com>
7895
7896         PR 48400
7897         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7898         in strict mode before dwarf4.  Re-order tests to early out
7899         before switching sections.
7900
7901 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7902
7903         * config/h8300/constraints.md: New file.
7904         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7905         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7906         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7907         * config/h8300/predicates.md (bit_operand): Likewise.
7908         (incdec_operand): Use satisfies_constraint_M and
7909         satisfies_constraint_O.  Don't use C code block.
7910         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7911         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7912         (compute_mov_length): Use satisfies_constraint_G.
7913         (fix_bit_operand): Use satisfies_constraint_U.
7914         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7915         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7916         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7917         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7918         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7919         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7920         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7921         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7922         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7923         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7924         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7925         (EXTRA_MEMORY_CONSTRAINT): Delete.
7926
7927 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7928             Michael Meissner  <meissner@linux.vnet.ibm.com>
7929
7930         PR target/48262
7931         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7932         operands, as per the specifications.
7933
7934         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7935         (vec_extract_evenv4sf): Ditto.
7936         (vec_extract_evenv8hi): Ditto.
7937         (vec_extract_evenv16qi): Ditto.
7938         (vec_extract_oddv4si): Ditto.
7939
7940 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7941
7942         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7943         high_pc attribute if the CU has no associated code. Only output
7944         DW_AT_entry_pc for CU if not generating strict dwarf and
7945         dwarf_version < 4.
7946
7947 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7948
7949         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7950         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7951         out of ...
7952         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7953         * final.c (final_start_function): Call the new function rather
7954         than using a NULL argument for dwarf2out_frame_debug.
7955
7956         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7957         that contains the prologue.
7958
7959         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7960         changed.  Print it in debugging output.
7961
7962         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7963
7964         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7965         Split most of the code into...
7966         (begin_move_insn): ... here.  New function.
7967         (ebb_sched_info): Add a pointer to it.
7968         * haifa-sched.c (scheduled_insns): New static variable.
7969         (sched_extend_ready_list): Allocate it.
7970         (schedule_block): Use it to record the order of scheduled insns.
7971         Perform RTL changes to move insns only after all scheduling
7972         decisions have been made.
7973         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7974         begin_move_insn field.
7975         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7976         * sched-int.h (struct haifa_sched_info): Remove second argument
7977         from begin_schedule_ready hook.  Add new member begin_move_insn.
7978         * sched-rgn.c (begin_schedule_ready): Remove second argument.
7979         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7980
7981         * haifa-sched.c (prune_ready_list): New function, broken out of
7982         schedule_block.
7983         (schedule_block): Use it.
7984
7985 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7986
7987         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7988
7989 2011-04-01  Kai Tietz  <ktietz@redhat.com>
7990
7991         * config.gcc (*-*-mingw*): Allow as option the
7992         posix threading model.
7993         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
7994         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7995         definition.
7996         (CPP_SPEC): Add pthread/no-pthread handling.
7997         (LIB_SPEC): Likewise.
7998         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7999         (LIB_SPEC): Likewise.
8000         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8001         flag to pass -pthread option for shared libgcc build.
8002         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8003         for shared libgcc build.
8004         * config/i386/t-mingw-pthread: New file.
8005         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8006         New define to enable use of library pthread by default.
8007         * config/i386/mingw.opt (pthread): New driver option.
8008         (no-pthread): New driver option.
8009         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8010         * config/i386/mingw-w64.opt: Likewise.
8011
8012 2011-04-01  Gary Funck  <gary@intrepid.com>
8013
8014         * c-decl.c (grokdeclarator): Fix formatting.
8015
8016 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8017
8018         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8019         instead of n_operands.
8020         (set_storage_via_setmem): Likewise.
8021         * optabs.c (maybe_gen_insn): Likewise.
8022         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8023         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8024         (mips_expand_builtin_direct): Likewise.
8025         * config/spu/spu.c (expand_builtin_args): Likewise.
8026
8027 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8028
8029         * recog.h (insn_data_d): Add n_generator_args.
8030         * genoutput.c (data): Likewise.
8031         (output_insn_data): Print it.
8032         (max_opno, num_dups): Delete.
8033         (scan_operands): Just fill in "d->operand[...]".
8034         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8035
8036 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8037
8038         * gensupport.h (pattern_stats): New structure.
8039         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8040         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8041         (max_operand_1, max_operand_vec): Delete.
8042         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8043
8044 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8045
8046         * emit-rtl.c (emit_pattern_after_setloc): New function.
8047         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8048         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8049         (emit_pattern_after): New function.
8050         (emit_insn_after, emit_jump_insn_after): Call it.
8051         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8052         (emit_pattern_before_setloc): New function.
8053         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8054         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8055         Likewise.
8056         (emit_pattern_before): New function.
8057         (emit_insn_before, emit_jump_insn_before): Call it.
8058         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8059
8060 2011-03-31  Richard Henderson  <rth@redhat.com>
8061
8062         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8063         (dw_separate_line_info_entry): Remove.
8064         (enum dw_line_info_opcode): New.
8065         (dw_line_info_entry): Use it.
8066         (dw_line_info_table, dw_line_info_table_p): New.
8067         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8068         (line_info_table, line_info_label_num): Remove.
8069         (line_info_table_in_use): Remove.
8070         (separate_line_info_table): Remove.
8071         (separate_line_info_table_allocated): Remove.
8072         (separate_line_info_table_in_use): Remove.
8073         (LINE_INFO_TABLE_INCREMENT): Remove.
8074         (line_info_label_num): New.
8075         (cur_line_info_table): New.
8076         (text_section_line_info, cold_text_section_line_info): New.
8077         (separate_line_info): New.
8078         (SEPARATE_LINE_CODE_LABEL): Remove.
8079         (print_dwarf_line_table): Remove.
8080         (debug_dwarf): Don't dump it.
8081         (output_one_line_info_table): New.
8082         (output_line_info): Use it.
8083         (new_line_info_table): New.
8084         (set_cur_line_info_table): New.
8085         (dwarf2out_switch_text_section): Use it.
8086         (dwarf2out_begin_function): Likewise.
8087         (push_dw_line_info_entry): New.
8088         (dwarf2out_source_line): Rewrite for new line info tables.
8089         (dwarf2out_init): Remove dead initailizations.
8090
8091 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8092
8093         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8094         various flags.
8095         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8096         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8097         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8098         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8099         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8100         * opt-functions.awk (flag_init, switch_bit_fields): New.
8101         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8102         generate CL_MISSING_OK or CL_SAVE.
8103         * optc-gen.awk: Update to generate bit-field output as well as
8104         flags field.
8105         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8106         bit-field instead of CL_REJECT_DRIVER flag.
8107         * opts-common.c (generate_canonical_option,
8108         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8109         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8110         instead of CL_REJECT_NEGATIVE flag.
8111         * toplev.c (print_switch_values): Use cl_report bit-field instead
8112         of CL_REPORT flag.
8113
8114 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8115
8116         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8117         a zero minimum index only if it is redundant.
8118
8119 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8120
8121         PR rtl-optimization/48381
8122         * ira-color.c (assign_hard_reg): Use hard reg set intersection
8123         instead of ira_class_hard_reg_index for calculating conflicting
8124         hard registers.
8125
8126 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
8127
8128         * cprop.c: Clean up hash table building.
8129         (reg_avail_info): Remove.
8130         (oprs_available_p): Remove.
8131         (record_last_reg_set_info): Remove.
8132         (record_last_set_info): Remove.
8133         (reg_available_p): New function.
8134         (gcse_constant_p): Do not treat unfolded conditions as constants.
8135         (make_set_regs_unavailable): New function.
8136         (hash_scan_set): Simplify with new reg_available_p.
8137         (compute_hash_table_work): Traverse insns stream only once.
8138         Do not compute reg_avail_info. Traverse insns in reverse order.
8139         Record implicit sets after recording explicit sets from the block.
8140
8141 2011-03-31  Michael Matz  <matz@suse.de>
8142
8143         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8144
8145 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8146
8147         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8148         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8149         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8150         (h8300_mode_dependent_address_p): New function.
8151         (h8300_get_index): Make static.
8152
8153 2011-03-31  Jeff Law  <law@redhat.com>
8154
8155         * reload1.c (elimination_effects): Fix typo in recent change.
8156
8157         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8158         typo potentially leading to null pointer dereference.
8159
8160         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8161         (setup_save_areas): Corresponding changes to avoid useless
8162         assignments.
8163
8164         * jump.c (reversed_comparison_code_parts): Avoid successive return
8165         statements when REVERSE_CONDITION is defined.
8166
8167         * expr.c (expand_assignment): Avoid useless assignments.
8168         (expand_expr_real_1): Likewise.
8169         (expand_expr_real_2): Avoid useless statements.
8170
8171         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8172
8173         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8174
8175         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8176         statements.
8177
8178         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8179
8180 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8181
8182         PR target/47109
8183         * doc/tm.texi.in (TARGET_VERSION): Remove.
8184         * doc/tm.texi: Regenerate.
8185         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8186         * collect2.c (main): Don't use TARGET_VERSION.
8187         * mips-tdump.c (main): Don't use TARGET_VERSION.
8188         * mips-tfile.c (main): Don't use TARGET_VERSION.
8189         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8190         * config/rs6000/vxworksae.h: Remove.
8191         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8192         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8193         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8194         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8195         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8196         * config/arm/arm.h (TARGET_VERSION): Remove.
8197         * config/arm/coff.h (TARGET_VERSION): Remove.
8198         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8199         * config/arm/elf.h (TARGET_VERSION): Remove.
8200         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8201         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8202         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8203         * config/arm/pe.h (TARGET_VERSION): Remove.
8204         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8205         * config/arm/semi.h (TARGET_VERSION): Remove.
8206         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8207         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8208         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8209         * config/avr/avr.h (TARGET_VERSION): Remove.
8210         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8211         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8212         * config/frv/frv.h (TARGET_VERSION): Remove.
8213         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8214         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8215         * config/i386/darwin.h (TARGET_VERSION): Remove.
8216         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8217         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8218         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8219         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8220         * config/i386/gnu.h (TARGET_VERSION): Remove.
8221         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8222         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8223         * config/i386/linux.h (TARGET_VERSION): Remove.
8224         * config/i386/linux64.h (TARGET_VERSION): Remove.
8225         * config/i386/lynx.h (TARGET_VERSION): Remove.
8226         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8227         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8228         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8229         * config/i386/netware.h (TARGET_VERSION): Remove.
8230         * config/i386/nto.h (TARGET_VERSION): Remove.
8231         * config/i386/openbsd.h (TARGET_VERSION): Remove.
8232         * config/i386/vxworks.h (TARGET_VERSION): Remove.
8233         * config/ia64/elf.h (TARGET_VERSION): Remove.
8234         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8235         * config/ia64/hpux.h (TARGET_VERSION): Remove.
8236         * config/ia64/linux.h (TARGET_VERSION): Remove.
8237         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8238         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8239         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8240         * config/lm32/lm32.h (TARGET_VERSION): Remove.
8241         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8242         * config/m32c/m32c.h (TARGET_VERSION): Remove.
8243         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8244         * config/m32r/m32r.h (TARGET_VERSION): Remove.
8245         * config/m68k/linux.h (TARGET_VERSION): Remove.
8246         * config/m68k/m68k.h (TARGET_VERSION): Remove.
8247         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8248         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8249         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8250         * config/mep/mep.h (TARGET_VERSION): Remove.
8251         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8252         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8253         * config/mips/iris6.h (MACHINE_TYPE): Remove.
8254         * config/mips/linux.h (TARGET_VERSION): Remove.
8255         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8256         * config/mips/vxworks.h (TARGET_VERSION): Remove.
8257         * config/mmix/mmix.h (TARGET_VERSION): Remove.
8258         * config/mn10300/linux.h (TARGET_VERSION): Remove.
8259         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8260         * config/pa/pa.h (TARGET_VERSION): Remove.
8261         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8262         * config/picochip/picochip.h (TARGET_VERSION): Remove.
8263         * config/rs6000/aix.h (TARGET_VERSION): Remove.
8264         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8265         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8266         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8267         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8268         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8269         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8270         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8271         * config/rs6000/linux.h (TARGET_VERSION): Remove.
8272         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8273         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8274         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8275         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8276         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8277         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8278         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8279         * config/s390/linux.h (TARGET_VERSION): Remove.
8280         * config/s390/s390.h (TARGET_VERSION): Remove.
8281         * config/s390/tpf.h (TARGET_VERSION): Remove.
8282         * config/score/score.h (TARGET_VERSION): Remove.
8283         * config/sh/linux.h (TARGET_VERSION): Remove.
8284         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8285         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8286         * config/sh/sh.h (TARGET_VERSION): Remove.
8287         * config/sh/sh64.h (TARGET_VERSION): Remove.
8288         * config/sh/superh.h (TARGET_VERSION): Remove.
8289         * config/sh/vxworks.h (TARGET_VERSION): Remove.
8290         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8291         * config/sparc/linux.h (TARGET_VERSION): Remove.
8292         * config/sparc/linux64.h (TARGET_VERSION): Remove.
8293         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8294         TARGET_NAME32, TARGET_NAME): Remove.
8295         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8296         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8297         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8298         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8299         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8300         * config/spu/spu.h (TARGET_VERSION): Remove.
8301         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8302         * config/v850/v850.h (TARGET_VERSION): Remove.
8303         * config/vax/linux.h (TARGET_VERSION): Remove.
8304         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8305         * config/xtensa/elf.h (TARGET_VERSION): Remove.
8306         * config/xtensa/linux.h (TARGET_VERSION): Remove.
8307
8308 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8309
8310         PR target/48142
8311         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8312         frame-related from frame-unrelated adjustments to the stack pointer.
8313
8314 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
8315
8316         * common.opt (fdebug-types-section): Move earlier.
8317         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8318
8319 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
8320
8321         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8322         var.
8323
8324 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
8325
8326         * tree.h (CASE_CHAIN): Define.
8327         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8328         (gimple_redirect_edge_and_branch): Likewise.
8329
8330 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8331
8332         PR middle-end/48367
8333         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8334         calculation.
8335
8336 2011-03-30  Jeff Law  <law@redhat.com>
8337
8338         * PR bootstrap/48371
8339         * reload1.c (reload): Fix botch in last change.
8340
8341         * reload.h (struct reload): Fix typo introduced in last change.
8342
8343 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8344
8345         * config/arm/arm.opt (mhard-float, msoft-float): Mark
8346         Undocumented.  Remove help text.
8347         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8348         -mhard-float.
8349
8350 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8351
8352         * doc/options.texi (NegativeAlias): Document.
8353         (Alias): Mention NegativeAlias.
8354         * opt-functions.awk: Handle NegativeAlias.
8355         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8356         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8357         * opts.h (CL_NEGATIVE_ALIAS): Define.
8358         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8359         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8360         OPT_mspe_.
8361         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8362         Alias entries.
8363         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8364         mno-spe and mno-isel instead of mspe=no and -misel=no.
8365
8366 2011-03-29  Mark Wielaard  <mjw@redhat.com>
8367
8368         * common.opt (fdebug-types-section): New flag.
8369         * doc/invoke.texi: Document new -fno-debug-types-section flag.
8370         * dwarf2out.c (use_debug_types): New define.
8371         (struct die_struct): Mark die_id with GTY desc use_debug_types.
8372         (print_die): Guard output of type unit signatures using
8373         use_debug_types.
8374         (build_abbrev_table): Replace assert of dwarf_version >= 4
8375         with assert on use_debug_types.
8376         (size_of_die): Likewise.
8377         (unmark_dies): Likewise.
8378         (value_format): Decide AT_ref_external form on use_debug_types.
8379         (output_die): Replace dwarf_version version check guard with
8380         use_debug_types where appropriate.
8381         (modified_type_die): Likewise.
8382         (gen_reference_type_die): Likewise.
8383         (dwarf2out_start_source_file): Likewise.
8384         (dwarf2out_end_source_file): Likewise.
8385         (prune_unused_types_walk_attribs): Likewise.
8386         (dwarf2out_finish): Likewise.
8387
8388 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8389
8390         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8391
8392 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8393
8394         PR rtl-optimization/48332
8395         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8396         mode of input operand N and modeN to its actual mode.
8397
8398 2011-03-30  Jeff Law  <law@redhat.com>
8399
8400         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8401         define accessor macro.
8402         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8403         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8404         (reg_equiv_init): Likewise.
8405         (reg_equivs_size): New variable.
8406         (reg_equiv_init_size): Remove.
8407         (allocate_initial_values): Move prototype to here from....
8408         * integrate.h (allocate_initial_values): Remove prototype.
8409         * integrate.c: Include reload.h.
8410         (allocate_initial_values): Corresponding changes.
8411         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8412         (fix_reg_equiv_init, no_equiv): Corresponding changes.
8413         (update_equiv_regs): Corresponding changes.
8414         (ira): Corresponding changes.
8415         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8416         (push_secondary_reload): Corresponding changes.
8417         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8418         (make_memloc, find_reloads_address): Corresponding changes.
8419         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8420         (find_reloads_address_1): Corresponding changes.
8421         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8422         (refers_to_regno_for_reload_p): Corresponding changes.
8423         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8424         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8425         * reload1.c: Include ggc.h.
8426         (grow_reg_equivs): New function.
8427         (replace_pseudos_in, reload): Corresponding changes.
8428         (calculate_needs_all_insns, alter_regs): Corresponding changes.
8429         (eliminate_regs_1, elimination_effects): Corresponding changes.
8430         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8431         (delete_output_reload): Likewise.
8432         * caller-save.c (mark_referenced_regs): Corresponding changes.
8433         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8434         * frv/predicates.md (frv_load_operand): Corresponding changes.
8435         * microblaze/microblaze.c (double_memory_operand): Corresponding
8436         changes.
8437         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8438         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8439         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8440         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8441         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8442         changes.
8443         * pa/pa.c (emit_move_sequence): Corresponding changes.
8444         * vax/vax.c (nonindexed_address_p): Corresponding changes.
8445
8446 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8447
8448         PR target/47551
8449         * config/arm/arm.c (coproc_secondary_reload_class): Handle
8450         structure modes.  Don't check neon_vector_mem_operand for
8451         vector or structure modes.
8452
8453 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8454             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8455
8456         PR target/43590
8457         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8458         operand 1 and reshuffle the operands to match.
8459         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8460
8461 2011-03-30  Christian Schüler  <cschueler@gmx.de>
8462
8463         PR driver/48208
8464         * config/c.opt (F): Added 'Driver' to -F option.
8465
8466         PR driver/48260
8467         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8468           handler function.
8469         * config/darwin.opt: Added '-arch' option.
8470
8471 2011-03-30  Nick Clifton  <nickc@redhat.com>
8472
8473         * config/rx/rx.md: Add peepholes and patterns to combine
8474         extending loads and simple arithmetic instructions.
8475         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8476         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8477         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8478         modes to use pre-decrement and post-increment addressing.
8479         (rx_is_restricted_memory_address): Add range checking of REG+INT
8480         addresses.
8481         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
8482         (rx_memory_move_cost): Adjust cost of stores.
8483         (rx_adjust_insn_length): New function.
8484
8485 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
8486
8487         PR c/48305
8488         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8489         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8490         matching arg00/arg01 types.
8491
8492 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8493
8494         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8495         last_location to UNKNOWN_LOCATION.
8496
8497 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8498
8499         PR target/48349
8500         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8501         FLOAT_SSE_REGS.
8502
8503 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8504             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8505
8506         PR bootstrap/48337
8507         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8508         Init(PROCESSOR_V7).
8509         (sparc_cpu): Likewise.
8510         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8511         PROCESSOR_V7.
8512
8513 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8514
8515         PR target/48336
8516         PR middle-end/48342
8517         PR rtl-optimization/48345
8518         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8519         hard regs for given mode from profitable regs when doing secondary
8520         allocation.
8521
8522 2011-03-29  Jeff Law  <law@redhat.com>
8523
8524         PR bootstrap/48327
8525         * tree-ssa-threadupdate.c (struct redirection_data): Remove
8526         do_not_duplicate field.
8527         (lookup_redirection_data): Corresponding changes.
8528         (create_duplicates): Always create a template block.
8529         (redirect_edges): Remove code which reused the original block
8530         when it was going to become unreachable code.
8531         (thread_block): Don't set do_not_duplicate field.
8532
8533 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
8534
8535         * lto-opts.c (register_user_option_p, lto_register_user_option):
8536         Make type argument unsigned.
8537         * lto-streamer.h (lto_register_user_option): Make type argument
8538         unsigned.
8539         * opth-gen.awk: Make CL_* macros unsigned.
8540         * opts-common.c (find_opt): Make lang_mask argument unsigned.
8541         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8542         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8543         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8544         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8545         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8546         (find_opt): Make lang_mask argument unsigned.
8547
8548 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8549
8550         PR rtl-optimization/48331
8551         PR rtl-optimization/48334
8552         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8553         for any used algorithm.
8554
8555 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8556
8557         * ira-conflicts.c (build_object_conflicts): Add unused attribute
8558         to parent_max.
8559
8560 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
8561
8562         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8563         (alpha_option_override): Don't set alpha_sr_alias_set.
8564         (emit_frame_store_1): Use gen_frame_mem rather than calling
8565         set_mem_alias_set.
8566         (alpha_expand_epilogue): Ditto.
8567
8568 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
8569
8570         PR tree-optimization/48290
8571         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8572         vectorization, check that relevant phis in the basic block after
8573         the inner loop are really inner loop's exit phis.
8574
8575 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
8576
8577         PR debug/48190
8578         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8579         (cached_dw_loc_list_def): New structure.
8580         (cached_dw_loc_list): New typedef.
8581         (cached_dw_loc_list_table): New variable.
8582         (cached_dw_loc_list_table_hash): New function.
8583         (cached_dw_loc_list_table_eq): Likewise.
8584         (add_location_or_const_value_attribute): Take a bool cache_p.
8585         Cache the list when the parameter is true.
8586         (gen_formal_parameter_die): Update caller.
8587         (gen_variable_die): Likewise.
8588         (dwarf2out_finish): Likewise.
8589         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8590         while generating debug info for the decl.
8591         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8592         (dwarf2out_init): Initialize cached_dw_loc_list_table.
8593         (resolve_addr): Cache the result of resolving a chain of
8594         location lists.
8595
8596 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
8597
8598         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8599         conflict object hard regset nodes have intersecting hard reg sets.
8600
8601         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8602         after regstat_init_n_sets_and_refs.
8603
8604         * ira.c: Add more comments at the top.
8605         (setup_stack_reg_pressure_class, setup_pressure_classes):
8606         Add comments how we compute the register pressure classes.
8607         (setup_allocno_and_important_classes): Add more comments.
8608         (setup_class_translate_array, reorder_important_classes)
8609         (setup_reg_class_relations): Add comments.
8610
8611         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
8612         start of the file.
8613
8614         * ira-color.c: Add 2011 to the Copyright line.
8615         (assign_hard_reg):  Add more comments.
8616         (improve_allocation): Ditto.
8617
8618         * ira-costs.c: Add 2011 to the Copyright line.
8619         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8620         comments.
8621         (setup_regno_cost_classes_by_mode): Ditto.
8622
8623         Initial patches from ira-improv branch:
8624
8625         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8626
8627         * ira-build.c (ira_create_object): Remove initialization of
8628         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
8629         (ira_create_allocno): Remove initialization of
8630         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8631         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8632         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8633         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8634         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8635         Initialize ALLOCNO_ADD_DATA.
8636         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8637         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8638         ALLOCNO_REG.
8639         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8640         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8641
8642         * ira.c (ira_reallocate): Remove.
8643         (setup_pressure_classes): Call
8644         ira_init_register_move_cost_if_necessary.  Use
8645         ira_register_move_cost instead of ira_get_register_move_cost.
8646         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8647         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8648
8649         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8650         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8651         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8652         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8653         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8654         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8655         Fix formatting.
8656         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8657         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8658         (struct allocno_color_data): New.
8659         (allocno_color_data_t): New typedef.
8660         (allocno_color_data): New definition.
8661         (ALLOCNO_COLOR_DATA): New macro.
8662         (struct object_color_data): New.
8663         (object_color_data_t): New typedef.
8664         (object_color_data): New definition.
8665         (OBJECT_COLOR_DATA): New macro.
8666         (update_copy_costs, calculate_allocno_spill_cost): Call
8667         ira_init_register_move_cost_if_necessary.  Use
8668         ira_register_move_cost instead of ira_get_register_move_cost.
8669         (move_spill_restore, update_curr_costs): Ditto.
8670         (allocno_spill_priority): Make it inline.
8671         (color_pass): Allocate and free allocno_color_dat and object_color_data.
8672         (struct coalesce_data, coalesce_data_t): New.
8673         (allocno_coalesce_data): New definition.
8674         (ALLOCNO_COALESCE_DATA): New macro.
8675         (merge_allocnos, coalesced_allocno_conflict_p): Use
8676         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8677         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8678         (coalesce_allocnos): Ditto.
8679         (setup_coalesced_allocno_costs_and_nums): Ditto.
8680         (collect_spilled_coalesced_allocnos): Ditto.
8681         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8682         (setup_slot_coalesced_allocno_live_ranges): Ditto.
8683         (coalesce_spill_slots): Ditto.
8684         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
8685         free allocno_coalesce_data.
8686
8687         * ira-conflicts.c: Fix formatting.
8688         (process_regs_for_copy): Call
8689         ira_init_register_move_cost_if_necessary.  Use
8690         ira_register_move_cost instead of ira_get_register_move_cost.
8691         (build_object_conflicts): Optimize.
8692
8693         * ira-costs.c (record_reg_classes): Optimize.  Call
8694         ira_init_register_move_cost_if_necessary.  Use
8695         ira_register_move_cost, ira_may_move_in_cost, and
8696         ira_may_move_out_cost instead of ira_get_register_move_cost and
8697         ira_get_may_move_cost.
8698         (record_address_regs): Ditto.
8699         (scan_one_insn): Optimize.
8700         (find_costs_and_classes): Optimize.
8701         (process_bb_node_for_hard_reg_moves): Call
8702         ira_init_register_move_cost_if_necessary.  Use
8703         ira_register_move_cost instead of ira_get_register_move_cost.
8704
8705         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8706         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8707         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8708         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8709         definitions.
8710         (ira_initiate_emit_data, ira_finish_emit_data)
8711         (create_new_allocno): New functions.
8712         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8713         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8714         Use ira_register_move_cost instead of ira_get_register_move_cost.
8715
8716         * ira-int.h: Fix some comments.
8717         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8718         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8719         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8720         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
8721         add_data.
8722         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
8723         bitfield after mode.  Make hard_regno a short int.  Make
8724         hard_regno short.  Remove first_coalesced_allocno and
8725         next_coalesced_allocno.  Move mem_optimized_dest_p,
8726         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8727         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
8728         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8729         temp, colorable_p.  Add new member add_data.
8730         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8731         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8732         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8733         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8734         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8735         (ALLOCNO_ADD_DATA): New macro.
8736         (ira_emit_data_t): New typedef.
8737         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
8738         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8739         from struct ira_allocno.
8740         (ALLOCNO_EMIT_DATA): New macro.
8741         (ira_allocno_emit_data, allocno_emit_reg): New.
8742         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
8743         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
8744         (OBJECT_ADD_DATA): New macro.
8745         (ira_reallocate): Remove.
8746         (ira_initiate_emit_data, ira_finish_emit_data): New.
8747         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8748         (ira_init_register_move_cost_if_necessary): New.
8749         (ira_object_conflict_iter_next): Merge into
8750         ira_object_conflict_iter_cond.
8751         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
8752
8753         * ira-live.c (process_single_reg_class_operands): Call
8754         ira_init_register_move_cost_if_necessary.  Use
8755         ira_register_move_cost instead of ira_get_register_move_cost.
8756
8757         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8758
8759         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8760
8761         * ira-costs.c: Fix formatting.
8762         (cost_classes, cost_classes_num): Remove.
8763         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8764         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8765         (cost_classes_del, cost_classes_htab): New.
8766         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8767         (initiate_regno_cost_classes, setup_cost_classes): New.
8768         (setup_regno_cost_classes_by_aclass): New.
8769         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
8770         (record_reg_classes): Use regno_cost_classes instead of
8771         cost_classes.  Move checking opposite operand up.
8772         (record_address_regs): Use regno_cost_classes
8773         instead of cost_classes.
8774         (scan_one_insn): Ditto.  Use always general register.
8775         (print_allocno_costs): Use regno_cost_classes instead of
8776         cost_classes.
8777         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
8778         (find_costs_and_classes): Set up cost classes for each registers.
8779         Use also their mode for this.  Use regno_cost_classes instead of
8780         cost_classes.
8781         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8782         cost_classes.
8783         (free_ira_costs, ira_init_costs): Don't use cost_classes.
8784         (ira_costs, ira_set_pseudo_classes): Call
8785         initiate_regno_cost_classes and finish_regno_cost_classes.
8786
8787         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8788
8789         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8790
8791         * target.def (ira_cover_classes): Remove.
8792
8793         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
8794
8795         * doc/tm.texi.in: Ditto.
8796
8797         * ira-conflicts.c: Remove mentioning cover classes from the file.
8798         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
8799         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
8800
8801         * targhooks.c (default_ira_cover_classes): Remove.
8802
8803         * targhooks.h (default_ira_cover_classes): Ditto.
8804
8805         * haifa-sched.c: Remove mentioning cover classes from the file.
8806         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8807         ira_pressure_classes and ira_pressure_classes_num instead of
8808         ira_reg_class_cover_size and ira_reg_class_cover.  Use
8809         sched_regno_pressure_class instead of sched_regno_cover_class.
8810         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8811         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8812
8813         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
8814         classes from the file.
8815         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8816         (struct object_hard_regs, struct object_hard_regs_node): New.
8817         (struct ira_object): New members profitable_hard_regs,
8818         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8819         (struct ira_allocno): Rename cover_class to aclass.  Rename
8820         cover_class_cost and updated_cover_class_cost to class_cost and
8821         updated_class_cost.  Remove splay_removed_p and
8822         left_conflict_size.  Add new members colorable_p.
8823         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8824         (ALLOCNO_COLORABLE_P): New macro.
8825         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8826         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8827         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8828         (OBJECT_...): Rename parameter C to O.
8829         (OBJECT_PROFITABLE_HARD_REGS): New macro.
8830         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8831         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8832         (struct target_ira_int): New members x_ira_max_memory_move_cost,
8833         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8834         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8835         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8836         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
8837         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
8838         x_ira_reg_class_subunion.
8839         (ira_max_memory_move_cost, ira_max_register_move_cost)
8840         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8841         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8842         (ira_important_class_nums, ira_reg_class_superunion): New macros.
8843         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
8844         (ira_reg_class_union): Rename to ira_reg_class_subunion.
8845         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8846         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8847         (ira_tune_allocno_costs_and_cover_classes): Rename to
8848         ira_tune_allocno_costs.
8849         (ira_debug_hard_regs_forest): New.
8850         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8851         (ira_object_conflict_iter_next): Fix comments.
8852         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8853         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8854         cover_class to aclass.
8855         (ira_allocate_and_accumulate_costs): Ditto.
8856         (ira_allocate_and_set_or_copy_costs): Ditto.
8857
8858         * opts.c (decode_options): Remove ira_cover_class check.
8859
8860         * ira-color.c: Remove mentioning cover classes from the file.  Use
8861         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8862         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8863         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8864         (splay-tree.h): Remove include.
8865         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8866         before copy_freq_compare_func.
8867         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8868         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8869         New definitions.
8870         (hard_regs_roots, hard_regs_node_vec): Ditto.
8871         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8872         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8873         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8874         (create_new_object_hard_regs_node): Ditto.
8875         (add_new_object_hard_regs_node_to_forest): Ditto.
8876         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8877         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8878         Ditto.
8879         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8880         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8881         (remove_unused_object_hard_regs_nodes): Ditto.
8882         (enumerate_object_hard_regs_nodes): Ditto.
8883         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8884         (object_hard_regs_subnode_t): Ditto.
8885         (struct object_hard_regs_subnode): Ditto.
8886         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8887         (setup_object_hard_regs_subnode_index): Ditto.
8888         (get_object_hard_regs_subnodes_num): Ditto.
8889         (form_object_hard_regs_nodes_forest): Ditto.
8890         (finish_object_hard_regs_nodes_tree): Ditto.
8891         (finish_object_hard_regs_nodes_forest): Ditto.
8892         (allocnos_have_intersected_live_ranges_p): Rename to
8893         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8894         (pseudos_have_intersected_live_ranges_p): Rename to
8895         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8896         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8897         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8898         (update_copy_costs): Remove assert.  Skip cost update if the hard
8899         reg does not belong the class.
8900         (assign_hard_reg): Process only profitable hard regs.
8901         (uncolorable_allocnos_num): Make it scalar.
8902         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8903         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8904         and ira_reg_class_max_nregs.
8905         (bucket_allocno_compare_func): Check frequency first.
8906         (sort_bucket): Add compare function as a parameter.
8907         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8908         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8909         (push_allocno_to_stack): Rewrite for checking new allocno
8910         colorability.
8911         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8912         (push_only_colorable): Pass new parameter to sort_bucket.
8913         (push_allocno_to_spill): Remove.
8914         (allocno_spill_priority_compare): Make it inline and rewrite.
8915         (splay_tree_allocate, splay_tree_free): Remove.
8916         (allocno_spill_sort_compare): New function.
8917         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8918         build and use splay tree.  Choose first allocno in uncolorable
8919         allocno bucket to spill.  Remove setting spill cost.
8920         (all_conflicting_hard_regs): Remove.
8921         (setup_allocno_available_regs_num): Check only profitable hard
8922         regs.  Print info about hard regs nodes.
8923         (setup_allocno_left_conflicts_size): Remove.
8924         (put_allocno_into_bucket): Don't call
8925         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8926         (improve_allocation): New.
8927         (color_allocnos): Call setup_profitable_hard_regs,
8928         form_object_hard_regs_nodes_forest, improve_allocation,
8929         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8930         (print_loop_title): Use pressure classes.
8931         (color_allocnso): Ditto.
8932         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8933         and allocnos_for_spilling.
8934         (ira_sort_regnos_for_alter_reg): Don't setup members
8935         {first,next}_coalesced_allocno.
8936         (color): Remove allocating and freeing removed_splay_allocno_vec.
8937         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8938         prohibited_class_mode_regs.
8939
8940         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8941         formatting.
8942         (update_allocno_pressure_excess_length): Use pressure classes.
8943         (inc_register_pressure, dec_register_pressure): Check for pressure
8944         class.
8945         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8946         pressure class.  Use ira_reg_class_nregs instead of
8947         ira_reg_class_max_nregs.
8948         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8949         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8950         (single_reg_class): Use ira_reg_class_nregs instead of
8951         ira_reg_class_max_nregs.
8952         (process_bb_node_lives): Use pressure classes.
8953
8954         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8955         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8956         (change_loop): Use pressure classes.
8957         (modify_move_list): Call ira_set_allocno_class instead of
8958         ira_set_allocno_cover_class.
8959
8960         * ira-build.c: Remove mentioning cover classes from the file.  Use
8961         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8962         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8963         ALLOCNO_UPDATED_CLASS_COST instead of
8964         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8965         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8966         (ira_create_allocno): Remove initialization of
8967         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8968         ALLOCNO_COLORABLE_P.
8969         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8970         Update conflict regs for the objects.
8971         (create_cap_allocno): Remove assert.  Don't propagate
8972         ALLOCNO_AVAILABLE_REGS_NUM.
8973         (ira_free_allocno_costs): New function.
8974         (finish_allocno): Change a part of code into call of
8975         ira_free_allocno_costs.
8976         (low_pressure_loop_node_p): Use pressure classes.
8977         (object_range_compare_func): Don't compare classes.
8978         (setup_min_max_conflict_allocno_ids): Ditto.
8979
8980         * loop-invariant.c: Remove mentioning cover classes from the file.
8981         Use ira_pressure_classes and ira_pressure_classes_num instead of
8982         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
8983         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8984         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8985         Use reg_allocno_class instead of reg_cover_class.
8986         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8987         STACK_REG_COVER_CLASS.
8988         (get_regno_cover_class): Rename to get_regno_pressure_class.
8989         (move_loop_invariants): Initialize and finalize regstat.
8990
8991         * ira.c: Remove mentioning cover classes from the file.  Add
8992         comments about coloring without cover classes.  Use ALLOCNO_CLASS
8993         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8994         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8995         setup_class_subset_and_memory_move_costs.
8996         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8997         (setup_cover_and_important_classes): Rename to
8998         setup_allocno_and_important_classes.
8999         (setup_class_translate_array): New.
9000         (setup_class_translate): Call it for allocno and pressure classes.
9001         (cover_class_order): Rename to allocno_class_order.
9002         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9003         of ira_class_translate.
9004         (reorder_important_classes): Set up ira_important_class_nums.
9005         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9006         (print_class_cover): Rename to print_classes.  Add parameter.
9007         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9008         Print pressure classes too.
9009         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9010         setup_reg_subclasses.
9011         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9012         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9013         (setup_prohibited_class_mode_regs): Use
9014         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9015         (clarify_prohibited_class_mode_regs): New function.
9016         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9017         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9018         (ira_init_once): Initialize them.
9019         (free_register_move_costs): Process them.
9020         (ira_init): Move calls of find_reg_classes and
9021         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9022         Call clarify_prohibited_class_mode_regs.
9023         (ira_no_alloc_reg): Remove.
9024         (too_high_register_pressure_p): Use pressure classes.
9025
9026         * sched-deps.c: Remove mentioning cover classes from the file.
9027         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9028         ira_pressure_classes and ira_pressure_classes_num instead of
9029         ira_reg_class_cover_size and ira_reg_class_cover.
9030         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9031         sched_regno_pressure_class instead of sched_regno_cover_class.
9032         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9033         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9034
9035         * ira.h: Add 2010 to Copyright.
9036         (ira_no_alloc_reg): Remove external.
9037         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9038         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9039         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9040         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9041         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9042         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9043         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9044         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9045         x_ira_no_alloc_regs.
9046         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9047         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9048         ira_allocno_classes_num and ira_allocno_classes.
9049         (ira_class_translate): Rename to ira_allocno_class_translate.
9050         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9051         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9052         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9053         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9054         (ira_no_alloc_regs): New.
9055
9056         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9057         classes from the file.  Use ALLOCNO_CLASS instead of
9058         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9059         ALLOCNO_COVER_CLASS_COST.
9060         (regno_cover_class): Rename to regno_aclass.
9061         (record_reg_classes): Use ira_reg_class_subunion instead of
9062         ira_reg_class_union.
9063         (record_address_regs): Check overflow.
9064         (scan_one_insn): Ditto.
9065         (print_allocno_costs): Print total mem cost fore regional allocation.
9066         (print_pseudo_costs): Use REG_N_REFS.
9067         (find_costs_and_classes): Use classes intersected with them on the
9068         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9069         ira_reg_class_union.  Use ira_allocno_class_translate and
9070         regno_aclass instead of ira_class_translate and regno_cover_class.
9071         Modify code for finding regno_aclass.  Setup preferred classes for
9072         the next pass.
9073         (setup_allocno_cover_class_and_costs): Rename to
9074         setup_allocno_class_and_costs.  Use regno_aclass instead of
9075         regno_cover_class.  Use ira_set_allocno_class instead of
9076         ira_set_allocno_cover_class.
9077         (init_costs, finish_costs): Use regno_aclass instead of
9078         regno_cover_class.
9079         (ira_costs): Use setup_allocno_class_and_costs instead of
9080         setup_allocno_cover_class_and_costs.
9081         (ira_tune_allocno_costs_and_cover_classes): Rename to
9082         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9083         by processing objects.  Use ira_reg_class_max_nregs instead of
9084         ira_reg_class_nregs.
9085
9086         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9087
9088         * sched-int.h: Remove mentioning cover classes from the file.
9089         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9090
9091         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9092         classes from the file.
9093         (struct reg_pref): Rename coverclass into allocnoclass.
9094         (reg_cover_class): Rename to reg_allocno_class.
9095
9096         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9097
9098         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9099
9100         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9101
9102         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9103
9104         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9105
9106         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9107
9108         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9109
9110         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9111
9112         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9113
9114         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9115
9116         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9117         (i386_ira_cover_classes): Ditto.
9118
9119         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9120
9121         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9122
9123         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9124
9125         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9126
9127         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9128
9129         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9130
9131         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9132         (mips_ira_cover_classes): Ditto.
9133
9134         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9135
9136         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9137
9138         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9139
9140         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9141
9142         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9143
9144         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9145         (IRA_COVER_CLASSES_VSX): Ditto.
9146
9147         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9148         (rs6000_ira_cover_classes): Ditto.
9149
9150         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9151
9152         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9153
9154         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9155
9156         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9157
9158         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9159
9160         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9161
9162         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9163
9164         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9165
9166         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9167
9168         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9169
9170 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9171
9172         PR debug/48253
9173         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9174         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9175         dw_fde_unlikely_section_end_label, cold_in_std_section,
9176         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9177         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9178         fields.
9179         (output_fde): Use dw_fde_second_{begin,end} if second is
9180         true, otherwise dw_fde_{begin,end}.
9181         (output_call_frame_info): Test dw_fde_second_begin != NULL
9182         instead of dw_fde_switched_sections.
9183         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9184         fields, initialize new fields.  Initialize in_std_section
9185         unconditionally from the first partition.
9186         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9187         dw_fde_second_begin is non-NULL.
9188         (dwarf2out_switch_text_section): Stop initializing removed
9189         dw_fde_struct fields, initialize new fields, initialize
9190         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9191         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9192         (struct var_loc_list_def): Add last_before_switch field.
9193         (arange_table, arange_table_allocated, arange_table_in_use,
9194         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9195         (size_of_aranges): Count !in_std_section and !second_in_std_section
9196         hunks in fdes, instead of looking at arange_table_in_use.
9197         (output_aranges): Add aranges_length argument, don't call
9198         size_of_aranges here.  Instead of using aranges_table*
9199         emit ranges for fdes when !in_std_section resp.
9200         !second_in_std_section.
9201         (dw_loc_list): Break ranges crossing section switch.
9202         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9203         use dw_fde_second_end instead of dw_fde_end as end of last range.
9204         (gen_subprogram_die): Don't call add_arange.  Use
9205         dw_fde_{begin,end} for first partition and if switched
9206         section dw_fde_second_{begin,end} for the second.
9207         (var_location_switch_text_section_1,
9208         var_location_switch_text_section): New functions.
9209         (dwarf2out_begin_function): Initialize cold_text_section even
9210         when function_section () isn't text_section.
9211         (prune_unused_types): Don't walk arange_table.
9212         (dwarf2out_finish): Don't needlessly test
9213         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9214         If info_section_emitted, call size_of_aranges and if it indicates
9215         non-empty .debug_aranges, call output_aranges with the computed
9216         size.  Stop using removed dw_fde_struct fields, use
9217         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9218         for second.
9219
9220         PR debug/48203
9221         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9222         create ENTRY_VALUE if incoming or address of incoming's MEM
9223         is a hard REG.
9224         * dwarf2out.c (mem_loc_descriptor): Don't emit
9225         DW_OP_GNU_entry_value of DW_OP_fbreg.
9226         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9227         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9228         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9229         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9230         ENTRY_VALUE_EXPs.
9231         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9232         is a REG_P or MEM_P with REG_P address, compute hash directly
9233         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9234         (preserve_only_constants): Don't clear VALUES forwaring
9235         ENTRY_VALUE to some other VALUE.
9236
9237 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
9238
9239         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9240         instead of GEN_INT.
9241
9242 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9243
9244         * cfgexpand.c (expand_gimple_cond): Always set the source location and
9245         block before expanding the statement.
9246         (expand_gimple_stmt_1): Likewise.  Set them here...
9247         (expand_gimple_stmt): ...and not here.  Tidy.
9248         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9249         unknown.
9250
9251 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9252
9253         * Makefile.in: New rule for cprop.o.
9254         * gcse.c: Move constant/copy propagation to cprop.c.
9255         (compute_local_properties): Only handle expression tables.
9256         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9257         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9258         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9259         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9260         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9261         compute_cprop_data, find_used_regs, try_replace_reg,
9262         find_avail_set, cprop_jump, constprop_register, cprop_insn,
9263         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9264         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9265         find_bypass_set, reg_killed_on_edge, bypass_block,
9266         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9267         execute_rtl_cprop, pass_rtl_cprop): Move to...
9268         * cprop.c: ...here.  New file, constant/copy propagation for RTL
9269         moved from gcse.c to here with minor cleanups in duplicated code.
9270
9271 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9272
9273         * config/i386/i386.c (flag_opts): Fix a typo in
9274         -mavx256-split-unaligned-store.
9275
9276 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9277
9278         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9279         LIBCALL_VALUE): Remove macros.
9280         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9281         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9282         (h8300_function_value, h8300_libcall_value,
9283         h8300_function_value_regno_p): New functions.
9284
9285 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9286
9287         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9288
9289 2011-03-28  Jeff Law  <law@redhat.com>
9290
9291         * tree-ssa-threadupdate.c (redirect_edges): Call
9292         create_edge_and_update_destination_phis as needed.
9293         (create_edge_and_update_destination_phis): Accept new BB argument.
9294         All callers updated.
9295         (thread_block): Do not update the profile when threading around
9296         intermediate blocks.
9297         (thread_single_edge): Likewise.
9298         (determine_bb_domination_status): If BB is not a successor of the
9299         loop header, return NONDOMINATING.
9300         (register_jump_thread): Note when we register a jump thread around
9301         an intermediate block.
9302         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9303         (thread_across_edge): Use it.
9304
9305 2011-03-28  Tristan Gingold  <gingold@adacore.com>
9306
9307         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9308         when for_return is 2.
9309
9310 2011-03-28  Jeff Law  <law@redhat.com>
9311
9312         * var-tracking.c (canonicalize_values_mark): Delete unused
9313         lhs assignment.
9314         (canonicalize_values_star, set_variable_part): Likewise.
9315         (clobber_variable_part, delete_variable_part): Likewise.
9316
9317 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9318
9319         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9320
9321 2011-03-28  Martin Jambor  <mjambor@suse.cz>
9322
9323         * tree-inline.c (expand_call_inline): Do not check that destination
9324         node is analyzed.
9325         (optimize_inline_calls): Assert that destination node is analyzed.
9326         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9327         not call tree_lowering_passes.
9328         * cgraph.h (cgraph_analyze_function): Declare.
9329         * cgraphunit.c (cgraph_analyze_function): Make public.
9330
9331 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
9332
9333         * config/sparc/sparc-opts.h: New.
9334         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9335         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9336         (sparc_option_override): Store processor_type enumeration rather
9337         than string in cpu_default.  Remove name and enumeration from
9338         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
9339         without using sparc_select.  Use target_flags_explicit instead of
9340         fpu_option_set.
9341         * config/sparc/sparc.h (enum processor_type): Move to
9342         sparc-opts.h.
9343         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9344         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9345         HeaderInclude entry.
9346         (mcpu=, mtune=): Use Var and Enum.
9347         (sparc_processor_type): New Enum and EnumValue entries.
9348
9349 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9350             Iain Sandoe  <iains@gcc.gnu.org>
9351
9352         PR target/48245
9353         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9354
9355 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9356
9357         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9358         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9359         Insert new statements at it in lieu of STMT.
9360         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9361         * tree-vect-stmts.c (vectorizable_store): Likewise.
9362         (vectorizable_load): Likewise.
9363
9364 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
9365
9366         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9367         (divtf3): Ditto.
9368         (multf3): Ditto.
9369         (subtf3): Ditto.
9370
9371 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9372
9373         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9374         unaligned 256bit load/store.
9375         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9376         (*avx_movdqu<avxmodesuffix>): Likewise.
9377
9378 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9379
9380         PR target/48288
9381         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9382         * config/pa/pa.md (iordi3): Use new predicate in expander.
9383         (iorsi3): Likewise.
9384
9385 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
9386
9387         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9388         FUNCTION_VALUE_REGNO_P): Remove macros.
9389         * config/mips/mips-protos.h (mips_function_value): Remove.
9390         * config/mips/mips.c (mips_function_value): Rename to...
9391         (mips_function_value_1): ... this. Make static.  Handle receiving
9392         the function type in 'fn_decl_or_type' argument.
9393         (mips_function_value, mips_libcall_value,
9394         mips_function_value_regno_p): New function.
9395         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9396         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9397
9398 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9399
9400         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9401         and -mavx256-split-unaligned-store.
9402         (ix86_option_override_internal): Split 32-byte AVX unaligned
9403         load/store by default.
9404         (ix86_avx256_split_vector_move_misalign): New.
9405         (ix86_expand_vector_move_misalign): Use it.
9406
9407         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9408         -mavx256-split-unaligned-store.
9409
9410         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9411         256bit load/store.  Generate unaligned store on misaligned memory
9412         operand.
9413         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9414         256bit load/store.
9415         (*avx_movdqu<avxmodesuffix>): Likewise.
9416
9417         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9418         -mavx256-split-unaligned-store.
9419
9420 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9421
9422         PR target/38598
9423         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9424         Update commentary.
9425
9426 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9427
9428         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9429         opno arguments with an expand_operand.  Use create_input_operand.
9430         (mips_prepare_builtin_target): Delete.
9431         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9432         functions.
9433         (mips_expand_builtin_direct): Use create_output_operand and
9434         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
9435         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
9436         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9437
9438 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
9439
9440         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9441         function.
9442         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9443
9444 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9445
9446         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9447         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
9448         basic blocks and call commit_edge_insertions directly.
9449         (fixup_abnormal_edges): Move from here to...
9450         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
9451         on the edges and return whether some have actually been inserted.
9452         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9453         compensation code.
9454
9455 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
9456
9457         PR rtl-optimization/48144
9458         * sel-sched-ir.c (merge_history_vect): Factor out from ...
9459         (merge_expr_data): ... here.
9460         (av_set_intersect): Rename to av_set_code_motion_filter.
9461         Update all callers.  Call merge_history_vect when an expression
9462         is found in both sets.
9463         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9464
9465 2011-03-26  Alan Modra  <amodra@gmail.com>
9466
9467         * config/rs6000/predicates.md (word_offset_memref_op): Handle
9468         cmodel medium addresses.
9469         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9470         64-bit gpr loads and stores.
9471         (rs6000_secondary_reload_ppc64): New function.
9472         * config/rs6000/rs6000-protos.h: Declare it.
9473         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9474
9475 2011-03-26  Alan Modra  <amodra@gmail.com>
9476
9477         PR target/47487
9478         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9479         GNU Go in traceback table.
9480
9481 2011-03-25  Richard Henderson  <rth@redhat.com>
9482
9483         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9484         if there are exactly 6 operands.
9485         (set_storage_via_setmem): Similarly.
9486
9487 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9488
9489         * collect2.c (write_c_file_stat): Handle backslash
9490         as right-hand directory separator.
9491         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9492         checking just for slash.
9493         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9494         instead of checking for trailing slash.
9495         * gcc.c (record_temp_file): Use filename_cmp instead
9496         of strcmp.
9497         (do_spec_1): Likewise.
9498         (replace_outfile_spec_function): Likewise.
9499         (is_directory): Use filename_ncmp instead of strncmp.
9500         (print_multilib_info): Likewise.
9501         * gcov.c (find_source): Use filename_cmp instead
9502         instead of strcmp.
9503         (make_gcov_file_name): Fix order of slash/backslash
9504         checks.
9505         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9506         (add_standard_paths): Likewise.
9507         * mips-tfile.c (saber_stop): Handle backslash.
9508         * prefix.c (update_path): Use filename_ncmp instead of
9509         strncmp.
9510         * profile.c (output_location): Use filename_cmp instead
9511         of strcmp.
9512         * read-md.c (handle_toplevel_file): Handle backslash.
9513         * tlink.c (frob_extension):  Likewise.
9514         * tree-cfg.c (same_line_p): Use filename_cmp instead of
9515         strcmp.
9516         * tree-dump.c (dequeue_and_dump): Handle backslash.
9517         * tree.c (get_file_function_name): Likewise.
9518         * gengtype.c (read_input_list): Likewise.
9519         (get_file_realbasename): Likewise.
9520         (get_output_file_with_visibility): Use filename_cmp
9521         instead of strcmp.
9522
9523 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
9524
9525         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9526         case to VFPv1.
9527
9528 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9529
9530         * fold-const.c (expr_location_or): New function.
9531         (fold_truth_not_expr): Call it.
9532
9533 2011-03-25  Jeff Law  <law@redhat.com>
9534
9535         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9536         va_end.
9537         * c-family/c-common.c (def_fn_type): Likewise.
9538         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9539         * emit-rtl.c (gen_rtvec): Likewise.
9540         * lto/lto-lang.c (def_fn_type): Likewise.
9541
9542 2011-03-25  Richard Guenther  <rguenther@suse.de>
9543
9544         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9545         also generate copies.
9546         (fini_copy_prop): Handle constant values properly.
9547
9548 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
9549
9550         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9551         mode size instead of bitsize with DWARF2_ADDR_SIZE.
9552         (hash_loc_operands, compare_loc_operands): Handle
9553         DW_OP_GNU_entry_value.
9554
9555 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9556
9557         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9558         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9559         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9560         comment and use macro TARGET_64BIT_MS_ABI instead.
9561         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9562         and change default behavior for 32-bit MS_ABI.
9563         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9564         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9565         32-bit, too.
9566         (ix86_cfun_abi): Likewise.
9567         (ix86_maybe_switch_abi): Adjust comment.
9568         (init_cumulative_args): Check for bit-ness in MS_ABI case.
9569         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9570         instead of checking for SYSV_ABI.
9571         (ix86_nsaved_sseregs): Likewise.
9572         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9573         to 16 bytes.
9574         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9575         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9576         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9577         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9578         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9579
9580 2011-03-25  Richard Guenther  <rguenther@suse.de>
9581
9582         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9583         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9584         (verify_gimple): Remove.
9585         * tree-cfg.c (verify_gimple_call): Merge verification
9586         from verify_stmts.
9587         (verify_gimple_phi): Merge verification from verify_stmts.
9588         (verify_gimple_label): New function.
9589         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9590         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9591         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9592         (verify_stmts): Rename to verify_gimple_in_cfg.
9593         (verify_gimple_in_cfg): New function.
9594         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9595         * tree-ssa.c (verify_ssa): Likewise.
9596         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9597
9598 2011-03-25  Richard Guenther  <rguenther@suse.de>
9599
9600         * passes.c (init_optimization_passes): Add FRE pass after
9601         early SRA.
9602
9603 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
9604             Andrew Stubbs  <ams@codesourcery.com>
9605
9606         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9607         for Cortex-A8.
9608         (arm_movdi_vfp_cortexa8): New pattern.
9609         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9610         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9611         instructions when tuning for Cortex-A8.  Set attribute "arch".
9612         * config/arm/arm.md: Move include arm-tune.md up a bit.
9613         (define_attr "arch"): Add "onlya8" and "nota8" values.
9614         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9615
9616 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9617
9618         PR bootstrap/48282
9619         Revert:
9620         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9621
9622         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9623         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9624         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9625         * passes.c (init_optimization_passes): Move
9626         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9627
9628 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9629
9630         * c-typeck.c (comptypes_internal): Replace target
9631         hook call of comp_type_attributes by version in tree.c file.
9632         * gimple.c (gimple_types_compatible_p_1): Likewise.
9633         * tree-ssa.c (useless_type_conversion_p): Likewise.
9634         * tree.c (build_type_attribute_qual_variant): Likewise.
9635         (attribute_value_equal): New static helper function.
9636         (comp_type_attributes): New function.
9637         (merge_attributes): Use attribute_value_equal for comparison.
9638         (attribute_list_contained): Likewise.
9639         * tree.h (comp_type_attributes): New prototype.
9640
9641 2011-03-25  Richard Guenther  <rguenther@suse.de>
9642
9643         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9644         of complex types at -O0.
9645         (verify_gimple_assign_binary): Likewise.
9646         (verify_gimple_assign_ternary): Likewise.
9647
9648 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9649
9650         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9651         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9652
9653 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9654
9655         PR debug/48041
9656         * dwarf2out.c (output_abbrev_section): Only write table when
9657         abbrev_die_table_in_use > 1.
9658
9659 2011-02-24  Richard Henderson  <rth@redhat.com>
9660
9661         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9662         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9663         (alpha_expand_unaligned_load_words): Use extql.
9664         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9665         (emit_insxl): Handle all modes for consistency.
9666
9667 2011-02-24  Richard Henderson  <rth@redhat.com>
9668
9669         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9670         (alpha_expand_unaligned_load): Likewise.
9671         (alpha_expand_unaligned_store): Likewise.
9672         (alpha_expand_unaligned_load_words): Likewise.
9673         (alpha_expand_unaligned_store_words): Likewise.
9674         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9675         (alpha_split_lock_test_and_set_12): Likewise.
9676         (print_operand, alpha_fold_builtin_extxx): Likewise.
9677         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9678         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9679         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9680         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9681         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9682         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9683         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9684         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9685         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9686         (extwl, extll, extql): Similarly.
9687         (inswh, inslh, insqh): Similarly.
9688         (mskbl, mskwl, mskll, mskql): Similarly.
9689         (mskwh, msklh, mskqh): Similarly.
9690
9691 2011-02-24  Richard Henderson  <rth@redhat.com>
9692
9693         * config/alpha/alpha.md (attribute isa): Add er, ner.
9694         (attribute enabled): Handle them.
9695         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9696
9697 2011-02-24  Richard Henderson  <rth@redhat.com>
9698
9699         * config/alpha/alpha.md (attribute isa): Add vms.
9700         (attribute enabled): Handle it.
9701         (*movsf): Merge *movsf_{nofix,fix,nofp}.
9702         (*movdf): Merge *movdf_{nofix,fix,nofp}.
9703         (*movtf): Rename from *movtf_internal for consistency.
9704         (*movsi): Merge with *movsi_nt_vms.
9705         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9706         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9707         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9708         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9709
9710 2011-02-24  Richard Henderson  <rth@redhat.com>
9711
9712         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9713         (extendqisi2, extendhisi2): Likewise.
9714         (extendqidi2): Simplify BWX/non-BWX expansions.
9715         (extendhidi2): Similarly.
9716
9717 2011-02-24  Richard Henderson  <rth@redhat.com>
9718
9719         * config/alpha/alpha.md (attribute isa): New.
9720         (attribute enabled): New.
9721         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9722         (zero_extendqisi2, zero_extendqidi2): Similarly.
9723         (zero_extendhisi2, zero_extendhidi2): Similarly.
9724         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9725
9726 2011-02-24  Richard Henderson  <rth@redhat.com>
9727
9728         * config/alpha/predicates.md (input_operand): Revert last change;
9729         update comment to mention 32-bit VMS rather than Windows.
9730
9731 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9732
9733         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9734         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9735         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9736         * passes.c (init_optimization_passes): Move
9737         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9738
9739 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9740
9741         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9742
9743 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9744
9745         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9746         correctly.
9747
9748 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
9749
9750         PR debug/48204
9751         * simplify-rtx.c (simplify_const_unary_operation): Call
9752         real_convert when changing mode class with FLOAT_EXTEND.
9753
9754 2011-03-24  Nick Clifton  <nickc@redhat.com>
9755
9756         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9757         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9758         * config/rx/rx.c (rx_option_override): Set align_jumps,
9759         align_loops and align_labels if not set by the user.
9760         (rx_align_for_label): New function.
9761         (rx_max_skip_for_label): New function.
9762         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9763         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9764         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9765         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9766         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9767
9768 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9769
9770         PR rtl-optimization/48263
9771         * optabs.c (expand_binop_directly): Reinstate convert_modes code
9772         and original commutative_p handling.  Use maybe_gen_insn.
9773
9774 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9775
9776         * reload.c (find_reloads_subreg_address): Add address_reloaded
9777         parameter and return true there if the full address has been
9778         reloaded.
9779         (find_reloads_toplev): Pass address_reloaded flag.
9780         (find_reloads_address_1): Don't use address_reloaded parameter.
9781
9782 2011-03-24  Jeff Law  <law@redhat.com>
9783
9784         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9785         unused variable "ann".
9786         (remove_unused_locals): Likewise.
9787
9788         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9789         statement.
9790
9791         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9792         after it is freed.
9793
9794 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9795
9796         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9797         for invalid symbolic addresses.
9798         (s390_secondary_reload): Don't use s390_check_symref_alignment for
9799         larl operands.
9800
9801 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9802
9803         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9804         the argument in calls to fold_truth_not_expr.
9805
9806 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9807
9808         * tree.c (record_node_allocation_statistics): New function.
9809         (make_node_stat, copy_node_stat, build_string): Call it.
9810         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9811         (build1_stat, build_omp_clause): Likewise.
9812
9813 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9814
9815         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9816         last commit.
9817
9818 2011-03-24  Richard Guenther  <rguenther@suse.de>
9819
9820         PR tree-optimization/48271
9821         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9822         blocks that still exist.
9823
9824 2011-03-24  Richard Guenther  <rguenther@suse.de>
9825
9826         PR tree-optimization/48270
9827         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9828         not free datarefs before ddrs.
9829
9830 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9831
9832         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9833         from the address built for a reference with variable offset.
9834
9835 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9836
9837         PR target/48237
9838         * config/i386/i386.md (*movdf_internal_rex64): Do not split
9839         alternatives that can be handled with movq or movabsq insn.
9840         (*movdf_internal): Disable for !TARGET_64BIT.
9841         (*movdf_internal_nointeger): Ditto.
9842         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9843
9844 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9845
9846         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9847         (FUNCTION_ARG_ADVANCE): Likewise.
9848         * tm.texi.in: Change references to them to hook references.
9849         * tm.texi: Regenerate.
9850         * targhooks.c (default_function_arg): Eliminate check for target macro.
9851         (default_function_incoming_arg): Likewise.
9852         (default_function_arg_advance): Likewise.
9853         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9854         (function_arg_advance): Likewise.
9855         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9856
9857 2011-03-24  Richard Guenther  <rguenther@suse.de>
9858
9859         PR middle-end/48269
9860         * tree-object-size.c (addr_object_size): Do not double-account
9861         for MEM_REF offsets.
9862
9863 2011-03-24  Diego Novillo  <dnovillo@google.com>
9864
9865         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9866         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9867         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9868         Update all users.
9869         (lto_input_string): Rename from input_string.  Make extern.
9870         Update all users.
9871         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9872         output_string_with_length.
9873         Output 0 to indicate a non-NULL string.  Update all callers to
9874         not emit 0.
9875         (lto_output_string): Rename from output_string.  Make extern.
9876         Update all users.
9877         (lto_output_decl_state_streams): Make extern.
9878         (lto_output_decl_state_refs): Make extern.
9879         * lto-streamer.h (lto_input_string): Declare.
9880         (lto_input_data_block): Declare.
9881         (lto_output_string): Declare.
9882         (lto_output_string_with_length): Declare.
9883         (lto_output_decl_state_streams): Declare.
9884         (lto_output_decl_state_refs): Declare.
9885
9886 2011-03-24  Richard Guenther  <rguenther@suse.de>
9887
9888         PR tree-optimization/46562
9889         * tree.c (build_invariant_address): New function.
9890         * tree.h (build_invariant_address): Declare.
9891         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9892         a renamed function moved ...
9893         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9894         Take valueization callback parameter.
9895         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9896         * gimple-fold.h: New file.
9897         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9898         (ccp_fold, fold_const_aggregate_ref,
9899         fold_ctor_reference, fold_nonarray_ctor_reference,
9900         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9901         get_base_constructor): Move ...
9902         * gimple-fold.c: ... here.
9903         (gimple_fold_stmt_to_constant_1): New function
9904         split out from ccp_fold.  Take a valueization callback parameter.
9905         Valueize all operands.
9906         (gimple_fold_stmt_to_constant): New wrapper function.
9907         (fold_const_aggregate_ref_1): New function split out from
9908         fold_const_aggregate_ref.  Take a valueization callback parameter.
9909         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9910         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9911         invariant POINTER_PLUS_EXPRs to invariant form.
9912         (vn_valueize): New function.
9913         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9914         * tree-vrp.c (vrp_valueize): New function.
9915         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9916         to fold statements to constants.
9917         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9918         function declarations.
9919         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9920         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9921
9922 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9923
9924         * config/h8300/predicates.md (jump_address_operand): Fix register
9925         mode check.
9926
9927 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9928
9929         * doc/invoke.texi (max-stores-to-sink): Document.
9930         * params.h (MAX_STORES_TO_SINK): Define.
9931         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9932         if either vectorization or if-conversion is disabled.
9933         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9934         tree-vect-data-refs.c vect_equal_offsets.
9935         (dr_equal_offsets_p): New function.
9936         (find_data_references_in_bb): Remove static.
9937         * tree-data-ref.h (find_data_references_in_bb): Declare.
9938         (dr_equal_offsets_p): Likewise.
9939         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9940         (vect_drs_dependent_in_basic_block): Update calls to
9941         vect_equal_offsets.
9942         (vect_check_interleaving): Likewise.
9943         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9944         (cond_if_else_store_replacement): Rename to...
9945         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9946         documentation.
9947         (cond_if_else_store_replacement): New function.
9948         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9949         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9950
9951 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9952
9953         PR target/46934
9954         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9955         to subtract lower bound instead of GEN_INT().
9956
9957 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9958
9959         PR other/48179
9960         PR other/48221
9961         PR other/48234
9962         * doc/extend.texi (Alignment): Move section to match order in TOC.
9963         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9964         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9965
9966 2011-03-23  Jeff Law  <law@redhat.com>
9967
9968         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9969         before removing the edge.
9970
9971         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9972         it may have been freed by redirect_branch_edge or
9973         redirect_edge_succ_nodup.
9974
9975 2011-03-23  Richard Guenther  <rguenther@suse.de>
9976
9977         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
9978         (check_va_list_escapes): Likewise.
9979         (check_all_va_list_escapes): Likewise.
9980
9981 2011-03-23  Richard Guenther  <rguenther@suse.de>
9982
9983         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9984         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9985         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9986         (alias.o): Likewise.
9987         (ipa-type-escape.o): Remove.
9988         (ipa-struct-reorg.o): Likewise.
9989         (GTFILES): Remove ipa-struct-reorg.c.
9990         * alias.c: Do not include ipa-type-escape.h.
9991         * tree-ssa-alias.c: Likewise.
9992         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9993         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9994         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9995         and ipa-type-escape passes.
9996         * tree-pass.h (pass_ipa_type_escape): Remove.
9997         (pass_ipa_struct_reorg): Likewise.
9998         * ipa-struct-reorg.h: Remove.
9999         * ipa-struct-reorg.c: Likewise.
10000         * ipa-type-escape.h: Likewise.
10001         * ipa-type-escape.c: Likewise.
10002         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10003         (--param struct-reorg-cold-struct-ratio): Likewise.
10004         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10005         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10006         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10007
10008 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10009
10010         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10011         cpu attribute value.
10012         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10013         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10014         * config/s390/s390.c (processor_flags_table): New constant array.
10015         (s390_handle_arch_option): Remove.
10016         (s390_handle_option): Remove s390_handle_arch_option invocations
10017         and OPT_mwarn_framesize_ handling.
10018         (s390_option_override): Remove s390_handle_arch_option invocation.
10019         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10020         warnings.
10021         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10022         * config/s390/s390.opt (s390_tune, s390_arch)
10023         (march=): Replace s390_arch_option enum and values with
10024         processor_type.  Set variable name to s390_arch.  Set
10025         initialization value.
10026         (mtune=): Replace s390_arch_option with processor_type.  Set
10027         variable name to s390_tune.  Set initialization value.
10028
10029 2011-03-23  Julian Brown  <julian@codesourcery.com>
10030
10031         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10032         accesses which are not naturally aligned.
10033
10034 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10035
10036         PR target/47553
10037         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10038
10039 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10040
10041         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10042         parameter from "int" to "enum insn_code".
10043         (expand_operand_type): New enum.
10044         (expand_operand): New structure.
10045         (create_expand_operand): New function.
10046         (create_fixed_operand, create_output_operand): Likewise
10047         (create_input_operand, create_convert_operand_to): Likewise.
10048         (create_convert_operand_from, create_address_operand): Likewise.
10049         (create_integer_operand): Likewise.
10050         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10051         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10052         (expand_insn, expand_jump_insn): Likewise.
10053         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10054         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10055         (expand_movstr, expand_builtin___clear_cache): Likewise.
10056         (expand_builtin_lock_release): Likewise.
10057         * explow.c (allocate_dynamic_stack_space): Likewise.
10058         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10059         and use the default handling in that case.
10060         * expmed.c (check_predicate_volatile_ok): Delete.
10061         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10062         (emit_cstore): Likewise.
10063         * expr.c (emit_block_move_via_movmem): Likewise.
10064         (set_storage_via_setmem, expand_assignment): Likewise.
10065         (emit_storent_insn, try_casesi): Likewise.
10066         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10067         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10068         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10069         (expand_twoval_unop, expand_twoval_binop): Likewise.
10070         (expand_unop_direct, emit_indirect_jump): Likewise.
10071         (emit_conditional_move, vector_compare_rtx): Likewise.
10072         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10073         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10074         (expand_sync_lock_test_and_set): Likewise.
10075         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10076         (emit_unop_insn): Likewise.
10077         (expand_copysign_absneg): Change icode to an insn_code.
10078         (create_convert_operand_from_type): New function.
10079         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10080         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10081         (expand_insn, expand_jump_insn): Likewise.
10082         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10083         than const_int_operand for operand 2.
10084
10085 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10086
10087         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10088         if possible.
10089
10090 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10091
10092         * emit-rtl.c (emit_pattern_before_noloc): New function.
10093         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10094         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10095         (emit_pattern_after_noloc): New function.
10096         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10097         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10098
10099 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10100
10101         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10102         (__ffsDI2): Likewise.
10103
10104 2011-03-22  Richard Henderson  <rth@redhat.com>
10105
10106         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10107         of !TARGET_ABI_OPEN_VMS.
10108         (alpha_trampoline_init, alpha_start_function): Likewise.
10109         (alpha_expand_epilogue, alpha_file_start): Likewise.
10110         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10111         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10112         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10113         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10114         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10115
10116 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10117
10118         * config/s390/s390-opts.h: New.
10119         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10120         s390_arch_flags, s390_warn_framesize, s390_stack_size,
10121         s390_stack_guard): Remove.
10122         (s390_handle_arch_option): Return void.  Take enum
10123         s390_arch_option value instead of string and searching array.
10124         (s390_handle_option): Don't assert that global structures are in
10125         use.  Access variables via opts pointer.  Use error_at.  Don't use
10126         sscanf for -mstack-guard= or -mstack-size=.  Update call to
10127         s390_handle_arch_option.
10128         (s390_option_override): Update call to s390_handle_arch_option.
10129         (s390_emit_prologue): Use %d format for s390_stack_size in
10130         diagnostic.  Use %wd for HOST_WIDE_INT.
10131         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10132         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10133         * config/s390/s390.opt (config/s390/s390-opts.h): New
10134         HeaderInclude entry.
10135         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10136         s390_arch_flags, s390_warn_framesize): New Variable entries.
10137         (s390_arch_option): New Enum and EnumValue entries.
10138         (march=): Use Enum instead of Var.
10139         (mstack-guard=, mstack-size=): Use UInteger and Var.
10140         (mtune=): Use Enum.
10141
10142 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10143
10144         * config/score/score.c (score_handle_option): Don't assert that
10145         global structures are in use.  Access target_flags via opts
10146         pointer.  Use value of -march= option to determine target_flags
10147         settings.
10148         * config/score/score.opt (march=): Use Enum.
10149         (score_arch): New Enum and EnumValue entries.
10150
10151 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10152
10153         * config/mep/mep.c (option_mtiny_specified): Remove.
10154         (mep_option_override): Move register handling for -mivc2 from
10155         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10156         instead of option_mtiny_specified.
10157         (mep_handle_option): Access target_flags via opts pointer.  Don't
10158         assert that global structures are in use.  Defer part of -mivc2
10159         handling and move it to mep_option_override.
10160         * config/mep/mep.opt (IVC2): New Mask entry.
10161         (mivc2): Use Var and Defer instead of Mask.
10162
10163 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10164
10165         * config/v850/v850-opts.h: New.
10166         * config/v850/v850.c (small_memory): Replace with
10167         small_memory_physical_max array.  Make that array static const.
10168         (v850_handle_memory_option): Take integer value of argument.  Take
10169         gcc_options pointer, option text and location.  Return void.
10170         Update for changes to small memory structures.
10171         (v850_handle_option): Access target_flags via opts pointer.  Don't
10172         assert that global structures are in use.  Update calls to
10173         v850_handle_memory_option.
10174         (v850_encode_data_area): Update references to small memory settings.
10175         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10176         (enum small_memory_type): Move to v850-opts.h.
10177         * config/v850/v850.opt (config/v850/v850-opts.h): New
10178         HeaderInclude entry.
10179         (small_memory_max): New Variable entry.
10180         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10181         (mtda, mzda): Likewise.
10182
10183 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10184
10185         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10186         pointer.  Don't assert that global structures are in use.
10187
10188 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10189
10190         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10191         via opts pointer.  Don't assert that global structures are in use.
10192
10193 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10194
10195         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10196         (munix=93): Use Var.
10197         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10198         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10199         * config/pa/pa-opts.h: New.
10200         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10201         (pa_handle_option): Don't assert that global structures are in
10202         use.  Access target_flags via opts pointer.  Don't handle
10203         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10204         OPT_munix_98 here.
10205         (pa_option_override): Handle deferred OPT_mfixed_range_.
10206
10207 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10208
10209         * config/mn10300/mn10300-opts.h: New.
10210         * config/mn10300/mn10300.c (mn10300_processor,
10211         mn10300_tune_string): Remove.
10212         (mn10300_handle_option): Don't assert that global structures are
10213         in use.  Access mn10300_processor via opts pointer.  Don't handle
10214         OPT_mtune_ here.
10215         * config/mn10300/mn10300.h (enum processor_type): Move to
10216         mn10300-opts.h.
10217         (mn10300_processor): Remove.
10218         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10219         HeaderInclude entry.
10220         (mn10300_processor): New Variable entry.
10221         (mtune=): Use Var.
10222
10223 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10224
10225         * config/microblaze/microblaze.c: Don't include opts.h.
10226         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10227         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10228         (mno-clearbss): Use Var and Warn.
10229
10230 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10231
10232         * config/m32r/m32r-opts.h: New.
10233         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10234         (m32r_handle_option): Don't assert that global structures are in
10235         use.  Access target_flags and m32r_cache_flush_func via opts
10236         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
10237         OPT_mno_flush_trap here.
10238         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10239         include of m32r-opts.h.
10240         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10241         HeaderInclude entry.
10242         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10243         (mmodel=): Use Enum and Var.
10244         (m32r_model): New Enum and EnumValue entries.
10245         (mno-flush-trap): Use Var.
10246         (msdata=): Use Enum and Var.
10247         (m32r_sdata): New Enum and EnumValue entries.
10248
10249 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10250
10251         * config/m32c/m32c.c: Don't include opts.h.
10252         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10253         m32c_handle_option): Remove.
10254         (m32c_option_override): Check global_options_set.x_target_memregs
10255         instead of target_memregs_set.
10256         * config/m32c/m32c.h (target_memregs): Remove.
10257         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10258         variable.
10259
10260 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10261
10262         * config/iq2000/iq2000-opts.h: New.
10263         * config/iq2000/iq2000.c: Don't include opts.h.
10264         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10265         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10266         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10267         HeaderInclude entry.
10268         (iq2000_tune): New Variable entry.
10269         (march=): Add comment.  Use Enum.
10270         (iq2000_arch): New Enum and EnumValue entries.
10271         (mcpu=): Use Enum and Var.
10272         (iq2000_tune): New Enum and EnumValue entries.
10273
10274 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10275
10276         * config/ia64/ia64-opts.h: New.
10277         * config/ia64/ia64.c (ia64_tune): Remove.
10278         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10279         here.  Use error_at.
10280         (ia64_option_override): Handle deferred OPT_mfixed_range_.
10281         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10282         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10283         HeaderInclude entry.
10284         (ia64_tune): New Variable entry.
10285         (mfixed-range=): Use Defer and Var.
10286         (mtune=): Use Enum and Var.
10287         (ia64_tune): New Enum and EnumValue entries.
10288
10289 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10290
10291         * config/frv/frv-opts.h: New.
10292         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10293         frv-opts.h.
10294         (frv_cpu_type): Remove.
10295         * config/frv/frv.c: Don't include opts.h.
10296         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10297         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10298         (frv_cpu_type): New Variable entry.
10299         (frv_cpu): New Enum and EnumValue entries.
10300
10301 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10302
10303         * config/cris/cris.c (cris_handle_option): Access target_flags via
10304         opts pointer.  Don't assert that global structures are in use.
10305         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10306         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10307
10308 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10309
10310         * config/bfin/bfin-opts.h: New.
10311         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10312         bfin_si_revision, bfin_workarounds): Remove.
10313         (bfin_cpus): Make static const.
10314         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10315         not bfin_lib_id_given.
10316         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
10317         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10318         pointer. Use error_at.  Don't assert that global structures are in use.
10319         * config/bfin/bfin.h: Include bfin-opts.h.
10320         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10321         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10322         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10323         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10324         entries.
10325
10326 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10327
10328         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10329         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10330         or -msoft-float here.
10331         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10332         -msoft-float and -mhard-float.
10333         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10334         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10335         msoft-float.
10336         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10337         -msoft-float.
10338         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10339         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10340         not mhard-float.
10341         (LIBGCC_SPEC): Don't handle -msoft-float.
10342         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10343         -mhard-float.
10344         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10345         msoft-float.
10346         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10347         -mfloat-abi=*, not -msoft-float and -mhard-float.
10348         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10349         -msoft-float.
10350         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10351         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10352         mhard-float and msoft-float.
10353         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10354         mfloat-abi=soft in comments, not mhard-float and msoft-float.
10355         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10356         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10357         mhard-float.
10358         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10359         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10360         msoft-float.
10361         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10362         not mhard-float.
10363         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10364         not msoft-float.
10365
10366 2011-03-22  Richard Henderson  <rth@redhat.com>
10367
10368         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10369         TARGET_ABI_WINDOWS_NT.
10370         (alpha_output_function_end_prologue): Likewise.
10371         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10372         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10373         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10374         (trap, *movsi_nt_vms): Likewise.
10375         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10376         (*tablejump_osf_nt_internal): Remove.
10377         * config/alpha/predicates.md (input_operand): Only test Pmode.
10378
10379 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10380
10381         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10382         via opts pointer.  Use error_at.  Don't assert that global
10383         structures are in use.
10384
10385 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10386
10387         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10388         (ix86_handle_option): Access ix86_isa_flags and
10389         ix86_isa_flags_explicit via opts pointer.  Don't assert that
10390         global structures are in use.
10391         (ix86_function_specific_save, ix86_function_specific_restore):
10392         Update ix86_isa_flags_explicit field name.
10393         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10394         (ix86_isa_flags_explicit): Rename TargetSave entry to
10395         x_ix86_isa_flags_explicit.
10396
10397 2011-03-22  Richard Henderson  <rth@redhat.com>
10398
10399         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10400         (alpha_option_override, direct_return): Likewise.
10401         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10402         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10403         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10404         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10405         (alpha_expand_epilogue, alpha_end_function): Likewise.
10406         (alpha_init_libfuncs): Likewise.
10407         (struct machine_function): Remove unicosmk members.
10408         (print_operand) ['t']: Remove.
10409         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10410         unicosmk_output_module_name, unicosmk_output_common,
10411         current_section_align, unicosmk_output_text_section_asm_op,
10412         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10413         unicosmk_section_type_flags, unicosmk_unique_section,
10414         unicosmk_asm_named_section, unicosmk_insert_attributes,
10415         unicosmk_output_align, unicosmk_defer_case_vector,
10416         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10417         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10418         unicosmk_output_ssib, unicosmk_add_call_info_word,
10419         unicosmk_extern_head, unicosmk_output_default_externs,
10420         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10421         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10422         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10423         * config/alpha/alpha-protos.h: Update.
10424         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10425         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10426         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10427         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10428         (*mulsi_se, mulvsi3): Likewise.
10429         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10430         (*divmodsi_internal, call, call_value, realign): Likewise.
10431         (moddi3, umoddi3): Likewise; remove duplicate expander.
10432         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10433         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10434         (*movdi_nofix): Remove r/U alternative.
10435         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10436         * config/alpha/constraints.md ("U"): Remove.
10437         * config/alpha/predicates.md (call_operand"): Don't test
10438         TARGET_ABI_UNICOSMK.
10439
10440 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10441
10442         * target.def (handle_option): Take gcc_options and
10443         cl_decoded_option pointers and location_t.
10444         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10445         * doc/tm.texi: Regenerate.
10446         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10447         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10448         * lto-opts.c (lto_reissue_options): Generate option structure for
10449         targetm.handle_option call.
10450         * opts.c (target_handle_option): Update call to
10451         targetm.handle_option.  Remove assertions about values now passed
10452         down to hook.
10453         * targhooks.c (default_target_handle_option): New.
10454         * targhooks.h (default_target_handle_option): Declare.
10455         * config/alpha/alpha.c: Include opts.h.
10456         (alpha_handle_option): Update to new hook interface.
10457         * config/arm/arm.c: Include opts.h.
10458         (arm_handle_option): Update to new hook interface.
10459         * config/arm/t-arm (arm.o): Update dependencies.
10460         * config/bfin/bfin.c: Include opts.h.
10461         (bfin_handle_option): Update to new hook interface.
10462         * config/cris/cris.c: Include opts.h.
10463         (cris_handle_option): Update to new hook interface.
10464         * config/frv/frv.c: Include opts.h.
10465         (frv_handle_option): Update to new hook interface.
10466         * config/i386/i386.c: Include opts.h.
10467         (ix86_handle_option): Update to new hook interface.
10468         (ix86_valid_target_attribute_inner_p): Generate option structure
10469         for call to ix86_handle_option.
10470         * config/i386/t-i386 (i386.o): Update dependencies.
10471         * config/ia64/ia64.c: Include opts.h.
10472         (ia64_handle_option): Update to new hook interface.
10473         * config/ia64/t-ia64 (ia64.o): Update dependencies.
10474         * config/iq2000/iq2000.c: Include opts.h.
10475         (iq2000_handle_option): Update to new hook interface.
10476         * config/m32c/m32c.c: Include opts.h.
10477         (m32c_handle_option): Update to new hook interface.
10478         * config/m32r/m32r.c: Include opts.h.
10479         (m32r_handle_option): Update to new hook interface.
10480         * config/m68k/m68k.c: Include opts.h.
10481         (m68k_handle_option): Update to new hook interface.
10482         * config/mep/mep.c: Include opts.h.
10483         (mep_handle_option): Update to new hook interface.
10484         * config/microblaze/microblaze.c: Include opts.h.
10485         (microblaze_handle_option): Update to new hook interface.
10486         * config/mips/mips.c: Include opts.h.
10487         (mips_handle_option): Update to new hook interface.
10488         * config/mn10300/mn10300.c: Include opts.h.
10489         (mn10300_handle_option): Update to new hook interface.
10490         * config/pa/pa.c: Include opts.h.
10491         (pa_handle_option): Update to new hook interface.
10492         * config/pdp11/pdp11.c: Include opts.h.
10493         (pdp11_handle_option): Update to new hook interface.
10494         * config/rs6000/rs6000.c: Include opts.h.
10495         (rs6000_handle_option): Update to new hook interface.
10496         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10497         * config/rx/rx.c: Include opts.h.
10498         (rx_handle_option): Update to new hook interface.
10499         * config/s390/s390.c: Include opts.h.
10500         (s390_handle_option): Update to new hook interface.
10501         * config/score/score.c: Include opts.h.
10502         (score_handle_option): Update to new hook interface.
10503         * config/sh/sh.c: Include opts.h.
10504         (sh_handle_option): Update to new hook interface.
10505         * config/sparc/sparc.c: Include opts.h.
10506         (sparc_handle_option): Update to new hook interface.
10507         * config/v850/v850.c: Include opts.h.
10508         (v850_handle_option): Update to new hook interface.
10509
10510 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10511
10512         * gcc.c (driver_unknown_option_callback): Only permit and save
10513         unknown -Wno- options.
10514         (driver_wrong_lang_callback): Save options directly instead of via
10515         driver_unknown_option_callback.
10516
10517 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10518
10519         * combine.c (simplify_set): Try harder to find the best CC mode when
10520         simplifying a nested COMPARE on the RHS.
10521
10522 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10523
10524         * config/alpha/gnu.h: Remove.
10525         * config/arc: Remove directory.
10526         * config/arm/netbsd.h: Remove.
10527         * config/arm/t-pe: Remove.
10528         * config/crx: Remove directory.
10529         * config/i386/netbsd.h: Remove.
10530         * config/m68hc11: Remove directory.
10531         * config/m68k/uclinux-oldabi.h: Remove.
10532         * config/mcore/mcore-pe.h: Remove.
10533         * config/mcore/t-mcore-pe: Remove.
10534         * config/netbsd-aout.h: Remove.
10535         * config/rs6000/gnu.h: Remove.
10536         * config/sh/sh-symbian.h: Remove.
10537         * config/sh/symbian-base.c: Remove.
10538         * config/sh/symbian-c.c: Remove.
10539         * config/sh/symbian-cxx.c: Remove.
10540         * config/sh/symbian-post.h: Remove.
10541         * config/sh/symbian-pre.h: Remove.
10542         * config/sh/t-symbian: Remove.
10543         * config/svr3.h: Remove.
10544         * config/vax/netbsd.h: Remove.
10545         * config.build: Don't handle i[34567]86-*-pe.
10546         * config.gcc: Remove handling of deprecations for most deprecated
10547         targets.
10548         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10549         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10550         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10551         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10552         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10553         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10554         Remove cases.
10555         * config.host: Don't handle i[34567]86-*-pe.
10556         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10557         (ASM_SPEC32): Don't handle -mcall-gnu.
10558         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10559         -mcall-gnu.
10560         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10561         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10562         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10563         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10564         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10565         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10566         conditional on SYMBIAN.
10567         * configure.ac: Don't handle powerpc*-*-gnu*.
10568         * configure: Regenerate.
10569         * doc/extend.texi (interrupt attribute): Don't mention CRX.
10570         * doc/install-old.texi (m6811, m6812): Don't mention.
10571         * doc/install.texi (arc-*-elf*): Don't document multilib option.
10572         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10573         (m68k-uclinuxoldabi): Don't mention.
10574         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10575         Remove.
10576         (-mcall-gnu): Remove.
10577         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10578         families): Remove constraint documentation.
10579
10580 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
10581
10582         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10583         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10584         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10585
10586 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10587
10588         PR target/48226
10589         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10590         vector when peeking at the next token for vector, don't expand the
10591         keywords.
10592
10593 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
10594
10595         * config/avr/avr-protos.h (expand_epilogue): Change prototype
10596         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10597         * config/avr/avr.c (init_cumulative_args)
10598         (avr_function_arg_advance): Use it.
10599         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10600         sibcall epilogues.
10601         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10602         (avr_function_ok_for_sibcall): ...this new function.
10603         (avr_lookup_function_attribute1): New static Function.
10604         (avr_naked_function_p, interrupt_function_p)
10605         (signal_function_p, avr_OS_task_function_p)
10606         (avr_OS_main_function_p): Use it.
10607         * config/avr/avr.md ("sibcall", "sibcall_value")
10608         ("sibcall_epilogue"): New expander.
10609         ("*call_insn", "*call_value_insn"): New insn.
10610         ("call_insn", "call_value_insn"): Remove
10611         ("call", "call_value", "epilogue"): Change expander to handle
10612         sibling calls.
10613
10614 2011-03-21  Nick Clifton  <nickc@redhat.com>
10615
10616         * doc/invoke.texi (Overall Options): Move closing brace to end of
10617         options list.
10618         (Optimization Options): Add missing @gol.
10619         (Directory Options): Likewise.
10620         (i386 and x86-64 Options): Likewise.
10621         (RS6000 and PowerPC Options): Likewise.
10622         (i386 and x86-64 Windows Options): Likewise.
10623         (V850 Options): Add text missing from descriptions.
10624
10625 2011-03-22  Richard Henderson  <rth@redhat.com>
10626
10627         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10628         (avr_incoming_return_addr_rtx): New.
10629         (emit_push_byte): New.
10630         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
10631         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
10632         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
10633         (emit_pop_byte): New.
10634         (expand_epilogue): Use it.  Pop frame pointer by bytes.
10635         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10636         (INCOMING_RETURN_ADDR_RTX): New.
10637         (INCOMING_FRAME_SP_OFFSET): New.
10638         (ARG_POINTER_CFA_OFFSET): New.
10639         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10640         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10641         (pophi): Remove.
10642
10643         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10644
10645 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10646
10647         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10648         (FUNCTION_ARG_ADVANCE): Likewise.
10649         * tm.texi.in: Change references to them to hook references.
10650         * tm.texi: Regenerate.
10651         * targhooks.c (default_function_arg): Eliminate check for target
10652         macro.
10653         (default_function_incoming_arg): Likewise.
10654         (default_function_arg_advance): Likewise.
10655         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10656         (function_arg_advance): Likewise.
10657         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10658
10659 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10660
10661         * tree.c (build_call_1): New function.
10662         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10663
10664 2011-03-22  Richard Guenther  <rguenther@suse.de>
10665
10666         PR tree-optimization/48228
10667         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10668         for single-arg PHIs.
10669
10670 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
10671
10672         PR rtl-optimization/48143
10673         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10674         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10675         sse2_cvtps2pd): Likewise.
10676
10677 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10678
10679         * recog.c (canonicalize_change_group): Use validate_unshare_change.
10680
10681 2011-03-22  Richard Guenther  <rguenther@suse.de>
10682
10683         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10684         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10685         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10686         and REALIGN_LOAD_EXPR.
10687         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10688         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10689         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10690         DOT_PROD_EXPR case ...
10691         (expand_expr_real_2): ... here.
10692         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10693         and REALIGN_LOAD_EXPR.
10694         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10695         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10696         (vect_create_epilog_for_reduction): Likewise.
10697         (vectorizable_reduction): Likewise.
10698         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10699         * tree-vect-stmts.c (vectorizable_load): Likewise.
10700
10701 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10702
10703         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10704
10705 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10706
10707         * config/s390/s390.c (s390_delegitimize_address): Fix offset
10708         handling for PLTOFF/GOTOFF.
10709
10710 2011-03-22  Nick Clifton  <nickc@redhat.com>
10711
10712         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10713         trailing backslash from the end of the macro definition.
10714
10715 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10716
10717         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10718         and PLT unspecs.
10719
10720 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
10721
10722         * expr.h (prepare_operand): Move to...
10723         * optabs.h (prepare_operand): ...here and change the insn code
10724         parameter from "int" to "enum insn_code".
10725         (insn_operand_matches): Declare.
10726         * expr.c (init_expr_target): Use insn_operand_matches.
10727         (compress_float_constant): Likewise.
10728         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10729         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10730         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10731         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10732         Likewise.
10733         (gen_cond_trap): Likewise.
10734         (prepare_operand): Likewise.  Change icode to an insn_code.
10735         (insn_operand_matches): New function.
10736         * reload.c (find_reloads_address_1): Use insn_operand_matches.
10737         * reload1.c (gen_reload): Likewise.
10738         * targhooks.c (default_secondary_reload): Likewise.
10739
10740 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10741
10742         * config/alpha/alpha.md (unspec): New define_c_enum.
10743         (unspecv): Ditto.
10744
10745 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10746
10747         PR debug/48214
10748         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10749         between a call and its CALL_ARG_LOCATION note.
10750
10751 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
10752
10753         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10754
10755 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10756
10757         PR c/42544
10758         PR c/48197
10759         * c-common.c (shorten_compare): If primopN is first sign-extended
10760         to opN and then zero-extended to result type, set primopN to opN.
10761
10762 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
10763
10764         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10765         for barrier handlers.
10766
10767 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10768
10769         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10770         UNSPEC constants to be in the unspec enumeration, and redefine
10771         all UNSPECV constants to be in the unspecv enumeration, so that
10772         dumps print which unspec/unspec_volatile this is.
10773         * config/rs6000/vector.md (UNSPEC_*): Ditto.
10774         * config/rs6000/paired.md (UNSPEC_*): Ditto.
10775         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10776         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10777         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10778
10779         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10780         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10781         UNSPECV_LWSYNC, since these are used as unspec_volatile.
10782         * config/rs6000/sync.md (isync, lwsync): Ditto.
10783
10784 2011-03-21  Richard Guenther  <rguenther@suse.de>
10785
10786         * params.def (lto-min-partition): Fix typo.
10787
10788 2011-03-21  Richard Guenther  <rguenther@suse.de>
10789
10790         PR c/47939
10791         * c-decl.c (grokdeclarator): Drop to the main variant only
10792         for array types.  Drop flag_gen_aux_info check.
10793
10794 2011-03-21  Richard Guenther  <rguenther@suse.de>
10795
10796         PR translation/47911
10797         * params.def (lto-partitions): Fix typo.
10798         (lto-min-partition): Fix wording.
10799
10800 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
10801
10802         * config/rs6000/t-freebsd: Remove duplication from file.
10803
10804 2011-03-21  Richard Guenther  <rguenther@suse.de>
10805
10806         PR middle-end/47661
10807         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10808
10809 2011-03-21  Richard Guenther  <rguenther@suse.de>
10810
10811         PR lto/48210
10812         * params.def (lto-partitions): Require at least 1 partition.
10813
10814 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10815
10816         * gthr-solaris.h: Remove.
10817         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10818         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10819         (LIB_SPEC): Likewise.
10820         * config/sol2.opt (threads): Remove.
10821         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
10822         (sparc*-*-solaris2*): Likewise.
10823         * configure.ac (enable_threads): Enable solaris support.
10824         * configure: Regenerate.
10825         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
10826         * doc/install.texi (Configuration, --enable-threads=lib): Remove
10827         solaris.
10828
10829 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10830
10831         * config.gcc: Obsolete *-*-solaris2.8*.
10832         * doc/install.texi (Specific, *-*-solaris2*): Document it.
10833
10834 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10835
10836         PR bootstrap/48135
10837         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10838         reference.  Solaris 8 perl works.
10839
10840 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10841
10842         PR bootstrap/48135
10843         * doc/install.texi (Prerequisites): Move jar etc. up.
10844         Explain support library version requirements.
10845
10846 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10847
10848         PR bootstrap/48135
10849         * doc/install.texi (Prerequisites): Move Perl to build
10850         requirements.  Always necessary on Solaris 2 with Sun ld.
10851
10852 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10853
10854         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10855         binutils 2.21.
10856         (Specific, i?86-*-solaris2.[89]): Likewise.
10857         (Specific, i?86-*-solaris2.10): Likewise.
10858         (Specific, mips-sgi-irix6): Likewise.
10859         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10860         Update for binutils 2.21.
10861
10862 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10863
10864         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10865         Allow -fuse-linker-plugin for non-default plugin linker.
10866         * configure: Regenerate.
10867
10868 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10869
10870         PR bootstrap/48167
10871         * gengtype.c (files_rules): Added rule for cp/parser.h.
10872
10873 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10874
10875         PR target/48213
10876         * config/s390/s390.c (s390_delegitimize_address): Don't call
10877         lowpart_subreg if orig_x has BLKmode.
10878
10879 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10880
10881         PR target/12171
10882         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10883         * tree.h (attribute_spec): Add new member affects_type_identity.
10884         * attribs.c (empty_attribute_table): Adjust attribute_spec
10885         initializers.
10886         * config/alpha/alpha.c: Likewise.
10887         * config/arc/arc.c: Likewise.
10888         * config/arm/arm.c: Likewise.
10889         * config/avr/avr.c: Likewise.
10890         * config/bfin/bfin.c: Likewise.
10891         * config/crx/crx.c: Likewise.
10892         * config/darwin.h: Likewise.
10893         * config/h8300/h8300.c: Likewise.
10894         * config/i386/cygming.h: Likewise.
10895         * config/i386/i386.c: Likewise.
10896         * config/ia64/ia64.c: Likewise.
10897         * config/m32c/m32c.c: Likewise.
10898         * config/m32r/m32r.c: Likewise.
10899         * config/m68hc11/m68hc11.c: Likewise.
10900         * config/m68k/m68k.c: Likewise.
10901         * config/mcore/mcore.c: Likewise.
10902         * config/mep/mep.c: Likewise.
10903         * config/microblaze/microblaze.c: Likewise.
10904         * config/mips/mips.c: Likewise.
10905         * config/rs6000/rs6000.c: Likewise.
10906         * config/rx/rx.c: Likewise.
10907         * config/sh/sh.c: Likewise.
10908         * config/sol2.h: Likewise.
10909         * config/sparc/sparc.c: Likewise.
10910         * config/spu/spu.c: Likewise.
10911         * config/stormy16/stormy16.c: Likewise.
10912         * config/v850/v850.c: Likewise.
10913
10914 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10915
10916         * simplify-rtx.c (simplify_binary_operation_1): Handle
10917         (xor (and A B) C) case when B and C are both constants.
10918
10919 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10920
10921         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10922
10923 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10924
10925         PR bootstrap/48168
10926         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10927
10928 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10929
10930         PR rtl-optimization/48156
10931         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10932         assume df and df_lr are not NULL.
10933
10934 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10935
10936         PR debug/48023
10937         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10938         between a call and its CALL_ARG_LOCATION note.
10939
10940 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10941
10942         PR debug/48178
10943         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10944         between a call and its corresponding CALL_ARG_LOCATION note.
10945
10946 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10947
10948         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10949         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10950         * haifa-sched.c (setup_ref_regs): Ditto.
10951         * caller-save.c (add_used_regs_1): Ditto.
10952         * dse.c (look_for_hardregs): Ditto.
10953         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10954         * sched-rgn.c (check_live_1): Ditto.
10955
10956 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10957
10958         * c-decl.c (diagnose_mismatched_decls): Give an error for
10959         redefining a typedef with variably modified type.
10960
10961 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10962
10963         * c-decl.c (grokfield): Don't allow typedefs for structures or
10964         unions with no tag by default.
10965         * doc/extend.texi (Unnamed Fields): Update.
10966
10967 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10968
10969         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10970         Rewrite using indirect functions.
10971         (lwp_slwpcb): Ditto.
10972         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10973         (avx_vinsertf128<mode>): Ditto.
10974
10975 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10976
10977         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10978         unspecs.
10979
10980 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10981
10982         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
10983         splitting between a call and its corresponding CALL_ARG_LOCATION note.
10984
10985 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10986
10987         PR rtl-optimization/48170
10988         * gcse.c (hoist_code): Remove bogus asserts.
10989
10990 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
10991
10992         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10993         computation for prologue/epilogue.
10994
10995 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10996
10997         * Makefile.in (check-consistency): Remove.
10998
10999 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11000
11001         PR debug/48176
11002         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11003         arange_table_in_use is 0, but either text_section_used or
11004         cold_text_section_used is true.  Don't call it if
11005         !info_section_emitted.
11006
11007 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11008
11009         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11010         FUNCTION_VALUE_REGNO_P): Remove.
11011         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11012         Remove.
11013         * config/avr/avr.c (avr_ret_register): Make static inline.
11014         (avr_function_value_regno_p): New function.
11015         (avr_libcall_value): Make static. Add 'func' argument.
11016         (avr_function_value): Make static. Rename 'func' argument to
11017         'fn_decl_or_type', forward it to avr_libcall_value. Call
11018         avr_ret_register function instead of RET_REGISTER macro.
11019         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11020
11021 2011-03-18  Jason Merrill  <jason@redhat.com>
11022
11023         PR c++/23372
11024         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11025
11026 2011-03-18  Richard Guenther  <rguenther@suse.de>
11027
11028         * doc/install.texi (--enable-gold): Remove.
11029         (--with-plugin-ld): Document.
11030         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11031
11032 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11033
11034         PR middle-end/47790
11035         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11036         again after expansion changes.
11037
11038 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11039
11040         * combine.c (try_combine): Do simplification only call of
11041         subst() on i2 even when i1 is present. Update comments.
11042
11043 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11044
11045         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11046         and UNSPEC_PCREL_SYMOFF.
11047
11048 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11049
11050         * config/s390/s390.md: Use define_c_enum for the unspec constant
11051         definitions.
11052
11053 2011-03-18  Richard Henderson  <rth@redhat.com>
11054             Jakub Jelinek  <jakub@redhat.com>
11055
11056         PR bootstrap/48161
11057         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11058         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11059
11060 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11061
11062         PR middle-end/47725
11063         * combine.c (cant_combine_insn_p): Don't check zero/sign
11064         extended hard registers.
11065
11066 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11067
11068         PR middle-end/47725
11069         * combine.c (cant_combine_insn_p): Check zero/sign extended
11070         hard registers.
11071
11072 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11073
11074         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11075         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11076         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11077         Change return type to bool.
11078         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11079
11080 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11081
11082         PR debug/48163
11083         * var-tracking.c (prepare_call_arguments): If CALL target
11084         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11085         pc instead of looking it up using cselib_lookup and use
11086         Pmode for it if x has VOIDmode.
11087         * dwarf2out.c (gen_subprogram_die): If also both first and
11088         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11089
11090         PR debug/48163
11091         * function.c (assign_parms): For data.passed_pointer parms
11092         use MEM of data.entry_parm instead of data.entry_parm itself
11093         as DECL_INCOMING_RTL.
11094         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11095         also when passed and declared mode is the same, DECL_RTL
11096         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11097         a MEM too.
11098
11099 2011-03-16  Jeff Law  <law@redhat.com>
11100
11101         PR rtl-optimization/37273
11102         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11103         handle them like argument loads from stack slots.  Do not double
11104         count memory for memory constants and argument loads from stack slots.
11105
11106 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11107
11108         PR debug/48160
11109         * var-tracking.c (prepare_call_arguments): Check SUBREG.
11110
11111 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11112
11113         PR target/48171
11114         * config/i386/i386.opt: Add Save to -mavx and -mfma.
11115
11116 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11117
11118         PR bootstrap/48153
11119         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11120         if dwarf_strict.
11121         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11122         Clear call_arg_locations and call_arg_loc_last always.
11123
11124         PR middle-end/48152
11125         * var-tracking.c (prepare_call_arguments): If argument needs to be
11126         passed by reference, adjust argtype and mode.
11127
11128 2011-03-17  Richard Guenther  <rguenther@suse.de>
11129
11130         PR middle-end/48134
11131         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11132         a value make sure to fold the statement.
11133
11134 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11135
11136         PR target/43872
11137         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11138         return condition with !cfun->calls_alloca.
11139
11140 2011-03-17  Richard Guenther  <rguenther@suse.de>
11141
11142         PR bootstrap/48148
11143         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11144         origin for decls in other ltrans units.
11145         (input_varpool_node): Likewise.
11146
11147 2011-03-17  Richard Guenther  <rguenther@suse.de>
11148
11149         PR middle-end/48165
11150         * tree-object-size.c (compute_object_offset): Properly return
11151         the offset operand of MEM_REFs as sizetype.
11152
11153 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11154
11155         PR rtl-optimization/48141
11156         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11157         * dse.c: Include params.h.
11158         (active_local_stores_len): New variable.
11159         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11160         to NULL.
11161         (record_store, check_mem_read_rtx): Decrease it when removing
11162         from the chain.
11163         (scan_insn): Likewise.  Increase it when adding to chain, if it
11164         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11165         set active_local_stores to NULL before the addition.
11166         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11167
11168         PR rtl-optimization/48141
11169         * dse.c (record_store): If no positions are needed in an insn
11170         that cannot be deleted, at least unchain it from active_local_stores.
11171
11172 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11173
11174         PR debug/47510
11175         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11176         (lookup_type_die_strip_naming_typedef): ... here.
11177         (get_context_die): Use it.
11178         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11179         the anonymous struct named by the naming typedef.
11180
11181 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11182
11183         PR target/48154
11184         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11185         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11186
11187 2011-03-16  Jeff Law  <law@redhat.com>
11188
11189         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11190         check for operands of conditional.  Allow type to be a pointer.
11191
11192 2011-03-16  Richard Guenther  <rguenther@suse.de>
11193
11194         PR tree-optimization/48149
11195         * fold-const.c (fold_binary_loc): Fold
11196         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11197
11198 2011-03-16  Richard Guenther  <rguenther@suse.de>
11199
11200         PR tree-optimization/26134
11201         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11202         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11203         (non_rewritable_mem_ref_base): Handle complex type component
11204         accesses, constrain offsets for vector and complex extracts
11205         more properly.
11206
11207 2011-03-16  Richard Guenther  <rguenther@suse.de>
11208
11209         PR tree-optimization/48146
11210         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11211         operands avoiding the need for renaming.
11212
11213 2011-03-16  Richard Guenther  <rguenther@suse.de>
11214
11215         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11216         constant folding.  Move MEM_REF canonicalization first.
11217         Rely on fold_const_aggregate_ref for initializer folding.
11218         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11219
11220 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11221
11222         PR middle-end/48136
11223         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11224         arg0/arg1 or their arguments are always fold converted to matching
11225         types.
11226
11227         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11228         to nargs.
11229
11230 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11231
11232         PR lto/46944
11233         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11234         Handle in-tree gold.
11235         (ld_vers): Extract binutils version for gold.
11236         (gcc_cv_ld_hidden): Handle gold here.
11237         (gcc_cv_lto_plugin): Determine level of linker plugin support.
11238         * configure: Regenerate.
11239         * config.in: Regenerate.
11240         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11241         -fuse-linker-plugin otherwise.
11242         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
11243         (LINK_COMMAND_SPEC): Use it.
11244         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11245
11246 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11247
11248         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11249         * calls.c: Remove debug.h include.
11250         (emit_call_1): Don't call virtual_call_token debug hook.
11251         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11252         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11253         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11254         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11255         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11256         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11257         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11258         dwarf2out_virtual_call): Remove.
11259         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11260         copy_call_info and virtual_call hooks.
11261         (dwarf2out_init): Don't initialize vcall_insn_table,
11262         debug_dcall_section and debug_vcall_section.
11263         (prune_unused_types): Don't mark nodes from dcall_table.
11264         (dwarf2out_finish): Don't output dcall or vcall tables.
11265         * final.c (final_scan_insn): Don't call direct_call or
11266         virtual_call debug hooks.
11267         * debug.h (struct gcc_debug_hooks): Remove direct_call,
11268         virtual_call_token, copy_call_info and virtual_call hooks.
11269         (debug_nothing_uid): Remove prototype.
11270         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11271         copy_call_info and virtual_call hooks.
11272         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11273         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11274         * debug.c (do_nothing_debug_hooks): Likewise.
11275         (debug_nothing_uid): Remove.
11276         * doc/invoke.texi (-fenable-icf-debug): Remove.
11277         * common.opt (-fenable-icf-debug): Likewise.
11278
11279         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11280         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11281         call's MEM.  Handle functions returning aggregate through a hidden
11282         first pointer.  For virtual calls add clobbered pc to call arguments
11283         chain.
11284         * dwarf2out.c (gen_subprogram_die): Emit
11285         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11286         can't be emitted.
11287
11288         PR debug/45882
11289         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11290         * rtl.h (ENTRY_VALUE_EXP): Define.
11291         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11292         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11293         * print-rtl.c (print_rtx): Likewise.
11294         * gengtype.c (adjust_field_rtx_def): Likewise.
11295         * var-tracking.c (vt_add_function_parameter): Adjust
11296         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11297         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11298         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11299         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11300         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11301
11302         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11303         Call var_location debug hook even on CALL_INSNs.
11304         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11305         * rtl.def (ENTRY_VALUE): New.
11306         * dwarf2out.c: Include cfglayout.h.
11307         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11308         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11309         (struct call_arg_loc_node): New type.
11310         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11311         tail_call_site_count): New variables.
11312         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11313         DW_TAG_GNU_call_site_parameter.
11314         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11315         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11316         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11317         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11318         and DW_AT_GNU_all_source_call_sites.
11319         (mem_loc_descriptor): Handle ENTRY_VALUE.
11320         (add_src_coords_attributes): Don't add enything if
11321         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11322         (dwarf2out_abstract_function): Save and clear call_arg_location,
11323         call_site_count and tail_call_site_count around dwarf2out_decl call.
11324         (gen_call_site_die): New function.
11325         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11326         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11327         (dwarf2out_function_decl): Clear call_arg_locations,
11328         call_arg_loc_last, set call_site_count and tail_call_site_count
11329         to -1 and free block_map.
11330         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11331         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
11332         followed by any real instructions.
11333         (dwarf2out_begin_function): Set call_site_count and
11334         tail_call_site_count to 0.
11335         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11336         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11337         attempt to force a DIE for it and worst case remove the attribute.
11338         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11339         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11340         the decl itself.
11341         * var-tracking.c: Include tm_p.h.
11342         (vt_stack_adjustments): For calls call note_register_arguments.
11343         (argument_reg_set): New variable.
11344         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11345         ensure the VALUE is resolved.
11346         (call_arguments): New variable.
11347         (prepare_call_arguments): New function.
11348         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11349         (struct expand_loc_callback_data): Add ignore_cur_loc field.
11350         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11351         always use the best expression.
11352         (vt_expand_loc): Add ignore_cur_loc argument.
11353         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11354         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11355         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11356         note for all calls.
11357         (vt_add_function_parameter): Use cselib_lookup_from_insn.
11358         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11359         argument.  Don't call cselib_preserve_only_values and
11360         cselib_reset_table.
11361         (note_register_arguments): New function.
11362         (vt_initialize): Compute argument_reg_set.  Call
11363         vt_add_function_parameters before processing basic blocks instead of
11364         afterwards.  For calls call prepare_call_arguments before calling
11365         cselib_process_insn.
11366         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11367         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11368         (var-tracking.o): Depend on $(TM_P_H).
11369         * cfglayout.h (insn_scope): New prototype.
11370         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11371         * cfglayout.c (insn_scope): No longer static.
11372         * insn-notes.def (CALL_ARG_LOCATION): New.
11373         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11374         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11375         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11376         nothing for DECL_EXTERNAL BLOCK_VARS.
11377
11378 2011-03-16  Alan Modra  <amodra@gmail.com>
11379
11380         PR target/45844
11381         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11382         create invalid offset address for vsx splat insn.
11383         * config/rs6000/predicates.md (splat_input_operand): New.
11384         * config/rs6000/vsx.md (vsx_splat_*): Use it.
11385
11386 2011-03-15  Xinliang David Li  <davidxl@google.com>
11387
11388         PR c/47837
11389         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11390         (normalize_preds): New function.
11391         (is_use_properly_guarded): Normalize def predicates.
11392
11393 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11394
11395         PR target/46788
11396         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11397         in the output template.
11398
11399 2011-03-15  Richard Guenther  <rguenther@suse.de>
11400
11401         PR middle-end/47650
11402         * tree-pretty-print.c (dump_function_declaration): Properly
11403         dump unprototyped and varargs function types.
11404
11405 2011-03-15  Richard Guenther  <rguenther@suse.de>
11406
11407         PR tree-optimization/13954
11408         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11409         and friends.
11410
11411 2011-03-15  Richard Guenther  <rguenther@suse.de>
11412
11413         PR tree-optimization/48037
11414         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11415         selects into BIT_FIELD_REFs.
11416         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11417         vector select.
11418
11419 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
11420
11421         PR tree-optimization/48129
11422         * builtins.c (fold_builtin_snprintf): Convert to type of
11423         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11424         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11425
11426 2011-03-15  Richard Guenther  <rguenther@suse.de>
11427
11428         PR tree-optimization/41490
11429         * tree-ssa-dce.c (propagate_necessity): Handle returns without
11430         value but with VUSE.
11431         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11432         return statements.
11433         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11434         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11435         * tree-tailcall.c (find_tail_calls): Ignore returns.
11436
11437 2011-03-15  Richard Guenther  <rguenther@suse.de>
11438
11439         PR middle-end/48031
11440         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11441         or variable-indexed array accesses when in gimple form.
11442
11443 2011-03-15  Richard Guenther  <rguenther@suse.de>
11444
11445         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11446
11447 2011-03-15  Alan Modra  <amodra@gmail.com>
11448
11449         PR target/48032
11450         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11451         presume symbol_refs without a symbol_ref_decl are suitably
11452         aligned, nor other trees we may see here.  Handle anchor symbols.
11453         (legitimate_constant_pool_address_p): Comment.  Add mode param.
11454         Check cmodel=medium addresses.  Adjust all calls.
11455         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11456         creating cmodel=medium optimized access to locals.
11457         * config/rs6000/constraints.md (R): Pass QImode to
11458         legitimate_constant_pool_address_p.
11459         * config/rs6000/predicates.md (input_operand): Pass mode to
11460         legitimate_constant_pool_address_p.
11461         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11462         Update prototype.
11463
11464 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11465
11466         PR target/48053
11467         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11468         64-bit constants being loaded into registers other than GPRs such
11469         as loading 0 into a VSX register.
11470
11471 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11472
11473         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11474
11475 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11476
11477         PR middle-end/47917
11478         * builtins.c (fold_builtin_snprintf): New function.
11479         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11480         (fold_builtin_4): Likewise.
11481
11482         PR middle-end/38878
11483         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11484         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
11485         and C - X == X also strip nops from +/-/p+ operand.
11486         When optimizing -X == C, fold C to arg0's type.
11487
11488         PR debug/47946
11489         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11490         emit it as add_AT_int instead of add_AT_unsigned.
11491
11492 2011-03-14  Tom Tromey  <tromey@redhat.com>
11493
11494         * unwind-dw2.c: Include sys/sdt.h if it exists.
11495         (_Unwind_DebugHook): Use STAP_PROBE2.
11496         * config.in, configure: Rebuild.
11497         * configure.ac: Check for sys/sdt.h.
11498
11499 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
11500
11501         * config/i386/i386.md (ROUND_FLOOR): New constant.
11502         (ROUND_CEIL): Ditto.
11503         (ROUND_TRUNC): Ditto.
11504         (ROUND_MXCSR): Ditto.
11505         (ROUND_NO_EXC): Ditto.
11506         (rint<mode>2): Use new defines instead of numerical constants.
11507         (floor<mode>2): Ditto.
11508         (ceil<mode>2): Ditto.
11509         (btrunc<mode>2): Ditto.
11510         * config/i386/i386-builtin-types.def: Define ROUND function type
11511         aliases.
11512         * config/i386/i386.c (enum ix86_builtins): Add
11513         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11514         (struct builtin_description): Add
11515         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11516         (ix86_expand_sse_round): New static function.
11517         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11518         function types.
11519         (ix86_builtin_vectorized_function): Handle
11520         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11521
11522 2011-03-14  Tom Tromey  <tromey@redhat.com>
11523
11524         * c-parser.c (c_parser_asm_string_literal): Clear
11525         warn_overlength_strings.
11526
11527 2011-03-14  Tom Tromey  <tromey@redhat.com>
11528
11529         * c-parser.c (disable_extension_diagnostics): Save
11530         warn_overlength_strings.
11531         (restore_extension_diagnostics): Restore warn_overlength_strings.
11532
11533 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11534
11535         * BASE-VER: Change to 4.7.0.
11536
11537 2011-03-14  Richard Guenther  <rguenther@suse.de>
11538
11539         PR middle-end/48098
11540         * tree.c (build_vector_from_val): Adjust assert to requirements
11541         and reality.
11542
11543 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11544
11545         PR bootstrap/48102
11546         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11547
11548 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
11549
11550         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11551         terms of target_flags_explicit. Adjust copyright year.
11552
11553         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11554         * config/rs6000/t-freebsd: New file. Add override for
11555         LIB2FUNCS_EXTRA.
11556
11557 2011-03-13  Chris Demetriou  <cgd@google.com>
11558
11559         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11560         (-fno-diagnostics-show-option): this, to reflect current default.
11561         (-Werror=): Update text about -fno-diagnostics-show-option.
11562
11563 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
11564
11565         PR target/48053
11566         * config/rs6000/predicates.md (easy_vector_constant_add_self,
11567         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11568         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11569         mode is not V2DImode or V2DFmode.
11570         (vspltis_constant): Do not handle V2DImode and V2DFmode.
11571         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11572         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11573         registers to 0.
11574         (movdi_internal64): Likewise.
11575
11576 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
11577
11578         PR tree-optimization/47127
11579         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11580         parameter.
11581         (set_cloog_options): Same.
11582         (scop_to_clast): Same.
11583         (print_clast_stmt): Do not call cloog_state_malloc and
11584         cloog_state_free.
11585         (print_generated_program): Same.
11586         (gloog): Same.
11587         * graphite-clast-to-gimple.h (cloog_state): Declared.
11588         (scop_to_clast): Adjust declaration.
11589         * graphite.c (cloog_state): Defined here.
11590         (graphite_initialize): Call cloog_state_malloc.
11591         (graphite_finalize): Call cloog_state_free.
11592
11593 2011-03-11  Jason Merrill  <jason@redhat.com>
11594
11595         * attribs.c (lookup_attribute_spec): Take const_tree.
11596         * tree.h: Adjust.
11597
11598 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
11599
11600         * config/sparc/sparc.c (sparc_option_override): Use
11601         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11602
11603 2011-03-11  Richard Guenther  <rguenther@suse.de>
11604
11605         PR tree-optimization/48067
11606         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11607         multiplication result will be only used once on the target
11608         stmt.
11609
11610 2011-03-11  Richard Guenther  <rguenther@suse.de>
11611
11612         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11613
11614 2011-03-11  Richard Guenther  <rguenther@suse.de>
11615
11616         PR lto/48073
11617         * tree.c (find_decls_types_r): Do not walk types only reachable
11618         from IDENTIFIER_NODEs.
11619
11620 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11621
11622         PR middle-end/48044
11623         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11624         all vnode->force_output nodes as needed.
11625
11626 2011-03-11  Jason Merrill  <jason@redhat.com>
11627
11628         PR c++/48069
11629         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11630         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11631
11632 2011-03-11  Martin Jambor  <mjambor@suse.cz>
11633
11634         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11635         cgraph_node.
11636
11637 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11638
11639         PR tree-optimization/48063
11640         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11641         inline functions called once if !tree_can_inline_p (node->callers).
11642
11643 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11644
11645         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11646         extra_objs.
11647         * config/score/score3.c: Delete.
11648         * config/score/score3.h: Delete.
11649         * config/score/mul-div.S: Delete.
11650         * config/score/sfp-machine.h: Add new file.
11651         * config/score/constraints.md: Add new file.
11652         * config/score/t-score-softfp: Add new file.
11653         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11654         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11655         (score7_extra_constraint): Delete.
11656         (score7_option_override): Remove unused code.
11657         * config/score/score.c: Remove score3 and score5 define and code.
11658         * config/score/score.h: Remove score3 and score5 define and code.
11659         * config/score/score.md: Remove score3 template and unusual insn.
11660         * config/score/score.opt: Remove score3 and score5 options.
11661
11662 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11663
11664         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11665         when _HPUX_SOURCE is defined.
11666         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11667
11668 2011-03-10  Jason Merrill  <jason@redhat.com>
11669
11670         PR c++/48029
11671         * stor-layout.c (layout_type): Don't set structural equality
11672         on arrays of incomplete type.
11673         * tree.c (type_hash_eq): Handle comparing them properly.
11674
11675 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
11676
11677         PR debug/48043
11678         * config/s390/s390.c (s390_delegitimize_address): Make sure the
11679         result mode matches original rtl mode.
11680
11681 2011-03-10  Nick Clifton  <nickc@redhat.com>
11682
11683         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11684         (andsi3, andsi3_flags): Fix timings for three operand alternative.
11685
11686 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
11687
11688         PR rtl-optimization/47866
11689         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11690         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11691         if target wasn't scalar.
11692         * function.c (assign_stack_temp_for_type): Assert that neither
11693         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11694         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11695         macro.
11696         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11697
11698 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11699
11700         * config/s390/s390-protos.h (s390_label_align): New prototype.
11701         * config/s390/s390.c (s390_label_align): New function.
11702         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11703
11704 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11705
11706         PR target/47755
11707         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11708         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
11709         (output_vec_const_move): Ditto.
11710
11711 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
11712
11713         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11714         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11715         * config/mips/mips.c (mips_preferred_reload_class): Make static.
11716         Change 'rclass' argument and result type to reg_class_t.
11717         (TARGET_PREFERRED_RELOAD_CLASS): Define.
11718
11719 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
11720
11721         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11722         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11723         (TARGET_MEMORY_MOVE_COST): Define.
11724         (avr_register_move_cost, avr_memory_move_cost): New Functions.
11725
11726 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
11727
11728         PR debug/47881
11729         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11730         removed anything.
11731
11732         PR tree-optimization/48022
11733         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11734         for EQ/NE_EXPR.
11735
11736 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
11737
11738         PR debug/47991
11739         * var-tracking.c (find_use_val): Return NULL for
11740         cui->sets && cui->store_p BLKmode MEMs.
11741
11742 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
11743
11744         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11745         Remove.
11746         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11747         xstormy16_print_operand_address): Remove.
11748         * config/stormy16/stormy16.c (xstormy16_print_operand,
11749         xstormy16_print_operand_address): Make static.
11750         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11751
11752 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
11753
11754         PR target/47862
11755         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11756         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11757         before definition.
11758
11759 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
11760
11761         PR bootstrap/48000
11762         * cfgloopmanip.c (fix_bb_placements): Return immediately
11763         if FROM is BASE_LOOP's header.
11764
11765 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
11766
11767         * gimplify.c (gimplify_function_tree): Fix building calls
11768         to __builtin_return_address.
11769
11770 2011-03-07  Alan Modra  <amodra@gmail.com>
11771
11772         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11773         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11774         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11775         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11776         return_mode args.
11777         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11778         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11779         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11780         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11781         * config/rs6000/rs6000.c
11782         (rs6000_elf_end_indicate_exec_stack): Rename to..
11783         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
11784         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
11785         (rs6000_file_start): ..here.
11786         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11787         file scope variables.
11788         (call_ABI_of_interest): New function.
11789         (init_cumulative_args): Set above vars when function return value
11790         is a float, vector, or small struct.
11791         (rs6000_function_arg_advance_1): Likewise for function args.
11792         (rs6000_va_start): Set rs6000_passes_float if variable arg function
11793         references float args.
11794
11795 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
11796
11797         * doc/cfg.texi: Remove "See" before @ref.
11798         * doc/invoke.texi: Likewise.
11799
11800 2011-03-05  Jason Merrill  <jason@redhat.com>
11801
11802         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11803
11804 2011-03-05  Anthony Green  <green@moxielogic.com>
11805
11806         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11807
11808 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
11809
11810         PR rtl-optimization/47899
11811         * cfgloopmanip.c (fix_bb_placements): Fix first argument
11812         to flow_loop_nested_p when moving the loop upward.
11813
11814 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
11815
11816         PR target/47719
11817         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
11818
11819 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
11820
11821         PR tree-optimization/47967
11822         * ipa-cp.c (build_const_val): Return NULL instead of creating
11823         VIEW_CONVERT_EXPR for mismatching sizes.
11824         (ipcp_create_replace_map): Return NULL if build_const_val failed.
11825         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11826         give up on versioning.
11827
11828 2011-03-05  Alan Modra  <amodra@gmail.com>
11829
11830         PR target/47986
11831         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11832         full cmodel medium/large lo_sum + high addresses.
11833
11834 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11835
11836         * config/s390/s390.c (s390_decompose_address): Reject non-literal
11837         pool references in UNSPEC_LTREL_OFFSET.
11838
11839 2011-03-04  Jan Hubicka  <jh@suse.cz>
11840
11841         PR lto/47497
11842         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11843         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
11844         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11845         Add node pointers.
11846         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11847         cgraph_add_thunk): Add node pointers.
11848         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11849         associated to right node.
11850         (input_node): Update use of cgraph_same_body_alias
11851         and cgraph_add_thunk.
11852
11853 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11854
11855         * config/i386/i386.opt (mprefer-avx128): New flag.
11856         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11857         modes when the flag -mprefer-avx128 is on.
11858
11859 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11860
11861         * dwarf2out.c (compare_loc_operands): Fix address handling.
11862
11863 2011-03-04  Alan Modra  <amodra@gmail.com>
11864
11865         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11866
11867 2011-03-04  Richard Guenther  <rguenther@suse.de>
11868
11869         PR middle-end/47968
11870         * expmed.c (extract_bit_field_1): Prefer vector modes that
11871         vec_extract patterns can handle.
11872
11873 2011-03-04  Richard Guenther  <rguenther@suse.de>
11874
11875         PR middle-end/47975
11876         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11877
11878 2011-03-04  Richard Henderson  <rth@redhat.com>
11879
11880         * explow.c (emit_stack_save): Remove 'after' parameter.
11881         (emit_stack_restore): Likewise.
11882         * expr.h: Update to match.
11883         * builtins.c, calls.c, stmt.c: Likewise.
11884         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11885         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11886         * function.c (expand_function_end): Insert the emit_stack_save
11887         sequence before parm_birth_insn instead of after.
11888
11889 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11890
11891         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11892         (ssse3_pmaddubsw128): Ditto.
11893         (ssse3_pmaddubsw): Ditto.
11894
11895 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11896
11897         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11898
11899 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11900
11901         PR c/47963
11902         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11903         on TYPE_SIZE_UNIT if it is a DECL.
11904
11905         PR debug/47283
11906         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11907         first operand is not is_gimple_mem_ref_addr, try to fold it.
11908         If the operand still isn't is_gimple_mem_ref_addr, clear
11909         MEM_EXPR on op0.
11910
11911 2011-03-03  Richard Guenther  <rguenther@suse.de>
11912
11913         PR middle-end/47283
11914         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11915         match comment.
11916         (refs_may_alias_p_1): For release branches return true if
11917         we are confused by our input.
11918
11919 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11920
11921         * config/s390/s390.c (s390_function_value): Rename to ...
11922         (s390_function_and_libcall_value): ... this.
11923         (s390_function_value): New function.
11924         (s390_libcall_value): New function.
11925         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11926         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11927         target macro definitions.
11928         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11929
11930 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11931
11932         * config/i386/freebsd64.h (CC1_SPEC): Define.
11933         * config/i386/linux64.h (CC1_SPEC): Define.
11934         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11935
11936 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11937
11938         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11939         Remove.
11940         * config/stormy16/stormy16.c: Include reload.h.
11941         (xstormy16_memory_move_cost): New function.
11942         (TARGET_MEMORY_MOVE_COST): Define.
11943
11944 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11945
11946         PR rtl-optimization/47925
11947         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11948         with side effects.  Remove the more-specific check for volatile asms.
11949
11950 2011-03-02  Alan Modra  <amodra@gmail.com>
11951
11952         PR target/47935
11953         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11954         toc relative addresses for valid offsets.
11955
11956 2011-03-01  Richard Guenther  <rguenther@suse.de>
11957
11958         PR tree-optimization/47890
11959         * tree-vect-loop.c (get_initial_def_for_induction): Set
11960         related stmt properly.
11961
11962 2011-03-01  Richard Guenther  <rguenther@suse.de>
11963
11964         PR lto/47924
11965         * lto-streamer.c (lto_record_common_node): Also register
11966         the canonical type.
11967
11968 2011-03-01  Richard Guenther  <rguenther@suse.de>
11969
11970         PR lto/46911
11971         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11972         Do not stream DECL_ABSTRACT_ORIGIN.
11973         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11974         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11975         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11976         Do not stream DECL_ABSTRACT_ORIGIN.
11977         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11978         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11979
11980 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
11981
11982         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11983         FUNCTION_VALUE_REGNO_P): Remove.
11984         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
11985         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11986         Add 'outgoing' argument.
11987         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11988         function.
11989         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11990         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11991
11992 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
11993
11994         PR debug/28047
11995         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11996         (lookup_filename): Likewise.
11997         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
11998
11999 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12000             Jakub Jelinek  <jakub@redhat.com>
12001
12002         PR middle-end/47893
12003         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12004         (assign_stack_local_1): Change last argument type to int.
12005         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12006         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12007         don't record padding space into frame_space_list nor use those areas.
12008         (assign_stack_local): Adjust caller.
12009         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12010         of assign_stack_local, pass 0 as last argument.
12011         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12012         callers.
12013
12014 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12015
12016         PR debug/47283
12017         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12018         Use target address_mode and pointer_mode hooks instead of hardcoded
12019         Pmode and ptr_mode.  Handle some simple cases of extending if
12020         POINTERS_EXTEND_UNSIGNED < 0.
12021         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12022         Call convert_debug_memory_address.
12023         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12024         convert_debug_memory_address.
12025
12026         PR middle-end/46790
12027         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12028         * configure: Regenerated.
12029         * config.in: Regenerated.
12030         * varasm.c (default_function_section): Return NULL
12031         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12032
12033 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12034
12035         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12036         the description to match the printed values.
12037
12038 2011-02-28  Richard Guenther  <rguenther@suse.de>
12039
12040         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12041         of the copied scope tree.
12042
12043 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12044
12045         * doc/extend.texi (Function Attributes): Avoid deeply (and
12046         wrongly) nested tables.
12047
12048 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12049
12050         PR middle-end/47903
12051         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12052         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12053         r isn't op0 nor op1.
12054
12055 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12056
12057         * config/avr/avr.md: Remove magic comment for emacs.
12058
12059 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12060
12061         PR target/45261
12062         * config/avr/avr.c (avr_option_override): Use error on bad options.
12063         (avr_help): New function.
12064         (TARGET_HELP): Define.
12065
12066 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12067
12068         PR target/42240
12069         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12070         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12071
12072 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12073
12074         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12075         (ARM Options): Ditto.
12076         (i386 and x86-64 Options): Ditto.
12077         (RX Options): Ditto.
12078         (SPARC Options): Ditto.
12079
12080 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12081
12082         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12083         FreeBSD 6 and later.  Generally use cpu generic.
12084
12085 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12086
12087         * doc/cpp.texi: Update copyright years.
12088
12089 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12090
12091         PR target/46898
12092         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12093
12094 2011-02-25  Jon Beniston  <jon@beniston.com>
12095
12096         PR target/46898
12097         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12098         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12099         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12100         (lm32_block_move_inline): Add type cast to remove warning.
12101         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12102         (gen_int_relational): Move declarations to start of function.
12103
12104 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12105
12106         PR tree-optimization/45470
12107         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12108         can throw internally only.
12109         * tree-vect-stmts.c (vectorizable_call): Likewise.
12110
12111 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
12112
12113         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12114         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12115         * config/stormy16/stormy16-protos.h
12116         (xstormy16_preferred_reload_class): Remove.
12117         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12118         static. Change 'rclass' argument and return type to reg_class_t.
12119         (TARGET_PREFERRED_RELOAD_CLASS,
12120         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12121
12122 2011-02-24  Richard Guenther  <rguenther@suse.de>
12123
12124         * lto-streamer-in.c (input_bb): Do not find referenced vars
12125         in debug statements.
12126
12127 2011-02-23  Jason Merrill  <jason@redhat.com>
12128
12129         * common.opt (fabi-version): Document v5 and v6.
12130
12131 2011-02-23  Richard Guenther  <rguenther@suse.de>
12132
12133         PR tree-optimization/47849
12134         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12135
12136 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12137
12138         * opts-common.c (decode_cmdline_option): Print empty string
12139         argument as "" in decoded->orig_option_with_args_text.
12140         * gcc.c (execute): Print empty string argument as ""
12141         in the verbose output.
12142         (do_spec_1): Keep empty string argument.
12143
12144 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12145
12146         * config.gcc: Declare score-* and crx-* obsolete.
12147
12148 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12149
12150         PR rtl-optimization/47763
12151         * web.c (web_main): Ignore naked clobber when replacing register.
12152
12153 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12154
12155         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12156         Remove.
12157
12158 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12159
12160         PR doc/47848
12161         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12162
12163 2011-02-22  Mike Stump  <mikestump@comcast.net>
12164
12165         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12166         assembler.
12167         * configure: Regenerate.
12168
12169 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12170
12171         PR rtl-optimization/46002
12172         * ira-color.c (update_copy_costs): Change class intersection
12173         test to reg_class_contents[] test of 'hard_regno'.
12174
12175 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12176
12177         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12178         than Driver option.
12179         * config/hpux11.opt (mt): Likewise.
12180         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12181         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12182         * config/vax/elf.opt (mno-asm-pic): Likewise.
12183         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12184
12185 2011-02-21  Mike Stump  <mikestump@comcast.net>
12186
12187         PR target/47822
12188         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12189         tree so we can get save the type.
12190         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12191         for CFString instead of trying to use past the end of the builtins.
12192         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12193         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12194         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12195         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12196         Rename to darwin_builtin_cfstring.
12197         (darwin_init_cfstring_builtins): Return the built type.
12198
12199 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12200
12201         PR target/47840
12202         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12203         (_mm256_insert_epi64): Use _mm_insert_epi64.
12204
12205 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12206
12207         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12208         * config/stormy16/stormy16-protos.h
12209         (xstormy16_mode_dependent_address_p): Remove.
12210         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12211         Make static. Change return type to bool. Change argument type to
12212         const_rtx. Remove dead code.
12213         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12214
12215 2011-02-21  Richard Guenther  <rguenther@suse.de>
12216
12217         PR lto/47820
12218         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12219         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12220         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12221         TUs context.
12222         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12223         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12224
12225 2011-02-20  Richard Guenther  <rguenther@suse.de>
12226
12227         PR lto/47822
12228         * tree.c (free_lang_data_in_decl): Clean builtins from
12229         the TU decl BLOCK_VARS.
12230
12231 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
12232
12233         PR debug/47620
12234         PR debug/47630
12235         * haifa-sched.c (fix_tick_ready): Skip tick computation
12236         for debug insns.
12237
12238 2011-02-19  Richard Guenther  <rguenther@suse.de>
12239
12240         PR lto/47647
12241         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12242         Remove lazy BLOCK_VARS streaming.
12243         (lto_input_ts_block_tree_pointers): Likewise.
12244         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12245
12246 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12247
12248         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12249
12250 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12251
12252         * config/i386/biarch32.h, config/i386/mach.h,
12253         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12254
12255 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
12256
12257         PR target/47800
12258         * config/i386/i386.md (peephole2 for shift and plus): Use
12259         operands[1] original mode in the first insn.
12260
12261 2011-02-18  Mike Stump  <mikestump@comcast.net>
12262
12263         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12264
12265 2011-02-18  Jan Hubicka  <jh@suse.cz>
12266
12267         PR middle-end/47788
12268         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12269         to zero when the function is not inlinable at all.
12270
12271 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12272
12273         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12274         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12275         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12276         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12277         * config/pa/t-pa64: Likewise.
12278         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12279
12280 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12281
12282         PR driver/47787
12283         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12284
12285 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12286
12287         PR target/47792
12288         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12289
12290 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
12291
12292         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12293         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12294         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12295         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12296         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12297         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12298         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12299         m32r_load_postinc_p, m32r_store_preinc_predec_p,
12300         m32r_legitimate_address_p): New functions.
12301         * config/m32r/constraints.md (constraint "S"): Don't use
12302         STORE_PREINC_PREDEC_P.
12303         (constraint "U"): Don't use LOAD_POSTINC_P.
12304
12305 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
12306
12307         PR rtl-optimization/46178
12308         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12309         compute ira_hard_regno_cover_class[].
12310
12311 2011-02-18  Richard Guenther  <rguenther@suse.de>
12312
12313         PR lto/47798
12314         * lto-streamer.h (lto_global_var_decls): Declare.
12315         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12316         statics for global var processing.
12317
12318 2011-02-18  Richard Guenther  <rguenther@suse.de>
12319
12320         PR tree-optimization/47737
12321         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12322         edge dominance check.
12323
12324 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12325
12326         PR debug/47780
12327         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12328         avoid invalid rtx sharing.
12329
12330 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
12331
12332         * doc/cpp.texi (Obsolete Features): Add background on the
12333         origin of assertions.
12334
12335 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
12336
12337         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12338         objc_abi == 2.
12339         * config/darwin.c (output_objc_section_asm_op): Added support for
12340         ABI v1 and v2.
12341         (is_objc_metadata): New.
12342         (darwin_objc2_section): New.
12343         (darwin_objc1_section): New.
12344         (machopic_select_section): Added support for ABI v1 and v2.
12345         (darwin_emit_objc_zeroed): New.
12346         (darwin_output_aligned_bss): Detect objc metadata and treat it
12347         appropriately.
12348         (darwin_asm_output_aligned_decl_common): Same.
12349         (darwin_asm_output_aligned_decl_local): Same.
12350         * config/darwin-sections.def: Updated for ABI v1 and v2.
12351         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12352         compiling Objective-C code for the NeXT runtime, default to using
12353         ABI version 0 for 32-bit, and version 2 for 64-bit.
12354
12355 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12356
12357         * common.opt (optimize_fast): New Variable.
12358         * opts.c (default_options_optimization): Use opts->x_optimize_fast
12359         instead of local variable ofast.
12360
12361 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
12362
12363         * doc/invoke.texi (fobjc-abi-version): Documented.
12364         (fobjc-nilcheck): Documented.
12365         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12366         version.
12367
12368 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12369
12370         PR driver/47390
12371         * common.opt (export-dynamic): New Driver option.
12372         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12373
12374 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12375
12376         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12377
12378 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
12379             Jan Hubicka  <jh@suse.cz>
12380
12381         PR debug/47106
12382         PR debug/47402
12383         * cfgexpand.c (account_used_vars_for_block): Remove.
12384         (estimated_stack_frame_size): Use referenced vars.
12385         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12386         that were referenced in the original function.  Test src_fn
12387         rather than cfun.  Drop redundant get_var_ann.
12388         (setup_one_parameter): Drop redundant get_var_ann.
12389         (declare_return_variable): Likewise.
12390         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12391         (copy_arguments_for_versioning): Drop redundant get_var_ann.
12392         * ipa-inline.c (compute_inline_parameters): Do not compute
12393         disregard_inline_limits here.
12394         (compute_inlinable_for_current, pass_inlinable): New.
12395         (pass_inline_parameters): Require PROP_referenced_vars.
12396         * cgraphunit.c (cgraph_process_new_functions): Don't run
12397         compute_inline_parameters explicitly unless function is in SSA form.
12398         (cgraph_analyze_function): Set .disregard_inline_limits.
12399         * tree-sra.c (convert_callers): Compute inliner parameters
12400         only for functions already in SSA form.
12401
12402 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12403
12404         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12405         -mlittle-endian-data.
12406
12407 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12408
12409         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12410         -mno-fpu, not -fpu and -no-fpu.
12411         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12412         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12413
12414 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
12415
12416         PR target/43653
12417         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12418         input reload with PLUS RTX.
12419
12420 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12421
12422         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12423         of InverseVar(MDMX).
12424
12425 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12426
12427         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12428         --m4-340.
12429
12430 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12431
12432         * config/mn10300/mn10300.opt (mno-crt0): New.
12433
12434 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12435
12436         * config/m68k/uclinux.opt (static-libc): New Driver option.
12437
12438 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12439
12440         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12441
12442 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12443
12444         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12445         %{muser-extend-enabled}.
12446
12447 2011-02-16  Richard Guenther  <rguenther@suse.de>
12448
12449         PR tree-optimization/47738
12450         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12451         the TODO from tree_predictive_commoning.
12452
12453 2011-02-15  Jeff Law  <law@redhat.com>
12454
12455         Revert
12456         2011-01-25  Jeff Law  <law@redhat.com>
12457
12458         PR rtl-optimization/37273
12459         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12460         handle them like argument loads from stack slots.  Do not double
12461         count memory for memory constants and argument loads from stack slots.
12462
12463 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12464
12465         PR middle-end/47725
12466         * combine.c (cant_combine_insn_p): Revert the last change.
12467
12468 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
12469
12470         PR target/47755
12471         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12472         mode for vector constants.  Remove code that checks for TImode.
12473
12474 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12475
12476         PR debug/47106
12477         PR debug/47402
12478         * cgraph.h (compute_inline_parameters): Return void.
12479         * ipa-inline.c (compute_inline_parameters): Adjust.
12480
12481 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12482
12483         PR debug/47106
12484         PR debug/47402
12485         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12486         rather than decl.
12487         * cfgexpand.c (estimated_stack_frame_size): Likewise.
12488         * ipa-inline.c (compute_inline_parameters): Adjust.
12489
12490 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12491
12492         PR debug/47106
12493         PR debug/47402
12494         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12495         Adjust all users.  Pass FN to...
12496         * tree-flow-inline.h (first_referenced_var): ... this.  Add
12497         fn argument.
12498         * ipa-struct-reorg.c: Adjust.
12499         * tree-dfa.c: Adjust.
12500         * tree-into-ssa.c: Adjust.
12501         * tree-sra.c: Adjust.
12502         * tree-ssa-alias.c: Adjust.
12503         * tree-ssa-live.c: Adjust.
12504         * tree-ssa.c: Adjust.
12505         * tree-ssanames.c: Adjust.
12506         * tree-tailcall.c: Adjust.
12507
12508 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12509
12510         PR debug/47106
12511         PR debug/47402
12512         * tree-flow.h (referenced_var_lookup): Add fn parameter.
12513         Adjust all callers.
12514         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12515         * tree-flow-inline.h: Adjust.
12516         * gimple-pretty-print.c: Adjust.
12517         * tree-into-ssa.c: Adjust.
12518         * tree-ssa.c: Adjust.
12519         * cfgexpand.c: Adjust.
12520
12521 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12522
12523         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12524         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12525         (EXTRA_CONSTRAINT): Delete.
12526         * config/iq2000/constraints.md: New file.
12527         * config/iq2000/iq2000.md: Include it.
12528         (define_insn ""): Delete.
12529         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12530         unsupported constraint letters from patterns.
12531         (call_value, call_value_internal1): Likewise.
12532         (call_value_multiple_internal1): Likewise.
12533
12534 2011-02-15  Nick Clifton  <nickc@redhat.com>
12535
12536         * config/mn10300/mn10300.c: Include tm-constrs.h.
12537         (struct liw_data): New data structure describing an LIW candidate
12538         instruction.
12539         (extract_bundle): Use struct liw_data.  Allow small integer
12540         operands for some instructions.
12541         (check_liw_constraints): Use struct liw_data.  Remove swapped
12542         parameter.  Add comments describing the checks.  Fix bug when
12543         assigning the source of liw1 to the source of liw2.
12544         (liw_candidate): Delete.  Code moved into extract_bundle.
12545         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
12546         before swapping.
12547         * config/mn10300/predicates.md (liw_operand): New predicate.
12548         Allows registers and small integer constants.
12549         * config/mn10300/constraints.md (O): New constraint.  Accetps
12550         integers in the range -8 to +7 inclusive.
12551         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12552         for moving a small integer into a register.  Give this alternative
12553         LIW attributes.
12554         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12555         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12556         using the J,K,L and M constraints,
12557         (liw): Remove SI mode on second operands to allow for HI and QI
12558         mode values.
12559         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
12560         instruction.
12561
12562 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12563
12564         PR middle-end/47725
12565         * combine.c (cant_combine_insn_p): Check zero/sign extended
12566         hard registers.
12567
12568 2011-02-15  Richard Guenther  <rguenther@suse.de>
12569
12570         PR tree-optimization/47743
12571         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12572         for a non-type-compatible VN lookup bail out.
12573
12574 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12575
12576         * config/fr30/constraints.md: New file.
12577         * config/fr30/fr30.md: Include it.
12578         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12579         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12580         (EXTRA_CONSTRAINT): Delete.
12581
12582 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12583
12584         * config/frv/constraints.md: New file.
12585         * config/frv/predicates.md: Include it.
12586         * config/frv/frv.c (reg_class_from_letter): Delete.
12587         (frv_option_override): Don't initialize it.
12588         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12589         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12590         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12591         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12592         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12593         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12594         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12595         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12596         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12597         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12598         (REG_CLASS_FROM_CONSTRAINT): Delete.
12599
12600 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
12601
12602         PR middle-end/47581
12603         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12604         if frame size is 0 in a leaf function.
12605
12606 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12607
12608         PR pch/14940
12609         * config/alpha/host-osf.c: New file.
12610         * config/alpha/x-osf: New file.
12611         * config.host (alpha*-dec-osf*): Use it.
12612
12613 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12614
12615         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12616         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12617         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12618         (rx_mode_dependent_address_p): ...this. Make static. Change argument
12619         type to const_rtx.
12620         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12621
12622 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12623
12624         * config/stormy16/constraints.md: New file.
12625         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12626         Use satisfies_constraint_Q and satisfies_constraint_R.
12627         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12628         Delete.
12629         (xstormy16_legitiamte_address_p): Declare.
12630         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12631         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12632         (EXTRA_CONSTRAINT): Delete.
12633         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12634         Un-staticize.
12635         (xstormy16_extra_constraint_p): Delete.
12636
12637 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12638
12639         PR tree-optimization/46494
12640         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12641         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12642         (pass_rtl_loop_done): Add TODO_verify_flow.
12643         * fwprop.c (pass_rtl_fwprop): Likewise.
12644         * modulo-sched.c (pass_sms): Likewise.
12645         * tree-ssa-dom.c (pass_dominator): Likewise.
12646         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12647         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12648         (pass_tree_loop_done): Likewise.
12649         * tree-ssa-pre.c (execute_pre): Likewise.
12650         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12651         * tree-ssa-sink.c (pass_sink_code): Likewise.
12652         * tree-vrp.c (pass_vrp): Likewise.
12653
12654 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12655
12656         * config/v850/constraints.md: New file.
12657         * config/v850/v850.md: Include it.
12658         * config/v850/predicates.md (reg_or_0_operand): Use
12659         satisfies_constraint_G.
12660         (special_symbolref_operand): Use satisfies_constraint_K.
12661         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12662         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12663         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12664         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12665         (EXTRA_CONSTRAINT): Delete.
12666         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12667         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12668         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12669
12670 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12671
12672         PR target/47696
12673         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12674         description.
12675
12676 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12677
12678         * config/mcore/constraints.md: New file.
12679         * config/mcore/mcore.md: Include it.
12680         * config/mcore/mcore.c (reg_class_from_letter): Delete.
12681         * config/mcore/mcore.h (reg_class_from_letter): Delete.
12682         (REG_CLASS_FROM_LETTER): Delete.
12683         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12684         insn_const_int_ok_for_constraint.
12685         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12686         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12687         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12688         (EXTRA_CONSTRAINT): Delete.
12689
12690 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12691
12692         PR ada/41929
12693         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12694         (IS_SIGHANDLER): Define.
12695         (sparc64_is_sighandler): New function, split off from
12696         sparc64_fallback_frame_state.
12697         (sparc_is_sighandler): New function, split off from
12698         sparc_fallback_frame_state.
12699         (sparc64_fallback_frame_state): Merge with ...
12700         (sparc_fallback_frame_state): ... this into ...
12701         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12702         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
12703         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
12704         stack instead of hardcoded offsets.
12705
12706 2011-02-14  Andriy Gapon  <avg@freebsd.org>
12707
12708         PR target/45808
12709         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12710
12711 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12712
12713         * configure: Regenerate.
12714
12715 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
12716
12717         PR driver/45731
12718         * gcc.c (asm_options): Correct spec matching --target-help.
12719
12720 2011-02-12  Martin Jambor  <mjambor@suse.cz>
12721
12722         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12723         to gimple call error.
12724
12725 2011-02-12  Mike Stump  <mikestump@comcast.net>
12726
12727         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12728         comments in backslash regions.
12729
12730 2011-02-12  Mike Stump  <mikestump@comcast.net>
12731             Jakub Jelinek  <jakub@redhat.com>
12732             Iain Sandoe  <iains@gcc.gnu.org>
12733
12734         PR target/47324
12735         * dwarf2out.c (output_cfa_loc): When required, apply the
12736         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12737         (output_loc_sequence): Likewise.
12738         (output_loc_operands_raw): Likewise.
12739         (output_loc_sequence_raw): Likewise.
12740         (output_cfa_loc): Likewise.
12741         (output_loc_list): Suppress register number adjustment when
12742         calling output_loc_sequence()
12743         (output_die): Likewise.
12744
12745 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
12746
12747         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12748         Remove macros.
12749         * config/xtensa/xtensa.c (xtensa_register_move_cost,
12750         xtensa_memory_move_cost): New functions.
12751         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12752
12753 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
12754
12755         PR lto/47225
12756         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12757         in the current directory.
12758         * configure: Rebuilt.
12759
12760 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12761
12762         * config/darwin.c (darwin_override_options): Add a hunk missed
12763         from the commit of r168571.  Trim comment line lengths and
12764         correct indents of the preceding block.
12765
12766 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12767
12768         * gcc.c (driver_handle_option): Concatenate the argument to -F with
12769         the switch.
12770
12771 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12772
12773         * common.opt (nostartfiles): New Driver option.
12774
12775 2011-02-11  Xinliang David Li  <davidxl@google.com>
12776
12777         PR tree-optimization/47707
12778         * tree-chrec.c (convert_affine_scev): Keep type precision.
12779
12780 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12781
12782         PR tree-optimization/47420
12783         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12784
12785 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
12786
12787         PR rtl-optimization/47614
12788         * rtl.h (check_for_inc_dec): Declare.
12789         * dse.c (check_for_inc_dec): Externalize...
12790         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12791         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12792
12793 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12794
12795         PR driver/47678
12796         * gcc.c (main): Do not compile inputs if there were errors in
12797         option handling.
12798         * opts-common.c (read_cmdline_option): Check for wrong language
12799         after other error checks.
12800
12801 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
12802
12803         * cgraph.c: Fix comment typos.
12804         * cgraph.h: Likewise.
12805         * cgraphunit.c: Likewise.
12806         * ipa-cp.c: Likewise.
12807         * ipa-inline.c: Likewise.
12808         * ipa-prop.c: Likewise.
12809         * ipa-pure-const.c: Likewise.
12810         * ipa-ref.c: Likewise.
12811         * ipa-reference.c: Likewise.
12812
12813 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
12814
12815         PR debug/47684
12816         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
12817
12818 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12819
12820         PR testsuite/47400
12821         * doc/sourcebuild.texi (Require Support): Document
12822         dg-require-ascii-locale.
12823
12824 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
12825
12826         * doc/lto.texi (Write summary): Fix missing parentheses.
12827
12828 2011-02-10  DJ Delorie  <dj@redhat.com>
12829
12830         * config/m32c/m32c.c (m32c_option_override): Disable
12831         -fcombine-stack-adjustments until flag value tracking and compare
12832         optimization can be rewritten.
12833
12834 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
12835
12836         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12837         PROCESSOR_POWER7.
12838         (PROCESSOR_DEFAULT64): Likewise.
12839
12840 2011-02-10  Richard Henderson  <rth@redhat.com>
12841
12842         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12843         change from 2011-02-03.
12844         * config/rx/rx.c (flags_from_code): Likewise.
12845         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12846         is valid, n/pz otherwise.
12847         (rx_select_cc_mode): Return CCmode if Y is not zero.
12848
12849 2011-02-10  Richard Guenther  <rguenther@suse.de>
12850
12851         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
12852
12853 2011-02-10  Richard Guenther  <rguenther@suse.de>
12854
12855         PR tree-optimization/47677
12856         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12857
12858 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12859
12860         PR target/47665
12861         * combine.c (make_compound_operation): Only change shifts into
12862         multiplication for SCALAR_INT_MODE_P.
12863
12864 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12865
12866         PR testsuite/47622
12867         Revert
12868         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12869         PR debug/42631
12870         * web.c (entry_register): Don't clobber the number of the
12871         first uninitialized reference in used[].
12872
12873 2011-02-09  Richard Guenther  <rguenther@suse.de>
12874
12875         PR tree-optimization/47664
12876         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12877         all edges again.
12878
12879 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12880
12881         PR target/46481
12882         PR target/47032
12883         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12884         PROCESSOR_POWER7.
12885         (PROCESSOR_DEFAULT64): Same.
12886         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12887
12888 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12889
12890         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12891
12892 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12893
12894         PR middle-end/45505
12895         * tree-sra.c (struct access): New flags grp_scalar_read and
12896         grp_scalar_write.  Changed description of assignment read and write
12897         flags.
12898         (dump_access): Dump new flags, reorder all of them.
12899         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12900         to detect multiple scalar reads.
12901         (analyze_access_subtree): Use the new scalar read write flags instead
12902         of the old flags.  Adjusted comments.
12903
12904 2011-02-08  DJ Delorie  <dj@redhat.com>
12905
12906         PR target/47548
12907         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12908         patterns.
12909
12910 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12911
12912         * config/m68k/uclinux.opt: New.
12913         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12914
12915 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12916
12917         * config/cris/elf.opt (sim): New Driver option.
12918
12919 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12920
12921         * config/xtensa/elf.opt: New.
12922         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12923
12924 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12925
12926         * config/vax/elf.opt: New.
12927         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12928
12929 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12930
12931         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12932
12933 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12934
12935         * config/gnu-user.opt: New.
12936         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12937         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12938         *-*-uclinux*): Use gnu-user.opt.
12939
12940 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12941
12942         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12943         * config/i386/gnu.h (CPP_SPEC): Likewise.
12944
12945 2011-02-08  Ian Lance Taylor  <iant@google.com>
12946
12947         * common.opt (fcx-limited-range): Add SetByCombined flag.
12948         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12949         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12950         (fassociative-math, freciprocal-math): Likewise.
12951         (funsafe-math-optimizations): Likewise.
12952         * opth-gen.awk: Handle SetByCombined.
12953         * optc-gen.awk: Likewise.
12954         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12955         (set_unsafe_math_optimizations_flags): Likewise.
12956         * doc/options.texi (Option properties): Document SetByCombined.
12957
12958 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12959
12960         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12961         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12962         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12963         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12964         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12965
12966 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12967
12968         PR tree-optimization/46834
12969         PR tree-optimization/46994
12970         PR tree-optimization/46995
12971         * graphite-sese-to-poly.c (used_outside_reduction): New.
12972         (detect_commutative_reduction): Call used_outside_reduction.
12973         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12974         translate_scalar_reduction_to_array only when at least one
12975         loop-phi/close-phi tuple has been detected.
12976
12977 2011-02-08  Richard Guenther  <rguenther@suse.de>
12978
12979         PR middle-end/47639
12980         * tree-vect-generic.c (expand_vector_operations_1): Update
12981         stmts here ...
12982         (expand_vector_operations): ... not here.  Cleanup EH info
12983         and the CFG if required.
12984
12985 2011-02-08  Richard Guenther  <rguenther@suse.de>
12986
12987         PR tree-optimization/47641
12988         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12989         require type compatibility.
12990
12991 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12992
12993         * gimple-low.c (lower_function_body): Don't remove the location of
12994         the return statement here.
12995         (lower_gimple_return): Do it here instead but only if the return
12996         statement is actually used twice.
12997
12998 2011-02-08  Richard Guenther  <rguenther@suse.de>
12999
13000         PR tree-optimization/47632
13001         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13002         unused up_to_stmt parameter, return whether cfg-cleanup is
13003         necessary, remove EH info properly.
13004         (forward_propagate_into_gimple_cond): Adjust caller.
13005         (forward_propagate_into_cond): Likewise.
13006         (forward_propagate_comparison): Likewise.
13007         (tree_ssa_forward_propagate_single_use_vars): Make
13008         forward_propagate_comparison case similar to the two others.
13009
13010 2011-02-08  Nick Clifton  <nickc@redhat.com>
13011
13012         * config/mn10300/mn10300.opt (mliw): New command line option.
13013         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13014         (liw_bundling): New automaton.
13015         (liw): New attribute.
13016         (liw_op): New attribute.
13017         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13018         (movsi_internal): Add LIW attributes.
13019         (andsi3): Likewise.
13020         (iorsi3): Likewise.
13021         (xorsi3): Likewise.
13022         (addsi3): Separate register and immediate alternatives.
13023         Add LIW attributes.
13024         (subsi3): Likewise.
13025         (cmpsi): Likewise.
13026         (aslsi3): Likewise.
13027         (lshrsi3): Likewise.
13028         (ashrsi3): Likewise.
13029         (liw): New pattern.
13030         * config/mn10300/mn10300.c (liw_op_names): New
13031         (mn10300_print_operand): Handle 'W' operand descriptor.
13032         (extract_bundle): New function.
13033         (check_liw_constraints): New function.
13034         (liw_candidate): New function.
13035         (mn10300_bundle_liw): New function.
13036         (mn10300_reorg): New function.
13037         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13038         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13039         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13040         __LIW__ or __NO_LIW__.
13041         * doc/invoke.texi: Describe the -mliw command line option.
13042
13043 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13044
13045         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13046         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13047         pthread_mutex_unlock): Remove.
13048         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13049         * config/pa/t-pa64: Likewise.
13050         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13051         shared libc if not linking against libpthread.
13052         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13053
13054 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13055
13056         PR target/47558
13057         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13058         on 10.6 and later to ensure that we always use the unwinder from
13059         the system.  Only add -no_compact_unwind when tarteting darwin
13060         10.6 or later.
13061
13062 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13063
13064         PR target/46997
13065         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13066         (vec_interleave_lowv2sf): Ditto.
13067         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13068         (vec_extract_oddv2sf): Ditto.
13069
13070 2011-02-07  Mike Stump  <mikestump@comcast.net>
13071
13072         PR target/42333
13073         Add __ieee_divdc3 entry point.
13074         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13075         entry point.
13076         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13077         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13078         * config/darwin.c (darwin_rename_builtins): Add.
13079         * config/darwin-protos.h (darwin_rename_builtins): Add.
13080
13081 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13082
13083         PR target/47636
13084         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13085         for the condition.
13086
13087 2011-02-07  Mike Stump  <mikestump@comcast.net>
13088
13089         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13090
13091 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13092
13093         PR target/47534
13094         * config/avr/libgcc.S (exit): Move .endfunc
13095
13096 2011-02-07  Richard Guenther  <rguenther@suse.de>
13097
13098         PR tree-optimization/47615
13099         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13100         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13101         (run_scc_vn): Initialize it.
13102         (visit_reference_op_load): Use it.
13103         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13104
13105 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13106
13107         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13108         DImode trapping arithmetic libfuncs.
13109
13110 2011-02-07  Richard Guenther  <rguenther@suse.de>
13111
13112         PR tree-optimization/47621
13113         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13114         two duplicates ...
13115         (execute_update_addresses_taken): ... here.  Make it more
13116         conservative in what we accept.
13117
13118 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13119
13120         * config/sparc/freebsd.h (ASM_SPEC): Define.
13121         * config/sparc/vxworks.h (ASM_SPEC): Define.
13122
13123 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13124
13125         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13126
13127 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
13128
13129         * doc/invoke.texi: Remove reference to compiler internals from
13130         user documentation.
13131
13132         * reg-notes.def: Remove REG_VALUE_PROFILE.
13133         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13134
13135 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13136
13137         PR middle-end/47610
13138         * varasm.c (default_section_type_flags): If decl is NULL,
13139         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13140
13141 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13142
13143         PR debug/42631
13144         * web.c (entry_register): Don't clobber the number of the
13145         first uninitialized reference in used[].
13146
13147 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13148
13149         PR tree-optimization/46194
13150         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13151         (build_classic_dist_vector_1): Do not represent classic distance
13152         vectors when the access functions are variating in different loops.
13153
13154 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13155
13156         * config/mips/iris6.opt: New.
13157         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13158
13159 2011-02-04  Richard Henderson  <rth@redhat.com>
13160             Steve Ellcey  <sje@cup.hp.com>
13161
13162         PR target/46997
13163         * config/ia64/predicates.md (mux1_brcst_element): New.
13164         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13165         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13166         (ia64_unpack_sign): New.
13167         (ia64_expand_unpack): Rewrite using new routines.
13168         (ia64_expand_widen_sum): Ditto.
13169         (ia64_expand_dot_prod_v8qi): Ditto.
13170         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13171         routines, add endian check.
13172         (pmpy2_even): Rename from pmpy2_r, add endian check.
13173         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13174         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13175         (vec_widen_smult_hi_v4hi): Ditto.
13176         (vec_widen_umult_lo_v4hi): Ditto.
13177         (vec_widen_umult_hi_v4hi): Ditto.
13178         (mulv2si3): Change endian checks.
13179         (sdot_prodv4hi): Rewrite with new calls.
13180         (udot_prodv4hi): New.
13181         (vec_pack_ssat_v4hi): Add endian check.
13182         (vec_pack_usat_v4hi): Ditto.
13183         (vec_pack_ssat_v2si): Ditto.
13184         (max1_even): Rename from max1_r, add endian check.
13185         (max1_odd): Rename from max1_l, add endian check.
13186         (*mux1_rev): Format change.
13187         (*mux1_mix): Ditto.
13188         (*mux1_shuf): Ditto.
13189         (*mux1_alt): Ditto.
13190         (*mux1_brcst_v8qi): Use new predicate.
13191         (vec_extract_evenv8qi): Remove endian check.
13192         (vec_extract_oddv8qi): Ditto.
13193         (vec_interleave_lowv4hi): Format change.
13194         (vec_interleave_highv4hi): Ditto.
13195         (mix2_even): Rename from mix2_r, add endian check.
13196         (mix2_odd): Rename from mux2_l, add endian check.
13197         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13198         (vec_extract_evenodd_helper): Format change.
13199         (vec_extract_evenv4hi): Remove endian check.
13200         (vec_extract_oddv4hi): Remove endian check.
13201         (vec_interleave_lowv2si): Format change.
13202         (vec_interleave_highv2si): Format change.
13203         (vec_initv2si): Remove endian check.
13204         (vecinit_v2si): Add endian check.
13205         (reduc_splus_v2sf): Add endian check.
13206         (reduc_smax_v2sf): Ditto.
13207         (reduc_smin_v2sf): Ditto.
13208         (vec_initv2sf): Remove endian check.
13209         (fpack): Add endian check.
13210         (fswap): Add endian check.
13211         (vec_interleave_highv2sf): Add endian check.
13212         (vec_interleave_lowv2sf): Add endian check.
13213         (fmix_lr): Add endian check.
13214         (vec_setv2sf): Format change.
13215         (*vec_extractv2sf_0_be): Use shift to extract operand.
13216         (*vec_extractv2sf_1_be): New.
13217         (vec_pack_trunc_v4hi): Add endian check.
13218         (vec_pack_trunc_v2si): Format change.
13219
13220 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13221
13222         PR inline-asm/23200
13223         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13224         do bb, locus and block comparison and disallow loads if it is not set.
13225         (stmt_is_replaceable_p): New function.
13226         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13227         callers.
13228         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13229         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13230         SSA_NAME_DEF_STMT.
13231         * tree-flow.h (stmt_is_replaceable_p): New prototype.
13232
13233 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13234
13235         * config/rs6000/xilinx.opt: New.
13236         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13237
13238 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13239
13240         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13241
13242 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
13243
13244         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13245         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13246         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13247         secondary_reload_info, xtensa_secondary_reload): Remove.
13248         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13249         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13250         (xtensa_preferred_reload_class): Make static. Change return and
13251         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13252         Use CONST_DOUBLE_P predicate.
13253         (xtensa_preferred_output_reload_class): New function.
13254         (xtensa_secondary_reload): Make static.
13255
13256 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
13257
13258         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13259         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13260         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13261
13262 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13263
13264         PR middle-end/31490
13265         * output.h (SECTION_RELRO): Define.
13266         (SECTION_MACH_DEP): Adjust.
13267         (get_variable_section): New prototype.
13268         * varpool.c (varpool_finalize_named_section_flags): New function.
13269         (varpool_assemble_pending_decls): Call it.
13270         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13271         * cgraphunit.c (cgraph_output_in_order): Call
13272         varpool_finalize_named_section_flags.
13273         * varasm.c (get_section): Allow section flags conflicts between
13274         relro and read-only sections if the section hasn't been declared yet.
13275         Set SECTION_OVERRIDE after diagnosing section type conflict.
13276         (get_variable_section): No longer static.
13277         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13278         readonly sections that need relocations.
13279         (decl_readonly_section_1): New function.
13280         (decl_readonly_section): Use it.
13281
13282         Revert:
13283         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
13284                     Steve Ellcey  <sje@cup.hp.com>
13285
13286         PR middle-end/31490
13287         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13288         if section attribute used.
13289
13290 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13291
13292         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13293         * config/darwin.c (SECTION_NO_ANCHOR): Define.
13294         (darwin_init_sections): Remove assertion.
13295
13296 2011-02-03  Nick Clifton  <nickc@redhat.com>
13297
13298         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13299         lt and ge.
13300         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13301         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13302         instead of "n" and "pz".
13303         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13304         CC_FLAG_S.
13305
13306 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13307
13308         PR target/47312
13309         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13310         fma, expand FMA_EXPR as fma{,f,l} call.
13311
13312         PR lto/47274
13313         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13314         copy them into a unsigned char variable and pass address of it to
13315         lto_output_data_stream.
13316
13317         PR target/47564
13318         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13319         around backend_init_target and lang_dependent_init_target calls.
13320         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13321         (verify_cgraph_node): Don't call set_cfun here.  Use
13322         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13323         Set error_found for incorrectly represented calls to thunks.
13324
13325 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13326
13327         PR debug/43092
13328         PR rtl-optimization/43494
13329         * rtl.h (for_each_inc_dec_fn): New type.
13330         (for_each_inc_dec): Declare.
13331         * rtlanal.c (struct for_each_inc_dec_ops): New type.
13332         (for_each_inc_dec_find_inc_dec): New fn.
13333         (for_each_inc_dec_find_mem): New fn.
13334         (for_each_inc_dec): New fn.
13335         * dse.c (struct insn_size): Remove.
13336         (replace_inc_dec, replace_inc_dec_mem): Remove.
13337         (emit_inc_dec_insn_before): New fn.
13338         (check_for_inc_dec): Use it, along with for_each_inc_dec.
13339         (canon_address): Pass mem modes to cselib_lookup.
13340         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
13341         (cselib_lookup_from_insn): Likewise.
13342         (cselib_subst_to_values): Likewise.
13343         * cselib.c (find_slot_memmode): New var.
13344         (cselib_find_slot): New fn.  Use it instead of
13345         htab_find_slot_with_hash everywhere.
13346         (entry_and_rtx_equal_p): Use find_slot_memmode.
13347         (autoinc_split): New fn.
13348         (rtx_equal_for_cselib_p): Rename and implement in terms of...
13349         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
13350         Deal with autoinc.  Special-case recursion into MEMs.
13351         (cselib_hash_rtx): Likewise.
13352         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
13353         address and MEM modes.
13354         (cselib_subst_to_values): Add memmode, pass it on.
13355         Deal with autoinc.
13356         (cselib_lookup): Add memmode argument, pass it on.
13357         (cselib_lookup_from_insn): Add memmode.
13358         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13359         (struct cselib_record_autoinc_data): New.
13360         (cselib_record_autoinc_cb): New fn.
13361         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
13362         mode to cselib_lookup.  Reset autoinced REGs here instead of...
13363         (cselib_process_insn): ... here.
13364         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13365         to cselib_lookup.
13366         (add_uses): Likewise, also to cselib_subst_to_values.
13367         (add_stores): Likewise.
13368         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
13369         cselib_subst_to_values.
13370         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
13371         * gcse.c (do_local_cprop): Adjusted.
13372         * postreload.c (reload_cse_simplify_set): Adjusted.
13373         (reload_cse_simplify_operands): Adjusted.
13374         * sel-sched-dump (debug_mem_addr_value): Pass mode.
13375
13376 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13377
13378         PR tree-optimization/45122
13379         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13380         unsafe assumptions when there's more than one loop exit.
13381
13382 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13383
13384         PR target/47272
13385         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13386         Document using vector double with the load/store builtins, and
13387         that the load/store builtins always use Altivec instructions.
13388
13389         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13390         to use altivec memory instructions, even on VSX.
13391         (vector_altivec_store_<mode>): Ditto.
13392
13393         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13394         function.
13395
13396         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13397         V2DF, V2DI support to load/store overloaded builtins.
13398
13399         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13400         altivec load/store builtins for V2DF/V2DI types.
13401
13402         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13403         set avoid indexed addresses on power6 if -maltivec.
13404         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13405         vector_altivec_load/vector_altivec_store builtins.
13406         (altivec_expand_st_builtin): Ditto.
13407         (altivec_expand_builtin): Add VSX memory builtins.
13408         (rs6000_init_builtins): Add V2DI types to internal types.
13409         (altivec_init_builtins): Add support for V2DF/V2DI altivec
13410         load/store builtins.
13411         (rs6000_address_for_altivec): Insure memory address is appropriate
13412         for Altivec.
13413
13414         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13415         vec_vsx_ld and vec_vsx_st.
13416         (vsx_store_<mode>): Ditto.
13417
13418         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13419         variables to hold long long types for VSX vector memory builtins.
13420         (RS6000_BTI_unsigned_long_long): Ditto.
13421         (long_long_integer_type_internal_node): Ditti.
13422         (long_long_unsigned_type_internal_node): Ditti.
13423
13424         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13425         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13426         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13427
13428         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13429         short cuts.
13430         (vec_vsx_st): Ditto.
13431
13432 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13433
13434         * config/pa/pa-hpux10.opt: New.
13435         * config/hpux11.opt (pthread): New Driver option.
13436         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13437         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13438
13439 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13440
13441         * config/ia64/vms.opt: New.
13442         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13443
13444 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13445
13446         PR target/47580
13447         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13448         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13449         generator functions.
13450         (vsx_floatuns<VSi><mode>2): Ditto.
13451         (vsx_fix_trunc<mode><VSi>2): Ditto.
13452         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13453
13454 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13455
13456         * config/i386/djgpp.opt (posix): New Driver option.
13457
13458 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13459
13460         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13461         Move to the unsupported targets list.
13462
13463 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
13464
13465         PR rtl-optimization/47525
13466         * df-scan.c: Update copyright years.
13467         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13468         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13469
13470 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13471
13472         * config/i386/sysv4.h (TARGET_VERSION): Remove.
13473         (SUBTARGET_RETURN_IN_MEMORY): Remove.
13474         (ASM_OUTPUT_ASCII): Remove.
13475         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13476
13477 2011-02-02  Jeff Law  <law@redhat.com>
13478
13479         PR middle-end/47543
13480         * reload.c (find_reloads_address): Handle reg+d address where both
13481         components are invalid by reloading the entire address.
13482
13483 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13484             Richard Guenther  <rguenther@suse.de>
13485
13486         PR tree-optimization/40979
13487         PR bootstrap/47044
13488         * passes.c (init_optimization_passes): After LIM call copy_prop
13489         and DCE to clean up.
13490         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13491
13492 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13493
13494         PR tree-optimization/47576
13495         PR tree-optimization/47555
13496         * doc/invoke.texi (scev-max-expr-complexity): Documented.
13497         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13498         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13499         * tree-scalar-evolution.c (follow_ssa_edge): Use
13500         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13501
13502 2011-02-02  Richard Guenther  <rguenther@suse.de>
13503
13504         PR tree-optimization/47566
13505         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13506
13507 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13508
13509         PR debug/47106
13510         PR debug/47402
13511         * tree-inline.c (declare_return_variable): Remove unused caller
13512         variable.
13513
13514         PR debug/47106
13515         PR debug/47402
13516         * tree-flow-inline.h (clear_is_used, is_used_p): New.
13517         * cfgexpand.c (account_used_vars_for_block): Use them.
13518         * tree-nrv.c (tree_nrv): Likewise.
13519         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13520         (dump_scope_block): Likewise.
13521         (remove_unused_locals): Likewise.
13522
13523         PR debug/47106
13524         PR debug/47402
13525         * tree-inline.c (declare_return_variable): Add result decl to
13526         local decls only once.
13527         * gimple-low.c (record_vars_into): Mark newly-created variables
13528         as referenced.
13529
13530 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13531
13532         PR debug/47498
13533         PR debug/47501
13534         PR debug/45136
13535         PR debug/45130
13536         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13537         debug insns.
13538         (no_real_insns_p, schedule_block, set_priorities): Drop special
13539         treatment of boundary debug insns.
13540         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13541         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13542         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13543         (BOUNDARY_DEBUG_INSN_P): Likewise.
13544         (SCHEDULE_DEBUG_INSN_P): Likewise.
13545         * sched-rgn.c (init_ready_list): Drop special treatment of
13546         boundary debug insns.
13547         * final.c (rest_of_clean_state): Clear notes' BB.
13548
13549 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13550
13551         * config/openbsd.opt (assert=): New Driver option.
13552
13553 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13554
13555         * config/i386/nto.opt: New.
13556         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13557
13558 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13559
13560         * config/i386/netware.opt: New.
13561         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13562
13563 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13564
13565         * config/interix.opt (posix): New Driver option.
13566
13567 2011-02-01  DJ Delorie  <dj@redhat.com>
13568
13569         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13570
13571         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13572         class for A0/A1.
13573
13574 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
13575
13576         PR tree-optimization/47561
13577         * toplev.c (process_options): Print the Graphite flags.  Add
13578         flag_loop_flatten to the list of options requiring Graphite.
13579
13580 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13581
13582         * config/i386/cygming.opt (posix): New Driver option.
13583
13584 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13585
13586         * config/arm/vxworks.opt: New.
13587         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13588
13589 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13590
13591         * config/alpha/elf.opt: New.
13592         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13593         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13594
13595 2011-02-01  Richard Guenther  <rguenther@suse.de>
13596
13597         PR tree-optimization/47559
13598         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13599         store-motion on references that can throw.
13600
13601 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
13602
13603         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13604         * tree-pass.h (TDF_CSELIB): New macro.
13605         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13606         cselib_lookup): Check for it rather than for TDF_DETAILS.
13607
13608 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
13609
13610         PR driver/47547
13611         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13612         is HOST_BIT_BUCKET.
13613
13614         * opts.c (finish_options): Don't add x_aux_base_name if it is
13615         HOST_BIT_BUCKET.
13616
13617 2011-02-01  Richard Guenther  <rguenther@suse.de>
13618
13619         PR tree-optimization/47555
13620         Revert
13621         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
13622
13623         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13624
13625 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
13626
13627         PR gcc/46692
13628         * config/lm32/t-lm32: Add multilib for all CPU options.
13629
13630 2011-02-01  Richard Guenther  <rguenther@suse.de>
13631
13632         PR tree-optimization/47541
13633         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13634         sure to have a field at offset zero.
13635
13636 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13637
13638         * config/arc/arc.opt (EB, EL): New Driver options.
13639
13640 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13641
13642         * config/alpha/osf5.opt: New.
13643         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13644
13645 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13646
13647         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13648
13649 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13650
13651         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13652         -floop-interchange.
13653         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13654         is an alias of -floop-interchange and that it requires the
13655         Graphite infrastructure.
13656         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13657         flag_loop_interchange based on the value of flag_tree_loop_linear.
13658
13659 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13660             Richard Guenther  <rguenther@suse.de>
13661
13662         PR tree-optimization/47538
13663         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13664         type instead of r1type, except for comparisons.  For right
13665         shifts and comparisons punt if there are mismatches in
13666         sizetype vs. non-sizetype types.
13667
13668 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13669
13670         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13671         avx_runtime.
13672
13673 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13674
13675         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13676         version number.
13677         * configure: Regenerate.
13678
13679 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13680
13681         * configure.ac (gcc_cv_ld_static_option): Define.
13682         (gcc_cv_ld_dynamic_option): Define.
13683         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13684         instead.
13685         (HAVE_LD_STATIC_DYNAMIC): Update message.
13686         (LD_STATIC_OPTION): Define.
13687         (LD_DYNAMIC_OPTION): Define.
13688         * configure: Regenerate.
13689         * config.in: Regenerate.
13690         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13691         HAVE_LD_STATIC_DYNAMIC]: Use them.
13692
13693 2011-01-31  Nick Clifton  <nickc@redhat.com>
13694
13695         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13696         registers inside interrupt handlers if the handler is not a leaf
13697         function.
13698
13699 2011-01-31  Nick Clifton  <nickc@redhat.com>
13700
13701         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13702         reg_renumber returning an INVALID_REGNUM.
13703
13704 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13705
13706         PR libgcj/44341
13707         * doc/install.texi: Document host options discarded when cross
13708         configuring target libraries.
13709
13710 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13711
13712         Reverted:
13713         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13714         PR debug/45136
13715         PR debug/45130
13716         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13717         debug insns.
13718         (no_real_insns_p, schedule_block, set_priorities): Drop special
13719         treatment of boundary debug insns.
13720         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13721         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13722         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13723         (BOUNDARY_DEBUG_INSN_P): Likewise.
13724         (SCHEDULE_DEBUG_INSN_P): Likewise.
13725         * sched-rgn.c (init_ready_list): Drop special treatment of
13726         boundary debug insns.
13727         * final.c (rest_of_clean-state): Clear notes' BB.
13728
13729 2011-01-31  Alan Modra  <amodra@gmail.com>
13730
13731         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13732         toc relative expressions as we do in print_operand_address.
13733
13734 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
13735
13736         * doc/extend.texi: Follow spelling conventions.
13737         * doc/invoke.texi: Fix a typo.
13738
13739 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
13740
13741         * config/hpux11.opt: New.
13742         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13743         ia64*-*-hpux*): Use hpux11.opt.
13744
13745 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
13746
13747         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13748         to tmake_file.
13749
13750 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13751
13752         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13753         support sites.
13754
13755 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13756
13757         * doc/install.texi (Binaries): Remove outdated reference for
13758         Motorola 68HC11/68HC12 downloads.
13759
13760 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13761
13762         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13763         Drepper's paper.
13764
13765 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
13766
13767         PR bootstrap/47147
13768         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13769         used by NetBSD.
13770
13771 2011-01-28  Ahmad Sharif  <asharif@google.com>
13772
13773         * value-prof.c (check_counter): Corrected error message.
13774
13775 2011-01-29  Jie Zhang  <jie@codesourcery.com>
13776
13777         * config/arm/arm.c (arm_legitimize_reload_address): New.
13778         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13779         arm_legitimize_reload_address.
13780         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
13781
13782 2011-01-28  Ian Lance Taylor  <iant@google.com>
13783
13784         * godump.c (go_define): Ignore macros whose definitions include
13785         two adjacent operands.
13786
13787 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
13788
13789         PR target/42894
13790         * varasm.c (force_const_mem): Store copy of x in desc->constant
13791         instead of x itself.
13792         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13793         itself into REG_EQUAL note.
13794
13795 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
13796
13797         * config/freebsd.opt (posix, rdynamic): New Driver options.
13798
13799 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13800
13801         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13802         -Bstatic/-Bdynamic.
13803         * configure: Regenerate.
13804
13805 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
13806
13807         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13808         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13809
13810 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
13811
13812         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13813         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13814         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13815         (s390_preferred_reload_class): Make static. Change return and
13816         'rclass' argument type to reg_class_t.
13817
13818 2011-01-27  Jan Hubicka  <jh@suse.cz>
13819
13820         PR middle-end/46949
13821         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13822         (process_function_and_variable_attributes): Check defined weakrefs.
13823
13824 2011-01-27  Martin Jambor  <mjambor@suse.cz>
13825
13826         PR tree-optimization/47228
13827         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13828         build_ref_for_offset.
13829
13830 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13831
13832         * config/spu/spu-elf.h (ASM_SPEC): Remove.
13833
13834 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
13835
13836         PR rtl-optimization/46856
13837         * postreload.c (reload_combine_recognize_const_pattern): Do not
13838         separate cc0 setter and user on cc0 targets.
13839
13840 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
13841
13842         PR c/43082
13843         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13844         passed a VOID_TYPE expression, immediately emit an error and
13845         return error_mark_node.
13846
13847 2011-01-26  Jeff Law  <law@redhat.com>
13848
13849         PR rtl-optimization/47464
13850         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13851         rather than may_trap_p as needed.
13852
13853 2011-01-26  DJ Delorie  <dj@redhat.com>
13854
13855         PR rtl-optimization/46878
13856         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13857         setter/user dependency as well.
13858
13859 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13860
13861         PR rtl-optimization/44469
13862         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13863         after removing trivially dead basic blocks.
13864
13865 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13866
13867         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13868         * config/frv/frv.h (LINK_SPEC): Likewise.
13869         * config/i386/netware.h (LINK_SPEC): Likewise.
13870         * config/m68k/linux.h (ASM_SPEC): Likewise.
13871         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13872         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13873         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13874         * config/sparc/linux.h (ASM_SPEC): Likewise.
13875         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13876         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13877
13878 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13879
13880         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13881         * config/frv/frv.h (ASM_SPEC): Likewise.
13882         * config/m68k/linux.h (ASM_SPEC): Likewise.
13883         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13884         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13885         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13886         * config/sparc/linux.h (ASM_SPEC): Likewise.
13887         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13888         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13889
13890 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13891
13892         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13893         * config/frv/frv.h (LINK_SPEC): Likewise.
13894         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13895
13896 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13897
13898         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13899         * config/frv/frv.h (ASM_SPEC): Likewise.
13900         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13901         * config/m68k/linux.h (ASM_SPEC): Likewise.
13902         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13903         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13904         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13905         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13906         * config/sparc/linux.h (ASM_SPEC): Likewise.
13907         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13908         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13909         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13910
13911 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13912
13913         PR target/46997
13914         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13915         (*mux2): Ditto.
13916         (vec_extract_evenodd_help): Ditto.
13917         (vec_extract_evenv4hi): Ditto.
13918         (vec_extract_oddv4hi): Ditto.
13919         (vec_interleave_lowv2si): Ditto.
13920         (vec_interleave_highv2si): Ditto.
13921         (vec_extract_evenv2si): Ditto.
13922         (vec_extract_oddv2si: Ditto.
13923         (vec_pack_trunc_v2si): Ditto.
13924
13925 2011-01-22  Jan Hubicka  <jh@suse.cz>
13926
13927         PR target/47237
13928         * cgraph.h (cgraph_local_info): New field can_change_signature.
13929         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13930         signature can change.
13931         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13932         can change.
13933         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13934         (cgraph_function_versioning): We can not change signature of functions
13935         that don't allow that.
13936         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13937         (lto_input_node): Likewise.
13938         * ipa-inline.c (compute_inline_parameters): Compute
13939         local.can_change_signature.
13940         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13941         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13942         functions that can not change signature.
13943         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13944         init_cumulative_args): Do not use local calling conventions
13945         for functions that can not change signature.
13946
13947 2011-01-22  Jan Hubicka  <jh@suse.cz>
13948
13949         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13950
13951 2011-01-26  Richard Guenther  <rguenther@suse.de>
13952
13953         PR tree-optimization/47190
13954         * cgraphunit.c (process_common_attributes): New function.
13955         (process_function_and_variable_attributes): Use it.
13956
13957 2011-01-26  Richard Guenther  <rguenther@suse.de>
13958
13959         PR lto/47423
13960         * cgraphbuild.c (record_eh_tables): Record reference to personality
13961         function.
13962
13963 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13964
13965         PR debug/45454
13966         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13967         non-debug insns from moving up.
13968
13969 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13970
13971         PR target/40125
13972         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13973         t-dlldir{,-x} fragment for build and add it to tmake_file.
13974         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13975         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13976         * config/i386/t-dlldir: New file.
13977         (SHLIB_DLLDIR): Define.
13978         * config/i386/t-dlldir-x: New file.
13979         (SHLIB_DLLDIR): Define.
13980         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13981         (SHLIB_INSTALL): Use it.
13982
13983 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
13984
13985         PR target/47246
13986         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13987         lower bound of the allowed Thumb-2 coprocessor load/store
13988         index range to -256. Add explaining comment.
13989
13990 2011-01-25  Ian Lance Taylor  <iant@google.com>
13991
13992         * godump.c (go_define): Improve lexing of macro expansion to only
13993         accept expressions which match Go spec.
13994
13995 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13996
13997         PR c++/43601
13998         * tree.c (handle_dll_attribute): Handle it.
13999         * doc/extend.texi (@item dllexport): Mention it.
14000         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14001
14002 2011-01-25  Ian Lance Taylor  <iant@google.com>
14003
14004         PR tree-optimization/26854
14005         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14006         (decl_jump_unsafe): Move higher in file, with no other change.
14007         (bind): Set has_jump_unsafe_decl if appropriate.
14008         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14009         (check_earlier_gotos): Likewise.
14010         (c_check_switch_jump_warnings): Likewise.
14011
14012 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14013
14014         * doc/invoke.texi (Warning Options): Add missing hyphen.
14015         (-fprofile-dir): Minor grammatical fixes.
14016         (-fbranch-probabilities): Likewise.
14017
14018 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14019
14020         PR debug/45136
14021         PR debug/45130
14022         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14023         debug insns.
14024         (no_real_insns_p, schedule_block, set_priorities): Drop special
14025         treatment of boundary debug insns.
14026         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14027         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14028         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14029         (BOUNDARY_DEBUG_INSN_P): Likewise.
14030         (SCHEDULE_DEBUG_INSN_P): Likewise.
14031         * sched-rgn.c (init_ready_list): Drop special treatment of
14032         boundary debug insns.
14033         * final.c (rest_of_clean-state): Clear notes' BB.
14034
14035 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14036
14037         * Makefile.in (LAMBDA_H): Removed.
14038         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14039         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14040         lambda-trans.o, and tree-loop-linear.o.
14041         (lto-symtab.o): Remove dependence on LAMBDA_H.
14042         (tree-loop-linear.o): Remove rule.
14043         (lambda-mat.o): Same.
14044         (lambda-trans.o): Same.
14045         (lambda-code.o): Same.
14046         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14047         (tree-vect-slp.o): Same.
14048         * hwint.h (gcd): Moved here.
14049         (least_common_multiple): Same.
14050         * lambda-code.c: Removed.
14051         * lambda-mat.c: Removed.
14052         * lambda-trans.c: Removed.
14053         * lambda.h: Removed.
14054         * tree-loop-linear.c: Removed.
14055         * lto-symtab.c: Do not include lambda.h.
14056         * omega.c (gcd): Removed.
14057         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14058         * tree-data-ref.c (print_lambda_vector): Moved here.
14059         (lambda_vector_copy): Same.
14060         (lambda_matrix_copy): Same.
14061         (lambda_matrix_id): Same.
14062         (lambda_vector_first_nz): Same.
14063         (lambda_matrix_row_add): Same.
14064         (lambda_matrix_row_exchange): Same.
14065         (lambda_vector_mult_const): Same.
14066         (lambda_vector_negate): Same.
14067         (lambda_matrix_row_negate): Same.
14068         (lambda_vector_equal): Same.
14069         (lambda_matrix_right_hermite): Same.
14070         * tree-data-ref.h: Do not include lambda.h.
14071         (lambda_vector): Moved here.
14072         (lambda_matrix): Same.
14073         (dependence_level): Same.
14074         (lambda_transform_legal_p): Removed declaration.
14075         (lambda_collect_parameters): Same.
14076         (lambda_compute_access_matrices): Same.
14077         (lambda_vector_gcd): Same.
14078         (lambda_vector_new): Same.
14079         (lambda_vector_clear): Same.
14080         (lambda_vector_lexico_pos): Same.
14081         (lambda_vector_zerop): Same.
14082         (lambda_matrix_new): Same.
14083         * tree-flow.h (least_common_multiple): Removed declaration.
14084         * tree-parloops.c (lambda_trans_matrix): Moved here.
14085         (LTM_MATRIX): Same.
14086         (LTM_ROWSIZE): Same.
14087         (LTM_COLSIZE): Same.
14088         (LTM_DENOMINATOR): Same.
14089         (lambda_trans_matrix_new): Same.
14090         (lambda_matrix_vector_mult): Same.
14091         (lambda_transform_legal_p): Same.
14092         * tree-pass.h (pass_linear_transform): Removed declaration.
14093         * tree-ssa-loop.c (tree_linear_transform): Removed.
14094         (gate_tree_linear_transform): Removed.
14095         (pass_linear_transform): Removed.
14096         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14097         flag_loop_interchange.
14098
14099 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14100
14101         PR tree-optimization/47265
14102         PR tree-optimization/47443
14103         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14104         if name still has some uses.
14105
14106 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14107
14108         PR tree-optimization/47382
14109         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14110         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14111
14112 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
14113
14114         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14115         sjlj_except_unwind_info.
14116
14117 2011-01-25  Richard Guenther  <rguenther@suse.de>
14118
14119         PR tree-optimization/47426
14120         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14121         visible functions results escape.
14122
14123 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14124
14125         PR target/45701
14126         * config/arm/arm.c (any_sibcall_uses_r3): New function.
14127         (arm_get_frame_offsets): Use it.
14128
14129 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14130             Jakub Jelinek  <jakub@redhat.com>
14131
14132         PR tree-optimization/47271
14133         * tree-if-conv.c (bb_postdominates_preds): New.
14134         (if_convertible_bb_p): Call bb_postdominates_preds.
14135         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14136         (predicate_scalar_phi): Call bb_postdominates_preds.
14137
14138 2011-01-25  Nick Clifton  <nickc@redhat.com>
14139
14140         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14141         * config/rx/rx.c (rx_function_value): Likewise.
14142         (rx_promote_function_mode): Likewise.
14143         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14144         in order to make it legitimate.
14145         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14146         make sure that the first operand is the same as the result register.
14147         (addsi3_unspec): Delete.
14148         (subdi3): Do not accept immediate operands.
14149         (subdi3_internal): Likewise.
14150
14151 2011-01-25  Jeff Law  <law@redhat.com>
14152
14153         PR rtl-optimization/37273
14154         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14155         handle them like argument loads from stack slots.  Do not double
14156         count memory for memory constants and argument loads from stack slots.
14157
14158 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14159
14160         PR tree-optimization/47427
14161         PR tree-optimization/47428
14162         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14163         coalesce if the new root var would be TREE_READONLY.
14164
14165 2011-01-25  Richard Guenther  <rguenther@suse.de>
14166
14167         PR middle-end/47414
14168         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14169         correct type for TBAA.
14170
14171 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14172
14173         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14174         (close_phi_written_to_memory): Call for_each_index with
14175         dr_indices_valid_in_loop.
14176
14177 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14178
14179         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14180         when it is initialized.
14181
14182 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14183
14184         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14185         call to graphite_find_data_references_in_stmt.
14186         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14187         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14188         call to graphite_find_data_references_in_stmt.
14189         (analyze_drs_in_stmts): Same.
14190         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14191         in which the scalar analysis of indices is performed.
14192         (create_data_ref): Same.  Update call to dr_analyze_indices.
14193         (find_data_references_in_stmt): Update call to create_data_ref.
14194         (graphite_find_data_references_in_stmt): Same.
14195         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14196         declaration.
14197         (create_data_ref): Same.
14198         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14199         call to create_data_ref.
14200
14201 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14202
14203         * graphite-sese-to-poly.c (build_poly_scop): Move
14204         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14205
14206 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14207
14208         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14209         VAR_DECL, PARM_DECL, and RESULT_DECL.
14210
14211 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14212
14213         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14214         in a reduction PBB.
14215         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14216         that have already been marked as PBB_IS_REDUCTION.
14217
14218 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14219
14220         * graphite-scop-detection.c (same_close_phi_node): New.
14221         (remove_duplicate_close_phi): New.
14222         (make_close_phi_nodes_unique): New.
14223         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14224
14225 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14226
14227         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14228         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14229         of both data references to be the same.
14230
14231 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14232
14233         * graphite-dependences.c (build_lexicographical_constraint): Remove
14234         the gdim parameter.
14235         (build_lexicographical_constraint): Adjust call to
14236         ppl_powerset_is_empty.
14237         (dependence_polyhedron): Same.
14238         (graphite_legal_transform_dr): Same.
14239         (graphite_carried_dependence_level_k): Same.
14240         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14241         parameter.
14242         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14243
14244 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14245
14246         * graphite-sese-to-poly.c
14247         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14248         (close_phi_written_to_memory): New.
14249         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14250         and unshare_expr.
14251
14252 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14253
14254         * doc/install.texi: Update the expected version number of PPL to 0.11.
14255         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14256         #if PPL_VERSION_MINOR < 11.
14257
14258 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14259
14260         * graphite-dependences.c: Include graphite-cloog-util.h.
14261         (new_poly_ddr): Inlined into dependence_polyhedron.
14262         (free_poly_ddr): Moved close by new_poly_ddr.
14263         (dependence_polyhedron_1): Renamed dependence_polyhedron.
14264         Early return NULL when ppl_powerset_is_empty returns true.
14265         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
14266         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
14267         (graphite_legal_transform_dr): Call new_poly_ddr.
14268         (graphite_carried_dependence_level_k): Same.
14269         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
14270         (dot_transformed_deps_stmt_1): Removed.
14271         (dot_deps_stmt_1): Call dot_deps_stmt_2.
14272         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
14273         (dot_deps_1): Call dot_deps_2.
14274         * Makefile.in (graphite-dependences.o): Add missing dependence on
14275         graphite-cloog-util.h.
14276
14277 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14278
14279         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14280         (build_lexicographical_constraint): Same.
14281         (dependence_polyhedron_1): Same.
14282         (graphite_legal_transform_dr): Same.
14283         (graphite_carried_dependence_level_k): Same.
14284         * graphite-ppl.c (ppl_powerset_is_empty): New.
14285         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14286         * tree-data-ref.c (dump_data_reference): Print the basic block index.
14287
14288 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14289
14290         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14291         the "a followed by b" relation and document it.
14292
14293 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14294
14295         * graphite-dependences.c (build_lexicographical_constraint): Stop the
14296         iteration when the bag of constraints is empty.
14297
14298 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14299
14300         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14301
14302 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14303
14304         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14305         nest and two loop depths as parameters.
14306         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14307         lst_perfect_nestify.
14308
14309 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14310
14311         * graphite-dependences.c (print_pddr): Call
14312         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14313
14314 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14315
14316         * graphite-ppl.c (debug_gmp_value): New.
14317         * graphite-ppl.h (debug_gmp_value): Declared.
14318
14319 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
14320
14321         * doc/install.texi: Document availability of cloog-0.16.
14322
14323 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
14324
14325         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14326         invalid postdominance info.
14327
14328 2011-01-24  Jan Hubicka  <jh@suse.cz>
14329
14330         PR c/21659
14331         * doc/extend.texi (weak pragma): Drop claim that it must
14332         appear before definition.
14333         * varasm.c (merge_weak, declare_weak): Only sanity check
14334         that DECL is not output at a time it is declared weak.
14335
14336 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
14337
14338         * machmode.def: Fixed comments.
14339
14340 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
14341
14342         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14343
14344 2011-01-24  Paul Koning  <ni1d@arrl.net>
14345
14346         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14347         WORDS_BIG_ENDIAN.
14348
14349 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14350
14351         PR target/46519
14352         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14353         (block_info): Add scanned and prev.
14354         (move_or_delete_vzeroupper_2): Return if the basic block
14355         has been scanned and the upper 128bit state is unchanged
14356         from the last scan.
14357         (move_or_delete_vzeroupper_1): Return true if the exit
14358         state is changed.
14359         (move_or_delete_vzeroupper): Visit basic blocks using the
14360         work-list based algorithm based on vt_find_locations in
14361         var-tracking.c.
14362
14363         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14364
14365 2011-01-24  Nick Clifton  <nickc@redhat.com>
14366
14367         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14368         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14369         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
14370         then define __v850e1__.
14371         * doc/invoke.texi: Document -mv850es.
14372
14373 2011-01-24  Richard Henderson  <rth@redhat.com>
14374
14375         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14376         compound unordered comparisons.
14377         * config/rx/rx.c (rx_split_fp_compare): Remove.
14378         * config/rx/rx-protos.h: Update.
14379         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14380         (cbranchsf4): Don't call rx_split_fp_compare.
14381         (*cbranchsf4): Use rx_split_cbranch.
14382         (*cmpsf): Don't accept "i" constraint.
14383         (*conditional_branch): Only valid after reload.
14384         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
14385
14386 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14387
14388         PR target/47385
14389         * config/rs6000/altivec.md (vector constant splitters): Add
14390         support for creating vector single precision constants if -mvsx is
14391         used and we would create the constant using Altivec primitives.
14392
14393 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
14394             Richard Sandiford  <rdsandiford@googlemail.com>
14395
14396         PR rtl-optimization/47166
14397         * reload1.c (emit_reload_insns): Disable the spill_reg_store
14398         mechanism for PRE_MODIFY and POST_MODIFY.
14399         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14400         reloadreg.
14401
14402 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
14403
14404         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14405
14406 2011-01-22  Jan Hubicka  <jh@suse.cz>
14407
14408         PR lto/47333
14409         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14410
14411 2011-01-22  Jan Hubicka  <jh@suse.cz>
14412
14413         PR tree-optimization/43884
14414         PR lto/44334
14415         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14416         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14417
14418 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
14419
14420         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14421         * config/s390/s390.c (s390_register_move_cost,
14422         s390_memory_move_cost): New.
14423         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14424
14425 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14426
14427         PR middle-end/47401
14428         * except.c (sjlj_assign_call_site_values): Move setting the
14429         crtl->uses_eh_lsda flag to ...
14430         (sjlj_mark_call_sites): ... here.
14431         (sjlj_emit_function_enter): Support NULL dispatch label.
14432         (sjlj_build_landing_pads): In a function with no landing pads
14433         that still has must-not-throw regions, generate code to register
14434         a personality function with empty LSDA.
14435
14436 2011-01-21  Richard Henderson  <rth@redhat.com>
14437
14438         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14439
14440         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14441
14442         * compare-elim.c: New file.
14443         * Makefile.in (OBJS-common): Add it.
14444         (compare-elim.o): New.
14445         * common.opt (fcompare-elim): New.
14446         * opts.c (default_options_table): Add OPT_fcompare_elim.
14447         * tree-pass.h (pass_compare_elim_after_reload): New.
14448         * passes.c (init_optimization_passes): Add it.
14449         * recog.h: Protect against re-inclusion.
14450         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14451         * doc/invoke.texi (-fcompare-elim): Document it.
14452         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14453         * doc/tm.texi: Rebuild.
14454
14455 2011-01-22  Nick Clifton  <nickc@redhat.com>
14456
14457         * config/rx/rx.md (cstoresf4): Pass comparison operator to
14458         rx_split_fp_compare.
14459
14460 2011-01-22  Nick Clifton  <nickc@redhat.com>
14461
14462         * config/rx/rx.md (UNSPEC_CONST): New.
14463         (deallocate_and_return): Wrap the amount popped off the stack in
14464         an UNSPEC_CONST in order to stop it being rejected by
14465         -mmax-constant-size.
14466         (pop_and_return): Add a "(return)" rtx.
14467         (call): Drop the immediate operand.
14468         (call_internal): Likewise.
14469         (call_value): Likewise.
14470         (call_value_internal): Likewise.
14471         (sibcall_internal): Likewise.
14472         (sibcall_value_internal): Likewise.
14473         (sibcall): Likewise.  Generate an explicit call using
14474         sibcall_internal.
14475         (sibcall_value): Likewise.
14476         (mov<>): FAIL if a constant operand is not legitimate.
14477         (addsi3_unpsec): New pattern.
14478
14479         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14480         (ok_for_max_constant): New function.
14481         (gen_safe_add): New function.
14482         (rx_expand_prologue): Use gen_safe_add.
14483         (rx_expand_epilogue): Likewise.
14484         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
14485         UNSPEC CONSTs.
14486
14487 2011-01-21  Jeff Law  <law@redhat.com>
14488
14489         PR tree-optimization/47053
14490         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14491         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14492         statements are deleted.
14493         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
14494         is nonempty, then purge dead edges and cleanup the CFG.
14495
14496 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14497
14498         PR debug/47402
14499         Temporarily revert:
14500         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14501         PR debug/47106
14502         * tree-dfa.c (create_var_ann): Mark variable as used.
14503
14504 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14505
14506         PR middle-end/45566
14507         * except.c (convert_to_eh_region_ranges): Emit queued no-region
14508         notes from other section in hot/cold partitioning even if
14509         last_action is -3.  Increment call_site_base.
14510
14511         PR rtl-optimization/47366
14512         * fwprop.c (forward_propagate_into): Return bool.  If
14513         any changes are made, -fnon-call-exceptions is used and
14514         REG_EH_REGION note is present, call purge_dead_edges
14515         and return true if it purged anything.
14516         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14517         any EH edges were purged.
14518
14519 2011-01-21  Jeff Law  <law@redhat.com>
14520
14521         PR rtl-optimization/41619
14522         * caller-save.c (setup_save_areas): Break out code to determine
14523         which hard regs are live across calls by examining the reload chains
14524         so that it is always used.
14525         Eliminate code which checked REG_N_CALLS_CROSSED.
14526
14527 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14528
14529         PR tree-optimization/47355
14530         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14531         NOP has non-debug uses beyond PHIs in new_bb.
14532
14533 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14534
14535         PR debug/47106
14536         * cfgexpand.c (account_used_vars_for_block): Only account vars
14537         that are annotated as used.
14538         (estimated_stack_frame_size): Don't set TREE_USED.
14539         * tree-dfa.c (create_var_ann): Mark variable as used.
14540
14541 2011-01-21  Richard Guenther  <rguenther@suse.de>
14542
14543         PR middle-end/47395
14544         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14545
14546 2011-01-21  Richard Guenther  <rguenther@suse.de>
14547
14548         PR tree-optimization/47365
14549         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14550         (vn_reference_lookup_pieces): Adjust.
14551         (vn_reference_lookup): Likewise.
14552         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14553         (vn_reference_lookup_3): Only look through kills if in
14554         VN_WALKREWRITE mode.
14555         (vn_reference_lookup_pieces): Adjust.
14556         (vn_reference_lookup): Likewise.
14557         (visit_reference_op_load): Likewise.
14558         (visit_reference_op_store): Likewise.
14559         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14560         (compute_avail): Likewise.
14561         (eliminate): Likewise.
14562
14563 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14564
14565         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14566         DECL_IGNORED_P non-reg vars if they are used.
14567
14568         PR tree-optimization/47391
14569         * varpool.c (const_value_known_p): Return false if
14570         decl is volatile.
14571
14572 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
14573
14574         PR bootstrap/47215
14575         * config/i386/i386.c (ix86_local_alignment): Handle
14576         case for va_list_type_node is nil.
14577         (ix86_canonical_va_list_type): Likewise.
14578
14579 2011-01-21  Alan Modra  <amodra@gmail.com>
14580
14581         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14582         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14583
14584 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14585
14586         * config/arm/arm.md (define_attr type): Rename f_load
14587         and f_store to f_fpa_load and f_fpa_store. Update.
14588         (write_conflict): Deal with rename fallout.
14589         (*push_fp_multi): Likewise.
14590         * config/arm/fpa.md (f_load): Use f_fpa_load.
14591         (f_store): Use f_fpa_store.
14592         (*movsf_fpa): Likewise.
14593         (*movdf_fpa): Likewise.
14594         (*movxf_fpa): Likewise.
14595         (*thumb2_movsf_fpa): Likewise.
14596         (*thumb2_movdf_fpa): Likewise.
14597         (*thumb2_movxf_fpa): Likewise.
14598         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14599         f_loadd and f_stored.
14600         (*thumb2_movdi_vfp): Likewise.
14601         (*thumb2_movsf_vfp): Fix attribute to f_loads.
14602         (*thumb2_movsi_vfp): Likewise.
14603         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14604         Use f_loads instead of f_load.
14605         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14606
14607 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
14608
14609         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14610         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14611         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14612         (xtensa_mode_dependent_address_p): New function.
14613         (constantpool_address_p): Make static. Change return type to bool.
14614         Change argument type to const_rtx. Use CONST_INT_P predicate.
14615
14616 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
14617
14618         PR debug/46583
14619         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14620
14621 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14622
14623         PR debug/47283
14624         * cfgexpand.c (expand_debug_expr): Instead of generating
14625         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14626         etc. handling.
14627
14628 2011-01-20  Richard Guenther  <rguenther@suse.de>
14629
14630         PR middle-end/47370
14631         * tree-inline.c (remap_gimple_op_r): Recurse manually for
14632         the pointer operand of MEM_REFs.
14633
14634 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14635
14636         PR tree-optimization/46130
14637         * ipa-split.c (consider_split): If return_bb contains non-virtual
14638         PHIs other than for retval or if split_function would not adjust it,
14639         refuse to split.
14640
14641 2011-01-20  Richard Guenther  <rguenther@suse.de>
14642
14643         PR tree-optimization/47167
14644         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14645         Revert previous change, only avoid enumeral type changes.
14646
14647 2011-01-19  Mike Stump  <mikestump@comcast.net>
14648
14649         * doc/tm.texi.in (BRANCH_COST): Englishify.
14650         * doc/tm.texi (BRANCH_COST): Likewise.
14651
14652 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14653
14654         PR c++/47291
14655         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14656         (gen_scheduled_generic_parms_dies): New functions.
14657         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14658         generation for the end of CU compilation.
14659         (dwarf2out_finish): Generate template parameters DIEs here.
14660
14661 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14662
14663         PR debug/46240
14664         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14665         debug bind stmt on merge edges.
14666
14667 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14668
14669         PR debug/47079
14670         PR debug/46724
14671         * function.c (instantiate_expr): Instantiate incoming rtl of
14672         implicit arguments, and recurse on VALUE_EXPRs.
14673         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14674         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14675
14676 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14677
14678         * c-parser.c (c_parser_for_statement): Initialize
14679         collection_expression.
14680
14681 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14682
14683         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14684
14685 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14686
14687         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14688         (LINK_SHLIB_SPEC): Don't use %(link_path).
14689         (SUBTARGET_EXTRA_SPECS): Remove link_path.
14690
14691 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14692
14693         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14694         (NO_SHARED_LIB_SUPPORT): Remove.
14695         (LINK_SHLIB_SPEC): Remove one conditional definition.
14696
14697 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14698
14699         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14700         %{call_shared}.
14701         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14702         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14703         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14704         %{call_shared} and conditionals on these options not being passed.
14705         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14706         %{call_shared}.
14707
14708 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14709
14710         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14711         simplify.
14712
14713         * ipa-split.c: Spelling fixes.
14714
14715 2011-01-19  Richard Henderson  <rth@redhat.com>
14716
14717         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14718         (*mulsi3): Likewise.
14719
14720         * longlong.h [__mn10300__] (count_leading_zeros): New.
14721         [__mn10300__] (umul_ppmm, smul_ppmm): New.
14722         [__mn10300__] (add_ssaaaa, subddmmss): New.
14723         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14724         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14725
14726 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14727
14728         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14729
14730 2011-01-19  Richard Henderson  <rth@redhat.com>
14731
14732         * config/mn10300/mn10300.md (addsi3_flags): New.
14733         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14734         (subsi3_flags, subc_internal, subdi3): New.
14735         (subdi3_internal, *subdi3_degenerate): New.
14736         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14737
14738         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14739         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14740         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
14741         * config/mn10300/mn10300-protos.h: Update.
14742         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14743         (return_ret): Likewise.  Rename from return_internal_regs.
14744         (return_internal): Remove.
14745
14746         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14747         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14748         (mn10300_legitimate_constant_p): Likewise.
14749         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14750         (mn10300_frame_size): New.
14751         (mn10300_expand_prologue): Use it.
14752         (mn10300_expand_epilogue): Likewise.
14753         (mn10300_initial_offset): Likewise.
14754         * config/mn10300/mn10300-protos.h: Update.
14755         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14756         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14757         (prologue, epilogue, return_internal): Tidy output code.
14758         (mn10300_store_multiple_operation, return): Likewise.
14759         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14760         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14761         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14762         (load_pic, am33_load_pic): New.
14763         (mn10300_load_pic0, mn10300_load_pic1): New.
14764
14765         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14766         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14767         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14768         (cc_flags_for_mode, cc_flags_for_code): New.
14769         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14770         overflow flag is not valid.  Validate that the flags we need
14771         for the comparison are valid.
14772         (mn10300_output_cmp): Remove.
14773         (mn10300_output_add): New.
14774         (mn10300_select_cc_mode): Use cc_flags_for_code.
14775         (mn10300_split_cbranch): New.
14776         (mn10300_match_ccmode): New.
14777         (mn10300_split_and_operand_count): New.
14778         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14779         to the function.
14780         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14781         (addsi3): ... here.  Use mn10300_output_add.
14782         (*addsi3_flags): New.
14783         (*am33_subsi3, *mn10300_subsi3): Merge...
14784         (subsi3): ... here.  Use attribute isa.
14785         (*subsi3_flags): New.
14786         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
14787         when possible.
14788         (*am33_andsi3, *mn10300_andsi3): Merge...
14789         (andsi3): ... here.
14790         (*andsi3_flags): New.
14791         (andsi3 splitters): New.
14792         (*am33_iorsi3, *mn10300_iorsi3): Merge...
14793         (iorsi3): ... here.
14794         (*iorsi3_flags): New.
14795         (*am33_xorsi3, *mn10300_xorsi3): Merge...
14796         (xorsi3): ... here.
14797         (*xorsi3_flags): New.
14798         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14799         (one_cmplsi2): ... here.
14800         (*one_cmplsi2_flags): New.
14801         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
14802         instead of "dax" in constraints.  Use mn10300_split_cbranch.
14803         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
14804         use matching constraints to eliminate a self-comparison.
14805         (*integer_conditional_branch): Rename from integer_conditional_branch.
14806         Use int_mode_flags to match CC_REG.
14807         (*cbranchsi4_btst, *btstsi): New.
14808         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
14809         mn10300_split_cbranch.
14810         (*am33_cmpsf): Rename from am33_cmpsf.
14811         (*float_conditional_branch): Rename from float_conditional_branch.
14812         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14813         (zero_extendqisi2): ... here.
14814         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14815         (zero_extendhisi2): ... here.
14816         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14817         (extendqisi2): ... here.
14818         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14819         (extendhisi2): ... here.
14820         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14821         (ashlsi3): ... here.
14822         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14823         (lshrsi3): ... here.
14824         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14825         (ashrsi3): ... here.
14826         (consecutive add peephole): Remove.
14827         * config/mn10300/predicates.md (label_ref_operand): New.
14828         (int_mode_flags): New.
14829         (CCZN_comparison_operator): New.
14830
14831         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14832         (throughput_42_latency_43): New reservation.
14833         (mulsidi3, umulsidi3): New expanders.
14834         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
14835         the MDR register to allocation; separately allocate the low and
14836         high parts of the DImode result.
14837         (umulsidi3_internal): Similarly.
14838         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14839         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
14840         (udivsi3, umodsi3): Remove.
14841         (udivmodsi4, divmodsi4): New expanders.
14842         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
14843         (*divmodsi4): Simiarly.
14844         (ext_internal): New.
14845
14846         * config/mn10300/constraints.md ("z"): New constraint.
14847         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14848         (FIXED_REGISTERS): Don't fix MDR.
14849         (CALL_USED_REGSITERS): Reformat nicely.
14850         (REG_ALLOC_ORDER): Add MDR.
14851         (enum regclass): Add MDR_REGS.
14852         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14853         (IRA_COVER_CLASSES): Add MDR_REGS.
14854         (REGNO_REG_CLASS): Handle MDR_REG.
14855         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14856         (mn10300_register_move_cost): Likewise.
14857         * config/mn10300/mn10300.md (MDR_REG): New.
14858         (*movsi_internal): Handle moves to/from MDR_REGS.
14859
14860         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14861         POST_MODIFY.
14862         (mn10300_secondary_reload): Tidy combination reload classes.
14863         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14864         addresses for AM33.  Allow symbolic offsets for reg+imm.
14865         (mn10300_regno_in_class_p): New.
14866         (mn10300_legitimize_reload_address): New.
14867         * config/mn10300/mn10300.h (enum reg_class): Remove
14868         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14869         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14870         SP_OR_GENERAL_REGS.
14871         (REG_CLASS_NAMES): Update to match.
14872         (REG_CLASS_CONTENTS): Likewise.
14873         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14874         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14875         (REGNO_IN_RANGE_P): Remove.
14876         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14877         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14878         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14879         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14880         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14881         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14882         (REGNO_GENERAL_P): New.
14883         (HAVE_POST_MODIFY_DISP): New.
14884         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14885         (LEGITIMIZE_RELOAD_ADDRESS): New.
14886         * config/mn10300/mn10300-protos.h: Update.
14887
14888         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14889         DATA_REGS for AM33 stack-pointer destination.
14890         (mn10300_preferred_output_reload_class): Likewise.
14891         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14892         into a form appropriate for ...
14893         (TARGET_SECONDARY_RELOAD): New.
14894         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14895         * config/mn10300/mn10300-protos.h: Update.
14896         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14897         reload_insi; use the "A" constraint for the scratch; handle AM33
14898         moves of sp to non-address registers.
14899
14900         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14901         (*movqi_internal): ... here.
14902         (*am33_movhi, *mn10300_movhi): Merge into...
14903         (*movhi_internal): ... here.
14904         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14905         as the source/destination of moves from/to SP.
14906         (movsf): Only allow for AM33-2.
14907         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14908         any integer constant constraint.  Only allow for AM33-2.  Tidy
14909         all of the alternative outputs.
14910         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14911         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14912         for MN103.
14913         (udivsi3, umodsi3): New patterns for MN103 only.
14914
14915 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14916
14917         * doc/tm.texi.in: Spell out that a lack of register class unions
14918         can lead to ICEs.
14919         * doc/tm.texi: Regenerate.
14920
14921 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14922
14923         PR rtl-optimization/47337
14924         * dce.c (check_argument_store): New function.
14925         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14926
14927         PR tree-optimization/47290
14928         * tree-eh.c (infinite_empty_loop_p): New function.
14929         (cleanup_empty_eh): Use it.
14930
14931 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14932
14933         PR target/46997
14934         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14935         (a64_expand_widen_sum): Ditto.
14936         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14937         (vec_extract_evenodd_help): Ditto.
14938         (vec_extract_evenv4hi): Ditto.
14939         (vec_extract_oddv4hi): Ditto.
14940         (vec_extract_evenv2si): Ditto.
14941         (vec_extract_oddv2si): Ditto.
14942         (vec_extract_evenv2sf): Ditto.
14943         (vec_extract_oddv2sf): Ditto.
14944         (vec_pack_trunc_v4hi: Ditto.
14945         (vec_pack_trunc_v2si): Ditto.
14946         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14947         (vec_interleave_highv8qi): Ditto.
14948         (mix1_r): Ditto.
14949         (vec_extract_oddv8qi): Ditto.
14950         (vec_interleave_lowv4hi): Ditto.
14951         (vec_interleave_highv4hi): Ditto.
14952         (vec_interleave_lowv2si): Ditto.
14953         (vec_interleave_highv2si): Ditto.
14954
14955 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14956
14957         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14958         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14959         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14960         (pa_c_mode_for_suffix): New.
14961         (TARGET_EXPAND_BUILTIN): Define.
14962         (TARGET_C_MODE_FOR_SUFFIX): Define.
14963         (pa_builtins): Define.
14964         (pa_init_builtins): Register __float128 type and init new support
14965         builtins.
14966         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14967         * config/pa/quadlib.c (_U_Qfcopysign): New.
14968
14969 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14970
14971         PR middle-end/46894
14972         * explow.c (allocate_dynamic_stack_space): Do not assume more than
14973         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14974         are defined.
14975
14976 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14977
14978         PR tree-optimization/47179
14979         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14980         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14981
14982 2011-01-18  Richard Guenther  <rguenther@suse.de>
14983
14984         PR rtl-optimization/47216
14985         * emit-rtl.c: Include tree-flow.h.
14986         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14987         of replicating it with different semantics.
14988         * Makefile.in (emit-rtl.o): Adjust.
14989
14990 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14991
14992         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
14993         (cortex_a9_dp): Handle neon types correctly.
14994
14995 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
14996
14997         PR rtl-optimization/47299
14998         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
14999         subtarget.  Use normal multiplication if both operands are constants.
15000         * expmed.c (expand_widening_mult): Don't try to optimize constant
15001         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15002         before using it.
15003
15004 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15005
15006         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15007         spacing after 'e.g.', typos, comma, hyphenation.
15008
15009 2011-01-17  Richard Henderson  <rth@redhat.com>
15010
15011         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15012         (rx_restricted_mem_operand): New.
15013         (rx_shift_operand): Use register_operand.
15014         (rx_source_operand, rx_compare_operand): Likewise.
15015         * config/rx/rx.md (addsi3_flags): New expander.
15016         (adddi3): Rewrite as expander.
15017         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15018         (subsi3_flags): New expander.
15019         (subdi3): Rewrite as expander.
15020         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15021
15022         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15023         (rx_init_builtins): Remove sat builtin.
15024         (rx_expand_builtin): Likewise.
15025         * config/rx/rx.md (ssaddsi3): New.
15026         (*sat): Rename from sat.  Represent the CC_REG input.
15027
15028         * config/rx/predicates.md (rshift_operator): New.
15029         * config/rx/rx.c (rx_expand_insv): Remove.
15030         * config/rx/rx-protos.h: Update.
15031         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15032         operand to the canonical position.
15033         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15034         (*bitclr, *bitclr_in_memory): Similarly.
15035         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15036         (insv): Retain the zero_extract in the expansion.
15037
15038         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15039         (bswaphi2, bitinvert, revw): Likewise.
15040
15041         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15042         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15043         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15044         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15045         (bitset, bitset_in_memory): Likewise.
15046         (bitinvert, bitinvert_in_memory): Likewise.
15047         (bitclr, bitclr_in_memory): Likewise.
15048         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15049         (rx_strend, rx_cmpstrn): Likewise.
15050         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15051         (bitop peep2 patterns): Remove.
15052
15053         * config/rx/rx.c (rx_match_ccmode): New.
15054         * config/rx/rx-protos.h: Update.
15055         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15056         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15057         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15058         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15059         (fix_truncsfsi2, floatsisf2): Likewise.
15060         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15061         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15062         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15063         (*subsi3_flags, *xorsi3_flags): New.
15064
15065         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15066
15067         * config/rx/rx.c (rx_print_operand): Remove workaround for
15068         unsplit comparison operations.
15069
15070         * config/rx/rx.md (movsicc): Split after reload.
15071         (*movsicc): Merge *movsieq and *movsine via match_operator.
15072         (*stcc): New pattern.
15073
15074         * config/rx/rx.c (rx_float_compare_mode): Remove.
15075         * config/rx/rx.h (rx_float_compare_mode): Remove.
15076         * config/rx/rx.md (cstoresi4): Split after reload.
15077         (*sccc): New pattern.
15078
15079         * config/rx/predicates.md (label_ref_operand): New.
15080         (rx_z_comparison_operator): New.
15081         (rx_zs_comparison_operator): New.
15082         (rx_fp_comparison_operator): New.
15083         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15084         Validate that the flags are set properly for the comparison.
15085         (rx_gen_cond_branch_template): Remove.
15086         (rx_cc_modes_compatible): Remove.
15087         (mode_from_flags): New.
15088         (flags_from_code): Rename from flags_needed_for_conditional.
15089         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15090         (rx_select_cc_mode): Likewise.
15091         (rx_split_fp_compare): New.
15092         (rx_split_cbranch): New.
15093         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15094         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15095         (*cbranchsf4): Similarly.
15096         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15097         match_operator and rx_split_cbranch.
15098         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15099         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15100         (*cmpsi): Rename from cmpsi.
15101         (*tstsi): Rename from tstsi.
15102         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15103         (*conditional_branch): Rename from conditional_branch.
15104         (*reveresed_conditional_branch): Remove.
15105         (b<code>): Remove expander.
15106         * config/rx/rx-protos.h: Update.
15107
15108         * config/rx/rx.c (rx_compare_redundant): Remove.
15109         * config/rx/rx.md (cmpsi): Don't use it.
15110         * config/rx/rx-protos.h: Update.
15111
15112         * config/rx/rx-modes.def (CC_F): New mode.
15113         * config/rx/rx.c (rx_select_cc_mode): New.
15114         * config/rx/rx.h (SELECT_CC_MODE): Use it.
15115         * config/rx/rx-protos.h: Update.
15116
15117 2011-01-17  Richard Henderson  <rth@redhat.com>
15118
15119         * except.c (dump_eh_tree): Fix stray ; after for statement.
15120
15121 2011-01-17  Richard Guenther  <rguenther@suse.de>
15122
15123         PR tree-optimization/47313
15124         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15125         handling before copying the body.  Properly deal with
15126         by-reference result in SSA form.
15127
15128 2011-01-17  Ian Lance Taylor  <iant@google.com>
15129
15130         PR target/47219
15131         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15132         (struct_value_alias_set): Don't define.
15133         (sparc_option_override): Don't set sparc_sr_alias_set and
15134         struct_value_alias_set.
15135         (save_or_restore_regs): Use gen_frame_mem rather than calling
15136         set_mem_alias_set.
15137         (sparc_struct_value_rtx): Likewise.
15138
15139 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15140
15141         PR target/47318
15142         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15143         (_mm_maskstore_pd): Likewise.
15144         (_mm_maskload_ps): Likewise.
15145         (_mm_maskstore_ps): Likewise.
15146         (_mm256_maskload_pd): Change mask to __m256i.
15147         (_mm256_maskstore_pd): Likewise.
15148         (_mm256_maskload_ps): Likewise.
15149         (_mm256_maskstore_ps): Likewise.
15150
15151         * config/i386/i386-builtin-types.def: Updated.
15152         (ix86_expand_special_args_builtin): Likewise.
15153
15154         * config/i386/i386.c (bdesc_special_args): Update
15155         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15156         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15157         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15158         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15159
15160         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15161         Use <avxpermvecmode> on mask register.
15162         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15163
15164 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15165             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15166             Eric Botcazou  <ebotcazou@adacore.com>
15167
15168         PR target/46655
15169         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15170         if <= USHRT_MAX in 32-bit mode.
15171
15172 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15173
15174         * doc/install.texi (Configuration, Specific): Wrap long
15175         lines in examples.  Allow line wrapping in long options
15176         and URLs where beneficial for PDF output.
15177
15178 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15179
15180         * config/mips/mips.c (mips_classify_symbol): Don't return
15181         SYMBOL_PC_RELATIVE for nonlocal labels.
15182
15183 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15184
15185         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15186
15187 2011-01-15  Jan Hubicka  <jh@suse.cz>
15188
15189         PR tree-optimization/47276
15190         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15191         declarations as needed.
15192
15193 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15194
15195         * common.opt (fdevirtualize): New flag.
15196         * doc/invoke.texi (Option Summary): Document it.
15197         * opts.c (default_options_table): Add devirtualize flag.
15198         * ipa-prop.c (detect_type_change): Return immediately if
15199         devirtualize flag is not set.
15200         (detect_type_change_ssa): Likewise.
15201         (compute_known_type_jump_func): Likewise.
15202         (ipa_analyze_virtual_call_uses): Likewise.
15203
15204 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15205
15206         PR tree-optimization/45934
15207         PR tree-optimization/46302
15208         * ipa-prop.c (type_change_info): New type.
15209         (stmt_may_be_vtbl_ptr_store): New function.
15210         (check_stmt_for_type_change): Likewise.
15211         (detect_type_change): Likewise.
15212         (detect_type_change_ssa): Likewise.
15213         (compute_complex_assign_jump_func): Check for dynamic type change.
15214         (compute_complex_ancestor_jump_func): Likewise.
15215         (compute_known_type_jump_func): Likewise.
15216         (compute_scalar_jump_functions): Likewise.
15217         (ipa_analyze_virtual_call_uses): Likewise.
15218         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15219
15220 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15221
15222         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15223         * config/i386/i386.opt (msse5): New Alias.
15224
15225 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15226
15227         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15228         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15229         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15230         * config/sparc/sparc.h (CC1_SPEC): Likewise.
15231
15232 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15233
15234         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15235         -mcpu options.
15236         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15237         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15238         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15239         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15240         Likewise.
15241         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15242
15243 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15244
15245         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15246
15247 2011-01-14  Mike Stump  <mikestump@comcast.net>
15248
15249         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15250         * config/fr30/fr30.md: Likweise
15251         (movsi_push): Likewise.
15252         (movsi_pop): Likewise.
15253         (enter_func): Likewise.
15254         * config/moxie/moxie.md (movsi_push): Likewise.
15255         (movsi_pop): Likewise.
15256
15257 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15258
15259         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15260         %{no_archive} %{exact_version}.
15261         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15262         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15263         %{no_archive} %{exact_version}.
15264         * config/mips/openbsd.h (LINK_SPEC): Likewise.
15265         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15266         * config/mips/vxworks.h: Likewise.
15267
15268 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15269
15270         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15271
15272 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15273
15274         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15275         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15276
15277 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15278
15279         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15280         -nodefaultlib.
15281
15282 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15283
15284         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15285         for mcpu not cpu.
15286         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15287         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15288         not cpu.
15289         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15290         Don't handle -shlib.
15291
15292 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15293
15294         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15295         (CC1_SPEC): Don't handle -profile.
15296
15297 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15298
15299         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15300         * config/mips/mips.h (CC1_SPEC): Likewise.
15301
15302 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15303
15304         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15305         * config/mips/mips.h (CC1_SPEC): Likewise.
15306
15307 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15308
15309         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15310         * config/m32r/linux.h (LINK_SPEC): Likewise.
15311         * config/mips/linux.h (LINK_SPEC): Likewise.
15312         * config/mips/linux64.h (LINK_SPEC): Likewise.
15313         * config/sparc/linux.h (LINK_SPEC): Likewise.
15314         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15315         LINK_SPEC): Likewise.
15316         * config/xtensa/linux.h (LINK_SPEC): Likewise.
15317
15318 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15319
15320         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15321         %{version:-v}.
15322         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15323
15324 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15325
15326         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15327         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15328
15329 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15330
15331         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15332
15333 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15334
15335         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15336         supports -Bstatic/-Bdynamic.
15337         * configure: Regenerate.
15338
15339 2011-01-14  Jan Hubicka  <jh@suse.cz>
15340             Jack Howarth  <howarth@bromo.med.uc.edu>
15341
15342         PR target/46037
15343         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15344         when checking debug_info_level. Test write_symbols instead of
15345         debug_hooks->var_location when setting flag_var_tracking_uninit.
15346
15347 2011-01-14  Richard Guenther  <rguenther@suse.de>
15348
15349         PR tree-optimization/47179
15350         * target.def (ref_may_alias_errno): New target hook.
15351         * targhooks.h (default_ref_may_alias_errno): Declare.
15352         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15353         (default_ref_may_alias_errno): New function.
15354         * target.h (struct ao_ref_s): Declare.
15355         * tree-ssa-alias.c: Include target.h.
15356         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15357         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15358         (targhooks.o): Likewise.
15359         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15360         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15361
15362 2011-01-14  Richard Guenther  <rguenther@suse.de>
15363
15364         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
15365
15366 2011-01-14  Richard Guenther  <rguenther@suse.de>
15367
15368         PR tree-optimization/47280
15369         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15370         return CFG changes.
15371         (tree_ssa_forward_propagate_single_use_vars): Deal with
15372         CFG changes from associate_plusminus.
15373
15374 2011-01-14  Richard Guenther  <rguenther@suse.de>
15375
15376         PR middle-end/47281
15377         Revert
15378         2011-01-11  Richard Guenther  <rguenther@suse.de>
15379
15380         PR tree-optimization/46076
15381         * tree-ssa.c (useless_type_conversion_p): Conversions from
15382         unprototyped to empty argument list function types are useless.
15383
15384 2011-01-14  Richard Guenther  <rguenther@suse.de>
15385
15386         PR tree-optimization/47286
15387         * tree-ssa-structalias.c (new_var_info): Register variables are global.
15388
15389 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15390
15391         PR middle-end/46823
15392         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15393
15394 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
15395
15396         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15397         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15398         * config/xtensa/xtensa.c (xtensa_libcall_value,
15399         xtensa_function_value_regno_p): New functions.
15400         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15401
15402 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
15403
15404         PR c++/47213
15405         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15406         PE specific hook.
15407         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15408         New function prototype.
15409         * config/i386/winnt.c (i386_pe_assemble_visibility):
15410         Warn only if attribute was specified by user.
15411
15412 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15413
15414         PR target/47251
15415         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15416         floating point.
15417         (floatunsdidf2_fcfidu): Ditto.
15418
15419 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15420
15421         * config/s390/s390.c (print_operand_address): Replace 'error' with
15422         'output_operand_lossage'.
15423         (print_operand): Likewise.
15424
15425 2011-01-13  Jeff Law  <law@redhat.com>
15426
15427         PR rtl-optimization/39077
15428         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15429         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15430         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15431         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15432         * gcse.c (prune_insertions_deletions): New function.
15433         (compute_pre_data): Use it.
15434
15435 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
15436
15437         PR debug/PR46973
15438         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15439         static function.
15440         (prune_unused_types_mark): Use it.
15441
15442 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
15443
15444         PR rtl-optimization/45352
15445         * sel-sched.c: Update copyright years.
15446         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15447         in the advancing loop when we have issued issue_rate insns.
15448
15449 2011-01-12  Richard Henderson  <rth@redhat.com>
15450
15451         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15452         (TARGET_MD_ASM_CLOBBERS): New.
15453
15454         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15455         (TARGET_DELEGITIMIZE_ADDRESS): New.
15456
15457         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15458         (clzsi2, *bsch): New patterns.
15459
15460         * config/mn10300/mn10300.md (INT): New mode iterator.
15461         (*mov<INT>_clr): New pattern, and peep2 to generate it.
15462
15463         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15464         flag_split_wide_types.
15465
15466         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15467         (mn10300_trampoline_init): Rewrite without a template, an immediate
15468         load and a direct branch.
15469         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15470
15471 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
15472
15473         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15474         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15475         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15476         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15477
15478 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
15479
15480         PR debug/47209
15481         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15482         of type.
15483
15484 2011-01-12  Jan Hubicka  <jh@suse.cz>
15485
15486         PR driver/47244
15487         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15488         (PLUGIN_COND_CLOSE): New macro.
15489         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15490
15491 2011-01-12  Richard Guenther  <rguenther@suse.de>
15492
15493         PR lto/47259
15494         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15495         register variables in a MEM_REF.
15496
15497 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
15498
15499         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15500         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15501         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15502         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15503         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15504         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15505         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15506         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15507         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15508         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15509         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15510         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15511         * config/gnu-user.h: New.  Copied from linux.h.
15512         (LINUX_TARGET_STARTFILE_SPEC): Rename to
15513         GNU_USER_TARGET_STARTFILE_SPEC.
15514         (LINUX_TARGET_ENDFILE_SPEC): Rename to
15515         GNU_USER_TARGET_ENDFILE_SPEC.
15516         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15517         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15518         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15519         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15520         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15521         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15522         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15523         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15524         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15525         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15526         * config/arm/linux-eabi.h (CC1_SPEC): Use
15527         GNU_USER_TARGET_CC1_SPEC.
15528         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15529         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15530         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15531         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15532         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15533         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15534         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15535         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15536
15537 2011-01-12  Richard Guenther  <rguenther@suse.de>
15538
15539         PR other/46946
15540         * doc/invoke.texi (ffast-math): Document it is turned on
15541         with -Ofast.
15542
15543 2011-01-12  Jan Hubicka  <jh@suse.cz>
15544
15545         PR tree-optimization/47233
15546         * opts.c (common_handle_option): Disable ipa-reference with profile
15547         feedback.
15548
15549 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15550
15551         * c-parser.c (c_parser_objc_at_property_declaration): Improved
15552         error message.
15553
15554 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15555
15556         * c-parser.c (c_lex_one_token): Updated and reindented some
15557         comments.  No changes in code.
15558
15559 2011-01-11  Ian Lance Taylor  <iant@google.com>
15560
15561         * godump.c (go_output_var): Don't output the variable if there is
15562         already a type with the same name.
15563
15564 2011-01-11  Ian Lance Taylor  <iant@google.com>
15565
15566         * godump.c (go_format_type): Don't generate float80.
15567
15568 2011-01-11  Richard Henderson  <rth@redhat.com>
15569
15570         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15571         declaration.  Rewrite for both speed and size.
15572         (mn10300_address_cost_1): Remove.
15573         (mn10300_register_move_cost): New.
15574         (mn10300_memory_move_cost): New.
15575         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
15576         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
15577         extensions, shifts, BSWAP, CLZ.
15578         (mn10300_wide_const_load_uses_clr): Remove.
15579         (TARGET_REGISTER_MOVE_COST): New.
15580         (TARGET_MEMORY_MOVE_COST): New.
15581         * config/mn10300/mn10300-protos.h: Update.
15582         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15583
15584         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15585         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15586         * config/mn10300/mn10300-protos.h: Update.
15587         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15588         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15589         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15590         (*test_int_bitfield, *test_byte_bitfield): Remove.
15591         (*bit_test, *subreg_bit_test): Remove.
15592         * config/mn10300/predicates.md (const_8bit_operand): Remove.
15593
15594         * config/mn10300/constraints.md ("c"): Rename from "A".
15595         ("A", "D"): New constraint letters.
15596         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15597         (fmssf4, fnmasf4, fnmssf4): Likewise.
15598
15599         * config/mn10300/mn10300.md (isa): New attribute.
15600         (enabled): New attribute.
15601
15602         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15603         (abssf2, negsf2): Define only for hardware fp.
15604         (sqrtsf2): Reformat.
15605         (addsf3, subsf3, mulsf3): Merge expander and insn.
15606
15607         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15608         (DEBUGGER_AUTO_OFFSET): Remove.
15609         (DEBUGGER_ARG_OFFSET): Remove.
15610
15611         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15612         Emit register stores with the same offsets as the hardware.
15613         (mn10300_store_multiple_operation): Don't check that the register
15614         save offsets are monotonic.
15615         * config/mn10300/mn10300-protos.h: Update.
15616
15617         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15618
15619         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15620         in terms of the value on the stack, not the MDR register.
15621
15622 2011-01-11  Jan Hubicka  <jh@suse.cz>
15623
15624         PR lto/45721
15625         PR lto/45375
15626         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15627         (symbol_alias_set_destroy, symbol_alias_set_contains,
15628         propagate_aliases_backward): Declare.
15629         * lto-streamer-out.c (struct sets): New sturcture.
15630         (trivally_defined_alias): New function.
15631         (output_alias_pair_p): Rewrite.
15632         (output_unreferenced_globals): Fix output of alias pairs.
15633         (produce_symtab): Likewise.
15634         * ipa.c (function_and_variable_visibility): Set weak alias destination
15635         as needed in lto.
15636         * varasm.c (symbol_alias_set_t): Remove.
15637         (symbol_alias_set_destroy): Export.
15638         (propagate_aliases_forward, propagate_aliases_backward): New functions
15639         based on ...
15640         (compute_visible_aliases): ... this one; remove.
15641         (trivially_visible_alias): New
15642         (trivially_defined_alias): New.
15643         (remove_unreachable_alias_pairs): Rewrite.
15644         (finish_aliases_1): Reorganize code checking if alias is defined.
15645         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15646         in LTO mode.
15647
15648 2011-01-11  Richard Guenther  <rguenther@suse.de>
15649
15650         PR tree-optimization/46076
15651         * tree-ssa.c (useless_type_conversion_p): Conversions from
15652         unprototyped to empty argument list function types are useless.
15653
15654 2011-01-11  Richard Guenther  <rguenther@suse.de>
15655
15656         PR middle-end/45235
15657         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15658         volatile MEMs as MEM_READONLY_P.
15659
15660 2011-01-11  Richard Guenther  <rguenther@suse.de>
15661
15662         PR tree-optimization/47239
15663         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15664
15665 2011-01-11  Jeff Law  <law@redhat.com>
15666
15667         PR tree-optimization/47086
15668         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15669         IVs from statements that might throw.
15670
15671 2011-01-10  Jan Hubicka  <jh@suse.cz>
15672
15673         PR lto/45375
15674         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15675
15676 2011-01-10  Jan Hubicka  <jh@suse.cz>
15677
15678         PR lto/45375
15679         * profile.c (read_profile_edge_counts): Ignore profile inconistency
15680         when correcting profile.
15681
15682 2011-01-10  Jan Hubicka  <jh@suse.cz>
15683
15684         PR lto/46083
15685         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15686         DECL_FINI_PRIORITY.
15687         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15688         Restore DECL_FINI_PRIORITY.
15689
15690 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15691
15692         * doc/gimple.texi: Fix quoting of multi-word return values in
15693         @deftypefn statements.  Ensure presence of return value.  Wrap
15694         overlong @deftypefn lines.
15695         (is_gimple_operand, is_gimple_min_invariant_address): Remove
15696         descriptions of removed functions.
15697         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15698         of multi-word return value in @deftypefn statement.
15699
15700 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15701
15702         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15703         (Conditional Expressions, Logical Operators)
15704         (Statement and operand traversals): Do not indent smallexample
15705         code.  Fix duplicate function argument in example.
15706
15707 2011-01-10  Jeff Law  <law@redhat.com>
15708
15709         PR tree-optimization/47141
15710         * ipa-split.c (split_function): Handle case where we are
15711         returning a value and the return block has a virtual operand phi.
15712
15713 2011-01-10  Jan Hubicka  <jh@suse.cz>
15714
15715         PR tree-optimization/47234
15716         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15717         (pass_feedback_split_functions): Declare.
15718         * passes.c (init_optimization_passes): Add ipa-split as subpass of
15719         tree-profile.
15720         * ipa-split.c (gate_split_functions): Update comments; disable
15721         split-functions for profile_arc_flag and branch_probabilities.
15722         (gate_feedback_split_functions): New function.
15723         (execute_feedback_split_functions): New function.
15724         (pass_feedback_split_functions): New global var.
15725
15726 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15727
15728         PR lto/46760
15729         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15730         calling gimple_call_set_cannot_inline.
15731
15732 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
15733
15734         * config/darwin-sections.def: Remove unused section.
15735
15736 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
15737
15738         PR c++/47218
15739         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15740
15741 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15742
15743         PR objc/47232
15744         * c-parser.c (c_parser_declaration_or_fndef): Improved
15745         error message.
15746
15747 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
15748
15749         * config/i386/winnt.c (i386_pe_start_function): Make sure
15750         to switch back to function's section.
15751
15752 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
15753
15754         PR gcc/46902
15755         PR testsuite/46912
15756         * plugin.c: Move include of dlfcn.h from here...
15757         * system.h: ... to here.
15758
15759 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15760
15761         * doc/cpp.texi (C++ Named Operators): Fix markup for header
15762         file name.
15763         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15764         two extra empty pages in PDF output.
15765
15766 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
15767
15768         PR objc/47078
15769         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15770         for error recovery purposes behave as if it was not specified so
15771         that the default type is usd.
15772
15773 2011-01-07  Jan Hubicka  <jh@suse.cz>
15774
15775         PR tree-optmization/46469
15776         * ipa.c (function_and_variable_visibility): Clear needed flags on
15777         nodes with external decls; handle weakrefs merging correctly.
15778
15779 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
15780
15781         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15782         not false.
15783
15784 2011-01-07  Jan Hubicka  <jh@suse.cz>
15785
15786         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
15787         and no longer claim that gold is required for linker plugin.
15788         * configure: Regenerate.
15789         * gcc.c (PLUGIN_COND): New macro.
15790         (LINK_COMMAND_SPEC): Use it.
15791         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15792         * config.in (HAVE_LTO_PLUGIN): New.
15793         * configure.ac (--with-lto-plugin): New parameter; autodetect
15794         HAVE_LTO_PLUGIN.
15795
15796 2011-01-07  Jan Hubicka  <jh@suse.cz>
15797
15798         PR tree-optimization/46367
15799         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15800         when we can update original.
15801         (cgraph_mark_inline_edge): Sanity check.
15802         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15803
15804 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15805
15806         * config/spu/spu.h (ASM_COMMENT_START): Define.
15807
15808 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15809
15810         PR driver/42445
15811         * gcc.c (%>S): New.
15812         (SWITCH_KEEP_FOR_GCC): Likewise.
15813         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15814         (do_spec_1): Handle "%>".
15815
15816         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15817
15818 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
15819
15820         PR target/47201
15821         * config/i386/i386.c (ix86_delegitimize_address): If
15822         simplify_gen_subreg fails, return orig_x.
15823
15824         PR bootstrap/47187
15825         * value-prof.c (gimple_stringop_fixed_value): Handle
15826         lhs of the call properly.
15827
15828 2011-01-07  Jan Hubicka  <jh@suse.cz>
15829
15830         PR lto/45375
15831         * lto-opt.c (lto_reissue_options): Set flag_shlib.
15832
15833 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15834
15835         * target.def (function_switched_text_sections): New hook.
15836         * doc/tm.texi: Regenerated.
15837         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15838         * final.c (default_function_switched_text_sections): New.
15839         (final_scan_insn): Call function_switched_text_sections when a
15840         mid-function section change occurs.
15841         * output.h (default_function_switched_text_sections): Declare.
15842         * config/darwin-protos.h (darwin_function_switched_text_sections):
15843         Likewise.
15844         * config/darwin.c (darwin_function_switched_text_sections): New.
15845         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15846
15847 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15848
15849         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
15850         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
15851         the secondary code fragment when outputting for DWARF == 2.
15852
15853 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15854
15855         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15856         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15857         Remove.
15858         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15859         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15860
15861 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15862
15863         PR debug/46704
15864         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15865         when it is not empty.
15866
15867 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15868
15869         Bobcat Enablement
15870         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15871         (case ${target}): Add btver1.
15872         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15873         -march=native recognize btver1 processors.
15874         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15875         btver1 def_and_undef
15876         * config/i386/i386.c (struct processor_costs btver1_cost): New
15877         btver1 cost table.
15878         (m_BTVER1): New definition.
15879         (m_AMD_MULTIPLE): Includes m_BTVER1.
15880         (initial_ix86_tune_features): Add btver1 tune.
15881         (processor_target_table): Add btver1 entry.
15882         (static const char *const cpu_names): Add btver1 entry.
15883         (software_prefetching_beneficial_p): Add btver1.
15884         (ix86_option_override_internal): Add btver1 instruction sets.
15885         (ix86_issue_rate): Add btver1.
15886         (ix86_adjust_cost): Add btver1.
15887         * config/i386/i386.h (TARGET_BTVER1): New definition.
15888         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15889         (enum processor_type): Add PROCESSOR_BTVER1.
15890         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15891
15892 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15893
15894         PR target/43309
15895         * config/i386/i386.c (legitimize_tls_address)
15896         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15897         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15898         (tls_initial_exec_64_sun): New pattern.
15899
15900 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15901
15902         * doc/invoke.texi (Overall Options): Improve wording and markup
15903         of the description of -wrapper.
15904
15905 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15906
15907         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15908         rdynamic, threads): New Driver options.
15909
15910 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15911
15912         PR target/38118
15913         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15914         if coming from .tdata.
15915         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15916
15917 2011-01-06  Jan Hubicka  <jh@suse.cz>
15918
15919         PR lto/47188
15920         * collect2.c (main): Do not enable LTOmode when plugin is active.
15921
15922 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15923
15924         PR other/45915
15925         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15926         --version output if supported.
15927         * configure: Regenerate.
15928
15929 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15930
15931         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15932         Driver options.
15933
15934 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15935
15936         PR c/47150
15937         * c-convert.c (convert): When converting a complex expression
15938         other than COMPLEX_EXPR to a different complex type, ensure
15939         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15940         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15941         when converting COMPLEX_TYPE.
15942
15943 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15944
15945         PR tree-optimization/47139
15946         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15947         only the last reduction value is used outside the loop.  Update
15948         documentation.
15949
15950 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15951
15952         * config/rtems.opt: New.
15953         * config.gcc (*-*-rtems*): Use rtems.opt.
15954
15955 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15956
15957         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15958         processors do not support 3DNow instructions.
15959
15960 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15961
15962         * config/spu/spu.c (spu_option_override): Set parameter
15963         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15964
15965 2011-01-05  Jan Hubicka  <jh@suse.cz>
15966
15967         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15968         at the command line.
15969
15970 2011-01-05  Martin Jambor  <mjambor@suse.cz>
15971
15972         PR lto/47162
15973         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15974         deltas on streamed outgoing edges.
15975         (output_node_opt_summary): Output info for outgoing edges only when
15976         the node is in new parameter set.
15977         (output_cgraph_opt_summary): New parameter set, passed to the two
15978         aforementioned functions.  Update its forward declaration and its
15979         callee too.
15980
15981 2011-01-05  Tom Tromey  <tromey@redhat.com>
15982
15983         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15984         operator to c_finish_omp_atomic.
15985         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15986         (build_unary_op): Update.
15987         (build_modify_expr): Update.
15988         (build_asm_expr): Update.
15989
15990 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15991
15992         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15993         newly inserted insns.
15994         (pad_bb): Likewise.
15995         (spu_emit_branch_hint): Likewise.
15996         (insert_hbrp_for_ilb_runout): Likewise.
15997         (spu_machine_dependent_reorg): Call df_finish_pass after
15998         schedule_insns returns.
15999
16000 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16001
16002         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16003
16004 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16005
16006         PR tree-optimization/47005
16007         * tree-sra.c (struct access): Add 'non_addressable' bit.
16008         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16009         (decide_one_param_reduction): Return 0 if the parameter is passed by
16010         reference and one of the accesses in the group is non_addressable.
16011
16012 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16013
16014         PR tree-optimization/47056
16015         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16016         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16017         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16018
16019 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16020
16021         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16022         initializer.  Skip view conversions from aggregate types.
16023
16024 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16025
16026         PR bootstrap/47055
16027         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16028
16029 2011-01-04  Philipp Thomas  <pth@suse.de>
16030
16031         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16032         obvious typo.
16033
16034 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16035
16036         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16037         on empty epilogue sequences.
16038
16039 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16040
16041         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16042         non-static): New Driver options.
16043
16044 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16045
16046         PR driver/47137
16047         * gcc.c (default_compilers[]): Set combinable field to 0
16048         for all assembly languages.
16049
16050 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16051
16052         * config/mips/loongson3a.md: New file.
16053         * config/mips/mips.md: Include loongson3a.md.
16054         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16055         TUNE_LOONGSON_3A.
16056
16057 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16058
16059         PR middle-end/47017
16060         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16061         instead of convert_memory_address_addr_space on the base expression.
16062
16063 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16064
16065         * config/spu/spu.c (spu_option_override): Update error text
16066         for bad -march= / -mtune= values.
16067
16068 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16069
16070         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16071         if branch-hint optimization will be performed.
16072
16073 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16074
16075         PR tree-optimization/47148
16076         * ipa-split.c (split_function): Convert arguments to
16077         DECL_ARG_TYPE if possible.
16078
16079         PR tree-optimization/47155
16080         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16081         when computing uns.
16082
16083         PR rtl-optimization/47157
16084         * combine.c (try_combine): If undobuf.other_insn becomes
16085         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16086         and set *new_direct_jump_p too.
16087
16088 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16089
16090         PR tree-optimization/47021
16091         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16092
16093 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16094
16095         * gcc.c (process_command): Update copyright notice dates.
16096         * gcov.c (print_version): Likewise.
16097         * gcov-dump.c (print_version): Likewise.
16098         * mips-tfile.c (main): Likewise.
16099         * mips-tdump.c (main): Likewise.
16100
16101 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16102
16103         PR tree-optimization/46801
16104         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16105         aggregate fields start at byte boundary instead of the bit-field flag.
16106
16107 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16108
16109         PR driver/47137
16110         * gcc.c (main): Revert revision 168407.
16111
16112 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16113
16114         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16115
16116 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16117
16118         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16119         vector optab to expand vector/scalar shift, update gimple to vector.
16120
16121 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16122
16123         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16124         a thunk.
16125
16126 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16127
16128         PR tree-optimization/46984
16129         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16130         HOST_WIDE_INT.
16131         (cgraph_create_indirect_edge): Fixed line length.
16132         (cgraph_indirect_call_info): Declare.
16133         (cgraph_make_edge_direct) Update declaration.
16134         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16135         (cgraph_create_indirect_edge): Use it.
16136         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16137         callees.
16138         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16139         the new thunk_delta representation.
16140         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16141         HOST_WIDE_INT.
16142         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16143         (ipa_read_indirect_edge_info): Likewise.
16144         * lto-cgraph.c (output_edge_opt_summary): New function.
16145         (output_node_opt_summary): Call it on all outgoing edges.
16146         (input_edge_opt_summary): New function.
16147         (input_node_opt_summary): Call it on all outgoing edges.
16148
16149 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16150
16151         PR driver/47137
16152         * gcc.c (main): Don't check have_o when settting combine_inputs.
16153
16154 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16155
16156         * regrename.c: Add general comment describing the pass.
16157         (struct du_head): Remove 'length' field.
16158         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16159         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16160         Force renaming to the preferred class (if any) in the first pass and do
16161         not consider registers that belong to it in the second pass.
16162         (create_new_chain): Do not set 'length' field.
16163         (scan_rtx_reg): Likewise.
16164
16165 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16166
16167         PR tree-optimization/47140
16168         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16169         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16170         to bit_value_binop.
16171
16172         PR rtl-optimization/47028
16173         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16174         parm_birth_insn instead of at the beginning of first bb.
16175
16176 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16177
16178         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16179         Remove the word "see" before "@pxref".
16180         * doc/rtl.texi: Remove the word "see" before "@pxref".
16181
16182 2011-01-01  Jan Hubicka  <jh@suse.cz>
16183
16184         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16185         memory.
16186
16187 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16188
16189         PR target/38662
16190         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16191
16192 \f
16193 Copyright (C) 2011 Free Software Foundation, Inc.
16194
16195 Copying and distribution of this file, with or without modification,
16196 are permitted in any medium without royalty provided the copyright
16197 notice and this notice are preserved.