OSDN Git Service

* gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2
3         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
4
5 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6
7         * gengtype-state.c (read_state_params_structs): Initialize
8         previous.
9
10 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11
12         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
13         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
14
15 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
16
17         * config/i386/i386.md (*movtf_internal): Avoid allocating general
18         registers.  Penalize F*r->o alternative to prevent partial memory
19         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
20         CONST_DOUBLE immediates when optimizing function for size.  Do not move
21         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
22         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
23         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
24         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
25         alternatives.
26         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
27
28         (fp_register_operand splitters): Use fp_register_operand
29         constraint.  Do not use FP_REG_P in insn condition.
30         (any_fp_register_operand splitters): Use any_fp_register_operand
31         constraint.  Do not use ANY_FP_REG_P in insn condition.
32
33 2011-05-31  Jan Hubicka  <jh@suse.cz>
34
35         * cgraph.h (cgraph_inline_failed_t): Give enum a name
36         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
37         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
38         (lto_output_edge): Use output_enum and var_len_unsigned.
39         (lto_output_varpool_node): Likewise.
40         (input_overwrite_node): Do not take resolution parameter;
41         extract it from a bitpack.
42         (input_node): Do not read resolution; use input_enum and
43         var_len_unsigned.
44         (input_varpool_node): Likewise.
45         (input_edge): Likewise.
46         (input_cgraph_1): Likewise.
47
48 2011-05-31  Richard Guenther  <rguenther@suse.de>
49
50         * gimple.c (gimple_register_canonical_type): Do not register
51         any types via gimple_register_type.
52
53 2011-05-31  Jan Hubicka  <jh@suse.cz>
54
55         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
56         of thunks.
57
58 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
59
60         PR rtl-optimization/49235
61         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
62         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
63
64 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
65
66         PR tree-optimization/49093
67         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
68         data references.
69
70 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
71
72         PR debug/49047
73         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
74         for concrete functions containing the code of cloned functions.
75
76 2011-05-31  Richard Guenther  <rguenther@suse.de>
77
78         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
79         to ...
80         (forward_propagate_into_comparison_1): ... this.
81         (forward_propagate_comparison): Rename to ...
82         (forward_propagate_into_comparison): ... this.  Split out
83         real forward propagation code to ...
84         (forward_propagate_comparison): ... this.
85         (forward_propagate_into_gimple_cond): Remove looping.
86         (forward_propagate_into_cond): Likewise.
87         (simplify_not_neg_expr): Return whether we have done something.
88         (simplify_gimple_switch): Likewise.
89         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
90         (ssa_forward_propagate_and_combine): ... this.  Re-structure
91         to do a forward forward-propagation walk on BBs and a backward
92         stmt combining walk on BBs.  Consistently re-scan changed statements.
93         (pass_forwprop): Adjust.
94
95 2011-05-30  Ian Lance Taylor  <iant@google.com>
96
97         * godump.c (go_format_type): Correct length of name added to
98         obstack for anonymous field.
99
100 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
101
102         PR target/49186
103         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
104         part of the second operand is 0.
105
106 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
107
108         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
109         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
110         to memory for !TARGET_MEMORY_MISMATCH_STALL.
111         (*movdf_internal_rex64): Do not penalize F->r alternative.
112         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
113         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
114         when optimizing function for size.  Do not move CONST_DOUBLEs
115         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
116         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
117         SUBREGs.  Do not check for MEM_P operands in the insn condition,
118         check for ANY_FP_REGNO_P instead.
119         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
120         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
121         function for speed.
122         * config/i386/i386.c (ix86_option_override_internal): Do not
123         set TARGET_INTEGER_DFMODE_MOVES here.
124
125 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
126
127         PR target/49168
128         * config/i386/i386.md (*movtf_internal): Handle misaligned
129         load/store.
130
131 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
132
133         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
134         DW_TAG_rvalue_reference_type even for
135         -gdwarf-4 -fno-debug-types-section.
136
137 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
138
139         PR tree-optimization/46728
140         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
141         (build_and_insert_binop): New.
142         (gimple_expand_builtin_pow): Reorder args for
143         build_and_insert_call; use build_and_insert_binop; add more
144         optimizations for fractional exponents.
145
146 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
147
148         PR bootstrap/49190
149
150         Revert:
151         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
152
153         * tree.h (struct tree_identifier): Inherit from tree_typed, not
154         tree_common.
155         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
156         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
157         TS_BASE instead of TS_COMMON.
158         * varasm.c (assemble_name): Remove assert.
159
160 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
161
162         * config.gcc: Keep obselete list sorted.
163
164 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
165             Eric Botcazou  <ebotcazou@adacore.com>
166
167         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
168         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
169         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
170         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
171         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
172
173 2011-05-30  Richard Guenther  <rguenther@suse.de>
174
175         * gimple.c (gimple_types_compatible_p_1): Compare record
176         and union type members properly.
177
178 2011-05-30  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/49210
181         * ipa-split.c (split_function): Care for the case where the call
182         result is not trivially convertible to the result holding variable.
183
184 2011-05-30  Richard Guenther  <rguenther@suse.de>
185
186         PR tree-optimization/49218
187         * tree-vrp.c (adjust_range_with_scev): Properly check whether
188         overflow occured.
189
190 2011-05-30  Richard Guenther  <rguenther@suse.de>
191
192         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
193         New function split out from ...
194         (forward_propagate_into_gimple_cond): ... here.  Adjust.
195         (forward_propagate_into_cond): Likewise.
196         (forward_propagate_comparison): Also propagate into
197         comparisons on assignment RHS.  Change return value to
198         behave similar to forward_propagate_into_cond.
199         (tree_ssa_forward_propagate_single_use_vars): Handle
200         strict-overflow warnings properly for forward_propagate_comparison.
201
202 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
203
204         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
205         from plugin linker.
206         * configure: Regenerate.
207
208 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
209
210         PR tree-optimization/49199
211         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
212         non-reduction operands are either defined in the loop or by induction.
213
214 2011-05-29  Xinliang David Li  <davidxl@google.com>
215
216         * opts-global.c (handle_common_deferred_options): Handle new options.
217         * passes.c (register_one_dump_file): Call register_pass_name.
218         (execute_one_pass): Check explicit enable/disable flag.
219         (passr_hash): New function.
220         (passr_eq): Ditto.
221         (register_pass_name): Ditto.
222         (get_pass_by_name): Ditto.
223         (pass_hash): Ditto.
224         (pass_eq): Ditto.
225         (enable_pass): Ditto.
226         (disable_pass): Ditto.
227         (is_pass_explicitly_enabled_or_disabled): Ditto.
228
229 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
230
231         * config/i386/i386.md (*movoi_internal_avx): Use
232         standard_sse_constant_opcode for alternative 0.
233         (*movti_internal_sse): Ditto.
234         (*movti_internal_rex64): Use standard_sse_constant_opcode for
235         alternative 2.
236         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
237         sselog1 type moves.
238         (*movsi_internal): Ditto.
239         (*movdi_internal): Ditto.  Add ssecvt type moves.
240
241 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
242
243         PR target/48830
244         * rtlanal.c (simplify_subreg_regno): Adjust comment.
245
246 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
247
248         PR rtl-optimization/49095
249         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
250         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
251
252 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
253
254         PR target/43995
255         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
256         recurse_p argument.  Only follow register copies if it is set,
257         and prevent mips_find_pic_call_symbol from recursing.
258         (mips_find_pic_call_symbol): Add a recurse_p argument.
259         Pass it to mips_pic_call_symbol_from_set.
260         (mips_annotate_pic_calls): Update accordingly.
261
262 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
263
264         * emit-rtl.c (try_split): Use a loop to search for
265         NOTE_INSN_CALL_ARG_LOCATIONs.
266
267 2011-05-29  Richard Guenther  <rguenther@suse.de>
268
269         PR tree-optimization/49217
270         * ipa-pure-const.c (propagate_pure_const): Fix typos.
271
272 2011-05-28  Jan Hubicka  <jh@suse.cz>
273
274         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
275         length.
276         (string_slot_free): Remove
277         (create_output_block): Initialize obstack.
278         (destroy_output_block): Free obstack.
279         (lto_string_index): Add PERSISTENT parameter; do not duplicate
280         the string unless it needs to be added into the hash.
281         (lto_output_string_with_length): Add persistent attribute;
282         handle NULL strings.
283         (lto_output_string): Add PERSISTENT parameter.
284         (output_string_cst, output_identifier): Simplify.
285         (lto_output_location_bitpack): Update.
286         (lto_output_builtin_tree): Update.
287         * lto-streamer.h (struct output_block): Add obstack.
288         (lto_output_string, lto_output_string_with_length): Remove
289         declarations; functions are static now.
290
291 2011-05-28  Jan Hubicka  <jh@suse.cz>
292
293         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
294         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
295         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
296         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
297         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
298         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
299         unpack_ts_decl_with_vis_value_fields,
300         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
301         lto_get_builtin_tree): Use enum and variable length i/o.
302         * basic-block.h (profile_status_d): Add PROFILE_LAST.
303         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
304         New functions.
305         (bp_pack_enum, bp_unpack_enum): New macros.
306
307 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
308
309         * genrecog.c: Remove redundant forward declarations.
310
311 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
312
313         * config.gcc: Deprecate mips*-*-openbsd*.
314
315 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
316
317         PR bootstrap/49195
318         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
319         for match_op_dup.
320
321 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
322
323         PR middle-end/48981
324         * gengtype.c (vec_prefix_type): New function.
325         (note_def_vec): Use vec_prefix_type and change the length
326         attribute to be based on the prefix.
327         * vec.c: Include coretypes.h before vec.h.
328         (struct vec_prefix): Remove.
329         (vec_gc_p_reserve): Change the offsetof to sizeof.
330         (vec_gc_p_reserve_exact): Likewise.
331         (vec_heap_p_reserve): Likewise.
332         (vec_heap_p_reserve_exact): Likewise.
333         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
334         (vec_stack_p_reserve): Change the offsetof to sizeof.
335         (vec_stack_p_reserve_exact): Likewise.
336         * vec.h (struct vec_prefix): New struct definition.
337         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
338         (VEC_T_GTY(T,B)): Likewise.
339         (DEF_VEC_FUNC_P(T)): Use prefix field.
340         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
341         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
342
343 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
344
345         PR tree-optimization/46728
346         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
347         (powi_as_mults): Add gimple_set_location.
348         (build_and_insert_call): New.
349         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
350         0.5, 0.25, 0.75, 1./3., or 1./6.
351
352 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
353
354         * doc/contrib.texi: Update copyright years.
355         (Contributors): Add Zdenek Sojka.
356
357 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
358
359         * c-decl.c (c_push_function_context): Copy the current statement
360         list stack.
361         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
362         (finish_struct): Call building_stmt_list_p instead of checking
363         cur_stmt_list.
364         * c-parser.c (c_parser_postfix_expression): Likewise.
365         * c-typeck.c (c_end_compound_stmt): Likewise.
366         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
367         * tree-iterator.c (stmt_list_cache): Change to a VEC.
368         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
369         (free_stmt_list): Likewise.
370         * tree.h (struct tree_statement_list): Include typed_tree instead
371         of tree_common.
372         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
373         as TS_TYPED instead of TS_COMMON.
374
375 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
376             Uros Bizjak <ubizjak@gmail.com>
377
378         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
379         (HAVE_AS_IX86_TLSGDPTL): Define.
380         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
381         (HAVE_AS_IX86_TLSLDMPLT): Define.
382         * configure: Regenerate.
383         * config.in: Regenerate.
384         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
385         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
386         TARGET_SUN_TLS, use @tlsgdplt or @plt.
387         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
388         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
389         @tlsldmplt or @plt.
390         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
391
392 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
393
394         * sched-int.h (struct _haifa_deps_insn_data): New members cond
395         and reverse_cond.
396         (INSN_COND, INSN_REVERSE_COND): New macros.
397         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
398         once.
399         (sched_get_condition_with_rev): Cache the results, and look them up
400         if possible.
401         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
402         are clobbered by the current insn.
403         * target.def (exposed_pipline): New sched data hook.
404         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
405         * doc/tm.texi: Regenerate.
406
407 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
408
409         PR tree-optimization/49170
410         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
411         sincos or cexp.
412
413 2011-05-27  Richard Guenther  <rguenther@suse.de>
414
415         PR middle-end/49189
416         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
417         of comparisons.
418
419 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
420
421         * haifa-sched.c (sched_scan_info): Remove.
422         (schedule_block): Call sched_extend_luids rather than sched_init_luids
423         with NULL args.
424         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
425         Remove functions.
426         (sched_scan): Remove.
427         (sched_extend_luids): Renamed from luids_extend_insn and no longer
428         static.  All callers changed.
429         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
430         static.  All callers changed.
431         (sched_init_luids): Remove all arguments except the first.  All
432         callers changed.  Don't use sched_scan.
433         (haifa_init_h_i_d): Likewise.
434         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
435         manually rather than using sched_init_luids.  Likewise with
436         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
437         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
438         rather than sched_init_luids with NULL args.
439         * sel-sched-ir.c (new_insns): Remove variable.
440         (sched_scan): New static function, previously in haifa-sched.c.  Remove
441         all arguments but the first two; all callers changed.
442         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
443         rather than sched_init_luids.
444         (sel_init_bbs): Remove second argument.  All callers changed.
445         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
446         with NULL arguments.
447         (create_insn_rtx_from_pattern): Likewise.
448         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
449         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
450         (sched_init_insn_luid, sched_extend_luids): Declare.
451         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
452         declarations.
453
454 2011-05-27  Richard Guenther  <rguenther@suse.de>
455
456         PR middle-end/49177
457         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
458         A CMP B ? (T) true : (T) false for non-integral types T again.
459
460 2011-05-27  Jan Hubicka  <jh@suse.cz>
461
462         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
463         so 0 means NULL string.
464         (lto_output_string_with_length): ... here.
465         (lto_output_string, output_string_cst, output_identifier): Update
466         handling of NULL strings.
467         (lto_output_location_bitpack): New function.
468         (lto_output_location): Use it.
469         (lto_output_tree_ref): Use output_record_start.
470         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
471         len values.
472         * lto-streamer-in.c (string_for_index): Break out from ...; offset
473         values by 1.
474         (input_string_internal): ... here;
475         (input_string_cst, input_identifier, lto_input_string): Update handling
476         of NULL strings.
477         (lto_input_location_bitpack): New function
478         (lto_input_location): Use it.
479         (unpack_ts_type_common_value_fields): Pack align & alias in var len
480         values.
481         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
482         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
483         (bp_pack_value): Sanity check the value range.
484         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
485         New functions.
486         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
487         New functions.
488
489 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
490
491         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
492         call_arg_location instructions down the floor.
493
494 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
495
496         PR rtl-optimization/49154
497         * ira.c (setup_pressure_classes): Process class without sublcasses
498         as a candidate for pressure classes.
499
500 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
501
502         PR rtl-optimization/48575
503         * genrecog.c (position_type): New enum.
504         (position): New structure.
505         (decision): Use position structure instead of a string.
506         (root_pos, peep2_insn_pos_list): New variables.
507         (next_position, compare_positions): New functions.
508         (new_decision): Use position structures instead of strings.
509         (maybe_both_true): Likewise.
510         (change_state): Likewise.
511         (write_tree): Likewise.
512         (make_insn_sequence): Likewise.
513
514 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
515
516         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
517         TS_BASE instead of TS_COMMON.
518         (find_decls_types_r): Check for TS_TYPED structure before looking at
519         TREE_TYPE.
520         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
521         Add chain field.
522         (BLOCK_CHAIN): Use new chain field.
523
524 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
525
526         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
527         moves expensive on Power7 also.
528
529 2011-05-26  Richard Guenther  <rguenther@suse.de>
530
531         * fold-const.c (fold_unary_loc): Remove bogus code.
532
533 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
534
535         * tree.h (struct tree_identifier): Inherit from tree_typed, not
536         tree_common.
537         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
538         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
539         TS_BASE instead of TS_COMMON.
540         * varasm.c (assemble_name): Remove assert.
541
542 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
543
544         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
545         substituted first.
546         * libgcc-std.ver: Delete file.
547
548 2011-05-26  Richard Guenther  <rguenther@suse.de>
549
550         PR tree-optimization/48702
551         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
552         only when we know the base address is within bounds.
553         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
554         assume the base address of TARGET_MEM_REFs is in bounds.
555
556 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
557
558         PR target/49099
559         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
560         declaration in TARGET_SOLARIS.
561
562 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
563
564         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
565         The instruction is then expanded explicitly.
566         (supported_compare): Callable instruction.
567         (compare): Likewise.
568
569 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
570
571         PR c++/49165
572         * gimplify.c (shortcut_cond_r): Don't special case
573         COND_EXPRs if they have void type on one of their arms.
574
575 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
576
577         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
578         to reduce duplication, and to achieve a slightly more logical order
579         of operations.
580
581 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
582
583         PR tree-optimization/49161
584         * tree-vrp.c (struct case_info): New type.
585         (compare_case_labels): Sort case_info structs instead of
586         trees, and not primarily by CASE_LABEL uids but by
587         label_for_block indexes.
588         (find_switch_asserts): Put case labels into struct case_info
589         array instead of TREE_VEC, adjust sorting, compare label_for_block
590         values instead of CASE_LABELs.
591
592 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
593
594         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
595         ("orndi3_neon"): Likewise.
596         ("bic<mode>3_neon"): Likewise.
597
598 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
599
600         PR tree-optimization/49038
601         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
602         Ensure at least one epilogue iteration if required by data
603         accesses with gaps.
604         * tree-vectorizer.h (struct _loop_vec_info): Add new field
605         to mark loops that require peeling for gaps.
606         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
607         (vect_get_known_peeling_cost): Take peeling for gaps into
608         account.
609         (vect_transform_loop): Generate epilogue if required by data
610         access with gaps.
611         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
612         loop as requiring an epilogue if there are gaps in the end of
613         the strided group.
614
615 2011-05-25  Ian Lance Taylor  <iant@google.com>
616
617         * godump.c (go_format_type): Output the first field with a usable
618         Go type, if any.
619
620 2011-05-25  Ian Lance Taylor  <iant@google.com>
621
622         * godump.c (go_format_type): Check for invalid type names, pointer
623         target types, and struct field types.
624
625 2011-05-25  Jason Merrill  <jason@redhat.com>
626
627         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
628
629 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
630
631         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
632
633 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
634
635         * config/i386/i386.md (*movqi_extv_1)): Put back
636         "register_operand" check in "type" calculation.
637         (*movqi_extzv_2): Likewise.
638
639 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
640
641         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
642
643 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
644
645         PR bootstrap/49160
646         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
647         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
648         __divxc3, __divtc3): Wrap definitions in #ifndef.
649
650 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
651
652         PR target/49142
653         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
654         "register_operand" check and replace q_regs_operand with
655         QIreg_operand in "type" calculation.
656         (*movqi_extv_1): Likewise.
657         (*movqi_extzv_2_rex64): Likewise.
658         (*movqi_extzv_2): Likewise.
659
660         * config/i386/predicates.md (QIreg_operand): New.
661
662 2011-05-25  Richard Guenther  <rguenther@suse.de>
663
664         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
665         type-based offset disambiguation, streamline MEM_REF and
666         TARGET_MEM_REF handling.
667
668 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
669
670         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
671         (bdesc_special_args): Add pause intrinsic.
672
673         * config/i386/i386.md (UNSPEC_PAUSE): New.
674         (pause): Likewise.
675         (*pause): Likewise.
676         * config/i386/ia32intrin.h (__pause): Likewise.
677
678         * doc/extend.texi (X86 Built-in Functions): Add documentation for
679         pause intrinsic.
680
681 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
682
683         PR tree-optimization/46728
684         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
685         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
686
687 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
688
689         * tree.h (struct tree_exp): Inherit from struct tree_typed.
690         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
691         instead of TS_COMMON.
692
693 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
694
695         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
696         LIBGCC2_GNU_PREFIX is defined.
697         (__N): New macro.
698         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
699         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
700         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
701         __clz_tab): Define using __N.
702         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
703         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
704         * target.def (libfunc_gnu_prefix): New hook.
705         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
706         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
707         * doc/tm.texi: Regenerate.
708         * system.h (LIBGCC2_GNU_PREFIX): Poison.
709         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
710         account.
711         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
712         (init_optabs): Likewise for the bswap libfuncs.
713         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
714         and divide.
715         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
716         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
717         * libgcc-std.ver: Remove.
718         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
719         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
720         libgcc-std.ver.
721         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
722         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
723         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
724         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
725         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
726         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
727         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
728         * config/fixed-bit.h (FIXED_OP): Define differently depending on
729         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
730         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
731
732 2011-05-25  Jan Hubicka  <jh@suse.cz>
733
734         * lto-streamer-out.c (output_record_start): Use lto_output_enum
735         (lto_output_tree): Use output_record_start.
736         * lto-streamer-in.c (input_record_start): Use lto_input_enum
737         (lto_get_pickled_tree): Use input_record_start.
738         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
739         (lto_value_range_error): New function.
740         * lto-streamer.h (lto_value_range_error): Declare.
741         (lto_output_int_in_range, lto_input_int_in_range): New functions.
742         (lto_output_enum, lto_input_enum): New macros.
743
744 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
745
746         * common.opt (flag_stack_usage_info): New variable.
747         (-Wstack-usage): New option.
748         * doc/invoke.texi (Warning options): Document -Wstack-usage.
749         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
750         <OPT_fstack_usage>: Likewise.
751         * toplev.c (output_stack_usage): Handle -Wstack-usage.
752         * calls.c (expand_call): Test flag_stack_usage_info variable instead
753         of flag_stack_usage.
754         (emit_library_call_value_1): Likewise.
755         * explow.c (allocate_dynamic_stack_space): Likewise.
756         * function.c (instantiate_virtual_regs ): Likewise.
757         (prepare_function_start): Likewise.
758         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
759         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
760         * config/arm/arm.c (arm_expand_prologue): Likewise.
761         (thumb1_expand_prologue): Likewise.
762         * config/avr/avr.c (expand_prologue): Likewise.
763         * config/i386/i386.c (ix86_expand_prologue): Likewise.
764         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
765         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
766         * config/mips/mips.c (mips_expand_prologue): Likewise.
767         * config/pa/pa.c (hppa_expand_prologue): Likewise.
768         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
769         * config/s390/s390.c (s390_emit_prologue): Likewise.
770         * config/sh/sh.c (sh_expand_prologue): Likewise.
771         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
772         * config/spu/spu.c (spu_expand_prologue): Likewise.
773
774 2011-05-25  Richard Guenther  <rguenther@suse.de>
775
776         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
777         (gimple_canonical_types_compatible_p): Likewise.
778
779 2011-05-25  Jan Hubicka  <jh@suse.cz>
780
781         PR middle-end/49062
782         * ipa.c (function_and_variable_visibility): Only add to same
783         comdat group list if DECL_ONE_ONLY.
784
785 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
786
787         PR rtl-optimization/49014
788         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
789
790 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
791
792         PR target/49128
793         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
794
795 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
796
797         PR rtl-optimization/48757
798         * ira-build.c (loop_with_eh_edge_p): Rename to
799         loop_with_complex_edge_p, check edges on complexity, make function
800         conditional.
801         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
802         conditional.
803
804 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
805
806         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
807         force flag_ira_share_save_slots to 0.
808
809 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
810
811         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
812         (vt_initialize): Set PROLOGUE_BB unconditionally.
813         Add block comment about CFA_BASE_RTX machinery.
814         Reset FP_CFA_OFFSET to -1 on all invalid paths.
815         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
816
817 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
818
819         PR objc/48187
820         * c-parser.c (c_parser_objc_class_instance_variables): More robust
821         parsing of syntax error in ObjC instance variable lists.  In
822         particular, avoid an infinite loop if there is a stray ']'.
823         Updated error message.
824
825 2011-05-24  Ian Lance Taylor  <iant@google.com>
826
827         * godump.c (go_define): Don't accept a string immediately after
828         another operand.
829
830 2011-05-24  Ian Lance Taylor  <iant@google.com>
831
832         * godump.c (struct godump_container): Add invalid_hash field.
833         (go_format_type): Return false if type is found in invalid_hash.
834         (go_output_typedef): Add invalid type to invalid_hash.
835         (go_finish): Create and delete invalid_hash.
836
837 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
838
839         PR tree-optimization/46728
840         * tree-ssa-math-opts.c (powi_table): New.
841         (powi_lookup_cost): New.
842         (powi_cost): New.
843         (powi_as_mults_1): New.
844         (powi_as_mults): New.
845         (gimple_expand_builtin_powi): New.
846         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
847         (gate_cse_sincos): Remove sincos/cexp restriction.
848
849 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
850
851         PR target/3746
852         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
853         mips-tdump native.
854         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
855         * mips-tdump.c: Likewise.
856
857 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
858
859         PR target/49128
860         * config/i386/driver-i386.c (host_detect_local_cpu): Always
861         add -mno-XXX.  Handle FMA.
862
863 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
864
865         PR rtl-optimization/48633
866         * ira-build.c (loop_with_eh_edge_p): New function.
867         (mark_loops_for_removal): Use it.
868
869 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
870
871         PR rtl-optimization/48971
872         * ira.c (setup_pressure_classes): Don't check register move cost
873         for classes with one registers.  Don't add pressure class if there
874         is a pressure class with the same available hard registers.
875         Check contains_reg_of_mode.  Fix a typo in collecting
876         temp_hard_regset.  Ignore hard registers not belonging to a class.
877
878 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
879
880         PR target/49133
881         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
882
883 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
884             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
885
886         PR gcov-profile/48845
887         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
888
889 2011-05-24  Richard Guenther  <rguenther@suse.de>
890
891         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
892         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
893         (gimple_types_compatible_p_1): Adjust.
894         (iterative_hash_canonical_type): Do not bother about complete vs.
895         incomplete types.
896         (gimple_canonical_types_compatible_p): Likewise.
897
898 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
899
900         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
901
902 2011-05-24  Richard Guenther  <rguenther@suse.de>
903
904         PR bootstrap/49078
905         * gimple.c (gimple_register_canonical_type): Revert
906         previous change.
907         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
908         does not for a tree for the case where it matters.  Cache
909         pointer-type alias-sets.
910
911 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
912
913         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
914         (OBJS): Remove options.o, opts-common.o and prefix.o.
915         (OBJS-libcommon-target): New.
916         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
917         (BACKEND): Include libcommon-target.a.
918         (MOSTLYCLEANFILES): Include libcommon-target.a.
919         (libcommon-target.a): New.
920         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
921         prefix.o.
922
923 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
924
925         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
926         parts of output shared with the driver.
927         * optc-gen.awk: Don't generate parts of output not shared with the
928         driver.
929         * opth-gen.awk: Remove GCC_DRIVER conditionals.
930         * doc/options.texi (SourcerInclude): Mention options-save.c.
931         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
932         (OBJS): Add options-save.o.
933         (options-save.c, options-save.o): New.
934         (options.o): Update dependencies.
935         (gcc-options.o): Remove.
936         (mostlyclean): Remove options-save.c.
937
938 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
939
940         PR debug/49032
941         * dbxout.c: Include cgraph.h.
942         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
943         and without value expr, return NULL if no varpool node exists for
944         it or if it is not needed.
945         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
946
947         PR c/49120
948         * c-decl.c (start_decl): Convert expr to void_type_node.
949
950 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
951
952         PR rtl-optimization/48826
953         * emit-rtl.c (try_split): When splitting a call that is followed
954         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
955
956 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
957
958         * cfgexpand.c (expand_debug_expr): For unused non-addressable
959         parameters passed in memory prefer using DECL_INCOMING_RTL over
960         the pseudos it will be copied into.
961
962 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
963
964         PR target/47315
965         * config/i386/i386.c (ix86_option_override_internal): Save the
966         initial options after checking vzeroupper.
967
968 2011-05-23  David Li  <davidxl@google.com>
969
970         PR tree-optimization/48988
971         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
972         Initialize has_valid_pred for each pred chain.
973
974 2011-05-23  Richard Guenther  <rguenther@suse.de>
975
976         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
977         (iterative_hash_gimple_type): Always hash type names.
978
979 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
980
981         * c-typeck.c (build_function_call_vec): Tweak call to
982         check_function_arguments.
983
984 2011-05-23  Richard Guenther  <rguenther@suse.de>
985
986         PR tree-optimization/49115
987         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
988         is not necessarily carried out, do not claim it kills the ref.
989         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
990
991 2011-05-23  Richard Guenther  <rguenther@suse.de>
992
993         PR middle-end/15419
994         * builtins.c (fold_builtin_memory_op): Be less restrictive about
995         what pointer types we accept for folding.
996
997 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
998
999         * gthr-gnat.c: Remove.
1000         * gthr-gnat.h: Remove.
1001         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1002         * config/t-freebsd (LIB2ADDEH): Likewise.
1003         * config/t-linux (LIB2ADDEH): Likewise.
1004         * config/t-sol2 (LIB2ADDEH): Likewise.
1005         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1006         * configure.ac (target_thread_file): Remove gnat handling.
1007         * configure: Regenerate.
1008         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1009
1010 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1011             Eric Botcazou  <ebotcazou@adacore.com>
1012
1013         * gcov.c (create_file_names): If no object directory is specified,
1014         keep the directory of the file.
1015
1016 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1017
1018         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1019         * configure: Regenerate.
1020
1021 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1022
1023         PR middle-end/48973
1024         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1025         failed and the comparison has a single bit signed type, use
1026         constm1_rtx instead of const1_rtx for true value.
1027         (do_store_flag): If ops->type is single bit signed type, disable
1028         signel bit test optimization and pass -1 instead of 1 as last
1029         parameter to emit_store_flag_force.
1030
1031 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1032
1033         PR target/45098
1034         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1035         function.
1036         (infer_loop_bounds_from_undefined): Use new function.
1037
1038 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1039
1040         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1041         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1042         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1043         and -O0 otherwise.
1044         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1045
1046 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1047
1048         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1049         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1050         returns true.
1051
1052 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1053
1054         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1055
1056 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1057
1058         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1059         UNSPEC_MOVE_PIC pattern.
1060
1061 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1062
1063         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1064         (sparc-*-rtems*): Likewise.
1065         (sparc64-*-elf*): Likewise.
1066         (sparc64-*-rtems*): Likewise.
1067         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1068         * config/sparc/t-crtin: New file.
1069         * config/sparc/t-sol2 (crti.o): Delete rule.
1070         (crtn.o): Likewise.
1071         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1072         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1073         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1074         (ENDFILE_SPEC): Add crtn.o.
1075
1076 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1077
1078         PR middle-end/48689
1079         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1080         CODE_CONTAINS_STRUCT (TS_COMMON).
1081
1082 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR middle-end/49029
1085         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1086         only after deciding which mode to use.
1087
1088 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1089
1090         PR target/45098
1091         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1092         for call to get_shiftadd_cost.
1093
1094 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         PR target/49104
1097         * config/i386/cpuid.h (bit_MMXEXT): New define.
1098
1099 2011-05-22  Nick Clifton  <nickc@redhat.com>
1100
1101         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1102         initialisation of non-existant args[2] element.  Use args[] array
1103         not arg[] array to pass arguments to build_function_type_list.
1104
1105 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1106
1107         PR tree-optimization/49087
1108         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1109
1110 2011-05-21  Jason Merrill  <jason@redhat.com>
1111
1112         PR c++/49092
1113         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1114         static storage duration.
1115
1116 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1117
1118         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1119         frame pointer.
1120
1121 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1122
1123         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1124         false if there are call-saved registers here...
1125         (sparc_can_use_return_insn_p): ...but here instead.
1126         (save_or_restore_regs): Fix thinko.
1127         (sparc_expand_prologue): Use current_function_is_leaf.
1128         (sparc_frame_pointer_required): Likewise.
1129
1130 2011-05-21  Nick Clifton  <nickc@redhat.com>
1131
1132         PR target/49098
1133         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1134
1135 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1136
1137         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1138         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1139
1140 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1141
1142         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1143         * optc-gen.awk: Move common code to opt-read.awk.
1144         * opth-gen.awk: Likewise.
1145         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1146
1147 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1148
1149         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1150
1151 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1152
1153         PR target/45098
1154         * tree-ssa-loop-ivopts.c: Include expmed.h.
1155         (get_shiftadd_cost): New function.
1156         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1157
1158 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1159
1160         PR bootstrap/49086
1161         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1162         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1163
1164 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1165
1166         * Makefile.in: Update comment referring to $(OBJS-common).
1167
1168 2011-05-20  Ian Lance Taylor  <iant@google.com>
1169
1170         * godump.c (go_output_typedef): Put enum constants in the macro
1171         hash table to avoid duplicate Go const definitions.
1172
1173 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1174
1175         * Makefile.in (LIBDEPS): Add libcommon.a.
1176         (LIBS): Likewise.
1177         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1178         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1179         pretty-print.o and version.o.
1180         (OBJS-libcommon): New.
1181         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1182         (BACKEND): Add libcommon.a.
1183         (MOSTLYCLEANFILES): Likewise.
1184         (libcommon.a): New.
1185         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1186         (cpp$(exeext)): Likewise.
1187         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1188         pretty-print.o and input.o.
1189         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1190         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1191         (errors.o): Remove.
1192         (mips-tfile): Don't explicitly use version.o.
1193         (mips-tdump): Likewise.
1194         (gcov.o): Depend on $(DIAGNOSTIC_H).
1195         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1196         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1197         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1198         * gcov-dump.c: Include intl.h and diagnostic.h.
1199         (main): Initialize diagnostics.
1200         * gcov.c: Include diagnostic.h.
1201         (fnotice): Remove.
1202         (main): Initialize diagnostics.
1203         * lto-wrapper.c: Include diagnostic.h.
1204         (main): Initialize diagnostics.
1205
1206 2011-05-20  Michael Matz  <matz@suse.de>
1207
1208         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1209
1210 2011-05-20  Michael Matz  <matz@suse.de>
1211             Richard Guenther  <rguenther@suse.de>
1212
1213         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1214         use lto_streamer_cache_append directly instead of returning a VEC.
1215         (preload_common_node): Remove.
1216         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1217         track seen nodes.
1218         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1219
1220 2011-05-20  Richard Guenther  <rguenther@suse.de>
1221
1222         PR tree-optimization/49079
1223         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1224         MEM_REFs correctly for the trailing array access detection.
1225         Special case constants the same way as decls for overall size
1226         constraining.
1227
1228 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1229
1230         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1231         argument expansion.
1232
1233 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR tree-optimization/49073
1236         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1237         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1238         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1239
1240 2011-05-20  Richard Guenther  <rguenther@suse.de>
1241
1242         PR middle-end/48849
1243         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1244         of pointer types the same way the middle-end does.
1245
1246 2011-05-20  Richard Guenther  <rguenther@suse.de>
1247
1248         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1249         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1250
1251 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1252
1253         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1254         (fma4_fmaddsub): Likewise
1255
1256 2011-05-19  Jan Hubicka  <jh@suse.cz>
1257
1258         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1259         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1260         (type_pair_cache): New static var.
1261         (lookup_type_pair): Use fixed sized custom hash; make inline.
1262         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1263         calls of lookup_type_pair.
1264         (print_gimple_types_stats): Remove cache stats.
1265         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1266         and gtc_ob.
1267
1268 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1269
1270         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1271         when TARGET_RDRND is active.
1272         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1273         Generate dummy SImode target register when target is NULL.
1274
1275 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1276
1277         * config/arm/arm-fpus.def: New.
1278         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1279         arm-fpus.def.
1280         * config/arm/arm-tables.opt: Regenerate.
1281         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1282         (arm_option_override): Don't decode FPU name to string here.
1283         * config/arm/arm.opt (mfpu=): Use Enum.
1284         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1285         Update dependencies.
1286
1287 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1288
1289         * collect2.c: Include diagnostic.h.
1290         (fatal_perror, fatal, error, fancy_abort): Remove.
1291         (main): Set progname.  Call xmalloc_set_program_name and
1292         diagnostic_initialize.
1293         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1294         scan_libraries, resolve_lib_name): Call fatal_error instead of
1295         fatal and fatal_perror.
1296         * collect2.h (error, fatal, fatal_perror): Don't declare.
1297         * tlink.c: Include diagnostic-core.h.
1298         (recompile_files): Call fatal_error instead of fatal_perror.
1299         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1300         pretty-print.o and input.o.
1301         (collect2.o, tlink.o): Update dependencies.
1302
1303 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1306
1307 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1308
1309         PR target/40483
1310         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1311         COMDAT group syntax, both SPARC and x86 variants.
1312         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1313         * configure: Regenerate.
1314         * config/sol2.h (TARGET_SOLARIS): Define.
1315         (PUSHSECTION_FORMAT): Remove.
1316         (SECTION_NAME_FORMAT): Define.
1317         * config/sol2.c: Include hashtab.h.
1318         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1319         expansion, using SECTION_NAME_FORMAT.
1320         (solaris_comdat_htab): New variable.
1321         (struct comdat_entry): Define.
1322         (comdat_hash): New function.
1323         (comdat_eq): New function.
1324         (solaris_elf_asm_comdat_section): New function.
1325         (solaris_define_comdat_signature): New function.
1326         (solaris_code_end): New function.
1327         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1328         (solaris_code_end): Declare.
1329         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1330         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1331         solaris_code_end.
1332         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1333         Remove ATTRIBUTE_UNUSED.
1334         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1335         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1336         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1337         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1338         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1339         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1340         (PUSHSECTION_FORMAT): Remove.
1341         (SECTION_NAME_FORMAT): Redefine.
1342
1343 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1344
1345         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1346         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1347         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1348
1349 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1350             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1351
1352         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1353
1354 2011-05-19  Richard Guenther  <rguenther@suse.de>
1355
1356         PR middle-end/48985
1357         * tree-object-size.c (addr_object_size): If the pointed-to
1358         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1359
1360 2011-05-19  Richard Guenther  <rguenther@suse.de>
1361
1362         * gimple.c (gimple_types_compatible_p_1): Compare names of
1363         the types themselves.
1364         (iterative_hash_gimple_type): And hash them that way.
1365         (gimple_register_type_1): If we register a main variant properly
1366         initialize the leader to ourselves.
1367
1368 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1369
1370         PR target/45098
1371         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1372         get_loop_invariant_expr_id.
1373         (get_loop_invariant_expr_id): Use get_expr_id.
1374         (parm_decl_cost): New function.
1375         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1376         Improve bound cost estimation.  Use different inv_expr_id for elim and
1377         express cases.
1378
1379 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1380
1381         PR target/45098
1382         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1383         cost_base.cost == 0.
1384
1385 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1386
1387         PR target/49002
1388         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1389         Properly handle load cast.
1390
1391 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1392
1393         PR tree-optimization/49039
1394         * tree-vrp.c (extract_range_from_binary_expr): For
1395         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1396         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1397
1398 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1399
1400         PR target/45098
1401         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1402
1403 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1404
1405         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1406         (*tls_global_dynamic_64): Ditto.
1407         (*tls_local_dynamic_base_32_gnu): Ditto.
1408         (*tls_local_dynamic_base_64): Ditto.
1409         (tls_initial_exec_64_sun): Ditto.
1410
1411 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1412
1413         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1414         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1415         bf592-none.
1416         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1417         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1418         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1419         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1420         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1421         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1422         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1423
1424 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1425
1426         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1427         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1428         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1429         target_thread_pointer, arm_structure_size_boundary, struct
1430         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1431         struct abi_name, arm_all_abis): Remove.
1432         (arm_option_override) Don't process most enumerated option values here.
1433         Don't process target_fpe_name here.  Work with integer not string for
1434         structure size boundary; use separate diagnostics for each case.
1435         * config/arm/arm.h (enum float_abi_type, enum
1436         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1437         to arm-opts.h.
1438         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1439         arm_structure_size_boundary): Remove.
1440         * config/arm/arm.opt (mabi=): Use Enum and Init.
1441         (arm_abi_type): New Enum and EnumValue entries.
1442         (mfloat-abi=): Use Enum and Init.
1443         (float_abi_type): New Enum and EnumValue entries.
1444         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1445         (mfp16-format=): Use Enum and Init.
1446         (arm_fp16_format_type): New Enum and EnumValue entries.
1447         (mstructure-size-boundary=): Use UInteger and Init.
1448         (mtp=): Use Enum and Init.
1449         (arm_tp_type): New Enum and EnumValue entries.
1450
1451 2011-05-18  Richard Guenther  <rguenther@suse.de>
1452
1453         PR tree-optimization/49018
1454         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1455         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1456         gimple_has_side_effects.
1457
1458 2011-05-18  Richard Guenther  <rguenther@suse.de>
1459
1460         * gimple.c (gimple_register_type_1): New function, split out from ...
1461         (gimple_register_type): ... here.  Avoid infinite recursion.
1462
1463 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1464
1465         PR tree-optimization/41881
1466         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1467         reduction_chains along with a macro for its access.
1468         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1469         (destroy_loop_vec_info): Free reduction chains.
1470         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1471         (vect_is_slp_reduction): New function.
1472         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1473         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1474         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1475         definition types for reduction chains.
1476         (vect_supported_load_permutation_p): Don't allow permutations for
1477         reduction chains.
1478         (vect_analyze_slp_instance): Support reduction chains.
1479         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1480         (vect_get_constant_vectors):  Handle reduction chains.
1481         (vect_schedule_slp_instance): Mark the first statement of the
1482         reduction chain as reduction.
1483
1484 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1485
1486         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1487         names for group elements access.
1488         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1489         reduction chains as well.  Remove data reference and interleaving
1490         related words from the fields names.
1491         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1492         elements access.
1493         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1494         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1495         vect_update_interleaving_chain, vect_same_range_drs,
1496         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1497         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1498         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1499         vect_analyze_group_access, vect_analyze_data_ref_access,
1500         vect_create_data_ref_ptr, vect_transform_strided_load,
1501         vect_record_strided_load_vectors): Likewise.
1502         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1503         vect_model_load_cost, vectorizable_store, vectorizable_load,
1504         vect_remove_stores, new_stmt_vec_info): Likewise.
1505         * tree-vect-slp.c (vect_build_slp_tree,
1506         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1507
1508 2011-05-18  Richard Guenther  <rguenther@suse.de>
1509
1510         PR middle-end/48989
1511         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1512         operand verification.
1513         (verify_gimple_assign_binary): Likewise.
1514         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1515         to non-1-precision BOOLEAN_TYPEs.
1516
1517 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1518
1519         PR target/45098
1520         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1521
1522 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1523
1524         PR tree-optimization/49000
1525         * tree-ssa.c (execute_update_addresses_taken): Call
1526         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1527         be rewritten and decl has been marked for renaming, reset
1528         the debug stmt.
1529
1530 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1531
1532         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1533         enum_opts_set when testing if attributes have set -mfpmath=.
1534
1535 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1536
1537         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1538
1539 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1540
1541         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1542         info->entry with 0
1543         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1544         id.transform_lang_insert_block with NULL.
1545
1546 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1547
1548         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1549         (output_fp_compare): Change args 3 and 4 to bool.
1550         (ix86_expand_call): Change arg 6 to bool.
1551         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1552         (ix86_attr_length_vex_default): Change arg 3 to bool.
1553         * config/i386/i386.md: Update all uses.
1554         * config/i386/i386.c: Ditto.
1555         (ix86_flags_dependent): Change return type to bool.
1556
1557 2011-05-17  Richard Guenther  <rguenther@suse.de>
1558
1559         * gimple.c (type_hash_pair_compare): Fix comparison.
1560
1561 2011-05-17  Richard Guenther  <rguenther@suse.de>
1562
1563         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1564         case some more, fix final hash value of the non-singleton case.
1565
1566 2011-05-17  Richard Guenther  <rguenther@suse.de>
1567
1568         PR bootstrap/49013
1569         Revert
1570         2011-05-16  Richard Guenther  <rguenther@suse.de>
1571
1572         * gimple.c (gimple_types_compatible_p_1): Use names of the
1573         type itself, not its main variant.
1574         (iterative_hash_gimple_type): Likewise.
1575
1576 2011-05-17  Richard Guenther  <rguenther@suse.de>
1577
1578         * gimple.c (gimple_register_canonical_type): Use the main-variant
1579         leader for computing the canonical type.
1580
1581 2011-05-17  Nick Clifton  <nickc@redhat.com>
1582
1583         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1584         moves.
1585
1586         * config/rx/rx.md: Add peephole to remove redundant extensions
1587         after loads.
1588         (bitset_in_memory): Use rx_restricted_mem_operand.
1589         (bitinvert_in_memory): Likewise.
1590         (bitclr_in_memory): Likewise.
1591
1592 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1593             Nick Clifton  <nickc@redhat.com>
1594
1595         * config/rx/rx.md: Add peepholes to match a register move followed
1596         by a comparison of the moved register.  Replace these with an
1597         addition of zero that does both actions in one instruction.
1598
1599 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1600
1601         PR target/48986
1602         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1603         predicate to allow CONST_INT.
1604         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1605
1606 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1607
1608         * opts-common.c (opt_enum_arg_to_value): New.
1609         * opts.h (opt_enum_arg_to_value): Declare.
1610         * config/i386/i386.opt (fpmath): Remove.
1611         (mfpmath=): Use Enum, Init and Save.
1612         (fpmath_unit): New Enum and EnumValue entries.
1613         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1614         name for function fpmath state.
1615         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1616         * config/i386/i386.c: Include diagnostic.h.
1617         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1618         (ix86_target_string): Take enum fpmath_unit value instead of string.
1619         (ix86_debug_options): Update call to ix86_target_string.
1620         (ix86_option_override_internal): Don't process fpmath strings here.
1621         (x86_function_specific_save, ix86_function_specific_restore):
1622         Don't handle fpmath state specially.
1623         (ix86_function_specific_print): Pass fpmath state to
1624         ix86_target_string instead of printing in this function.
1625         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1626         Handle enum attributes.
1627         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1628         (ix86_valid_target_attribute_tree): Update option_strings
1629         handling.  Handle fpmath as enum option.
1630         (ix86_can_inline_p): Update field names for function fpmath state.
1631         (ix86_expand_builtin): Update call to ix86_target_string.
1632         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1633         (ix86_fpmath): Remove.
1634         * config/i386/t-i386 (i386.o): Update dependencies.
1635
1636 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1637
1638         PR preprocessor/48677
1639         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1640         from decoded_options[0], not from itself.
1641
1642 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1643
1644         * config/i386/constraints.md (z): New constraint.
1645         * config/i386/i386.c (c): New mode attribute.
1646         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1647         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1648         constraint for operand 0.
1649         (*call_vzeroupper): Ditto.
1650         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1651         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1652         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1653         Use "lzm" constraint for operand 0.
1654         (*call_pop_vzeroupper): Ditto.
1655         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1656         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1657         constraint for operand 0.
1658         (*sibcall_vzeroupper): Ditto.
1659         (*sibcall_rex64_ms_sysv): Ditto.
1660         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1661         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1662         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1663         (*sibcall_pop_vzeroupper): Ditto.
1664         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1665         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1666         mode iterator.  Use "<c>zm" constraint for operand 1.
1667         (*call_value_vzeroupper): Ditto.
1668         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1669         for operand 1.
1670         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1671         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1672         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1673         (*call_value_pop_vzeroupper): Ditto.
1674         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1675         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1676         mode iterator.  Use "Uz" constraint for operand 1.
1677         (*sibcall_value_vzeroupper): Ditto.
1678         (*sibcall_value_rex64_ms_sysv): Ditto.
1679         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1680         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1681         constraint for operand 1.
1682         (*sibcall_value_pop_vzeroupper): Ditto.
1683         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1684         and "z" constraint for operand 2.
1685         (*tls_global_dynamic_32_gnu): Ditto.
1686         (*tls_local_dynamic_base_32_gnu): Ditto.
1687         (*tls_local_dynamic_base_64): Ditto.
1688         (*tls_local_dynamic_32_once): Ditto.
1689         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1690         Update all callers.
1691         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1692
1693 2011-05-16  Richard Guenther  <rguenther@suse.de>
1694
1695         * gimple.c (gimple_types_compatible_p_1): Use names of the
1696         type itself, not its main variant.
1697         (iterative_hash_gimple_type): Likewise.
1698
1699 2011-05-16  Richard Guenther  <rguenther@suse.de>
1700
1701         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1702         always visit pointer target and function result and argument types.
1703
1704 2011-05-16  Jason Merrill  <jason@redhat.com>
1705
1706         PR c++/48999
1707         * tree-inline.c (copy_statement_list): Put back recursion.
1708
1709 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1710
1711         PR target/27663
1712         PR target/41076
1713         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1714         * config/avr/avr.md ("*ior<mode>qi.byte0",
1715         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1716
1717 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1718
1719         PR target/45099
1720         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1721         register is needed for a function argument.
1722
1723 2011-05-16  Richard Guenther  <rguenther@suse.de>
1724
1725         * gimple.c (struct type_hash_pair): New type.
1726         (type_hash_pair_compare): New function.
1727         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1728
1729 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1730
1731         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1732
1733 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1734
1735         * config/i386/i386.md (floating point move splitters): Fix
1736         usage of standard_80387_constant_p.
1737         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1738
1739 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1740
1741         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1742
1743 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1744
1745         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1746         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1747         (tree_ssa_lim_finalize): Likewise.
1748
1749 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1750
1751         * config/i386/constraint.md (Yd, Yx): New register constraints.
1752         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1753         Yd conditional register constraint.
1754         (*movtf_internal): Use standard_sse_constant_opcode.
1755         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1756         Yx conditional register constraint.
1757         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1758         Yd conditional register constraint.  Use standard_sse_constant_p to
1759         check for valid SSE constants and call standard_sse_constant_opcode to
1760         output SSE insn.
1761         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1762         constants and call standard_sse_constant_opcode to output SSE insn.
1763         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1764         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1765         optimize_size is set.
1766         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1767
1768 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1769
1770         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1771
1772 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1773
1774         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1775         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1776         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1777         (evaluate_conditions_for_ipcp_clone): Removed.
1778         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1779         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1780         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1781
1782 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1783
1784         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1785         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1786         lieu of MAY_HAVE_DEBUG_STMTS.
1787         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1788         debug statements if !MAY_HAVE_DEBUG_STMTS.
1789
1790 2011-05-13  Martin Thuresson  <martint@google.com>
1791
1792         PR gcov-profile/47793
1793         * libgcov.c (gcov_exit): Support relative profile paths.
1794         * doc/invoke.texi (-fprofile-dir): Update for above change.
1795
1796 2011-05-13  Richard Guenther  <rguenther@suse.de>
1797
1798         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1799         type-pair caching, do not compare hashes.
1800
1801 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1802
1803         PR middle-end/48965
1804         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1805         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1806
1807 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1808
1809         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1810         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1811         compatible type for TRUTH_NOT_EXPR.
1812
1813 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1814
1815         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1816         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1817         can_create_pseudo_p ().
1818
1819 2011-05-13  Richard Guenther  <rguenther@suse.de>
1820
1821         PR lto/48978
1822         * gimple.c (iterative_hash_gimple_type): Revert change in
1823         pointer target and function result and argument hashing.
1824
1825 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1826
1827         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1828         (*movxf_internal_nointeger): Ditto.
1829         (*movdf_internal_rex64): Ditto.
1830         (*movdf_internal): Ditto.
1831         (*movdf_internal_nointeger): Ditto.
1832         (*movsf_internal): Ditto.
1833         (sincos splitters): Use can_create_pseudo ().
1834
1835 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1836
1837         * config/i386/i386-opts.h: New.
1838         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1839         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1840         ix86_section_threshold): Remove.
1841         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1842         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1843         OPT_mbranch_cost_.
1844         (ix86_option_override_internal): Don't decode strings for options
1845         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1846         __attribute__ uses in remaining diagnostics for options with
1847         string arguments.  Don't check for integer arguments being negative.
1848         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1849         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1850         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1851         ix86_branch_cost, ix86_section_threshold): Remove.
1852         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1853         HeaderInclude.
1854         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1855         but not Var.
1856         (masm=): Use Enum and Init.
1857         (asm_dialect): New Enum and EnumValue entries.
1858         (mbranch-cost=): Use UInteger.
1859         (mlarge-data-threshold=): Use UInteger and Init.
1860         (mcmodel=): Use Enum and Init.
1861         (cmodel): New Enum and EnumValue entries.
1862         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1863         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1864         mregparm=): Use UInteger.
1865         (mstringop-strategy=): Use Enum and Init.
1866         (stringop_alg): New Enum and EnumValue entries.
1867         (mtls-dialect=): Use Enum and Init.
1868         (tls_dialect): New Enum and EnumValue entries.
1869         (mabi=): Use Enum and Init.
1870         (calling_abi): New Enum and EnumValue entries.
1871         (mveclibabi=): Use Enum and Init.
1872         (ix86_veclibabi): New Enum and EnumValue entries.
1873
1874 2011-05-13  Nick Clifton  <nickc@redhat.com>
1875
1876         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1877         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1878
1879 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1880
1881         PR middle-end/48984
1882         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1883         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1884         (gimple_boolify): Check for cast for boolean_type_node instead for
1885         BOOLEAN_TYPE.
1886
1887 2011-05-13  Richard Guenther  <rguenther@suse.de>
1888
1889         PR tree-optimization/48172
1890         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1891         multiplying by number of iterations for equal step.
1892         (vect_create_cond_for_alias_checks): Likewise.
1893
1894 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1895
1896         * configure.ac: Use AS_HELP_STRING throughout.
1897         * configure: Regenerate.
1898
1899 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1900
1901         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1902         (ix86_emit_restore_regs_using_mov): Likewise.
1903         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1904
1905 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1906
1907         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1908         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1909         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1910         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1911         RTX_OK_FOR_OLO10_P): ...here.
1912         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1913         SYMBOLIC_CONST.
1914
1915 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1916
1917         * gimplify.c (gimple_boolify): Re-boolify expression
1918         arguments even if expression type is of kind BOOLEAN_TYPE.
1919         (gimplify_boolean_expr): Removed.
1920         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1921         and XOR. Additional take care that we keep expression's type.
1922         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1923         of TRUTH_AND|OR|XOR_EXPR.
1924
1925 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1926
1927         PR tree-optimization/48975
1928         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1929         on all bbs here and free and clear ifc_bbs at the end.
1930
1931 2011-05-12  Richard Guenther  <rguenther@suse.de>
1932
1933         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1934         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1935         until after simple checks.
1936         (gimple_types_compatible_p): Likewise.
1937         (iterative_hash_gimple_type): Always hash pointer targets
1938         and function return and argument types.
1939         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1940         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1941         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1942         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1943         completely in the simple compare section.
1944         (gimple_register_canonical_type): Query the cache again after
1945         registering.
1946
1947 2011-05-12  Richard Guenther  <rguenther@suse.de>
1948
1949         PR tree-optimization/48172
1950         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1951         the number of iterations from the segment size calculation.
1952         (vect_create_cond_for_alias_checks): Adjust.
1953
1954 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR debug/48967
1957         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1958         if validate_subreg fails.
1959
1960 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1961
1962         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1963         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1964         early.
1965
1966 2011-05-12  DJ Delorie  <dj@redhat.com>
1967
1968         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1969         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1970         created builtin into rx_builtins array.
1971         (rx_builtin_decl): New function.
1972         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1973
1974 2011-05-12  DJ Delorie  <dj@redhat.com>
1975             Nick Clifton  <nickc@redhat.com>
1976
1977         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1978         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1979         (rx_is_legitimate_address): Add pre-decrement and post-increment
1980         addressing in HImode and QImode.  Fix test for out of range
1981         REG+INT addressing.
1982         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1983         (rx_align_for_label): Test label before extracting its usage count.
1984         (rx_adjust_insn_lengths): Fix selection of insn codes.
1985         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1986
1987 2011-05-11  Jason Merrill  <jason@redhat.com>
1988
1989         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1990
1991 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1992
1993         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1994         reindent the subsequent block.
1995
1996 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1997             Paul Pluzhnikov  <ppluzhnikov@google.com>
1998
1999         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2000         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2001         * config.in: Add LINKER_HASH_STYLE.
2002         * configure.ac: Add --with-linker-hash-style.
2003         * configure: Regenerate.
2004
2005 2011-05-11  Richard Guenther  <rguenther@suse.de>
2006
2007         PR middle-end/48964
2008         * gimple.c (iterative_hash_canonical_type): Fix typo.
2009
2010 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2011
2012         * config/i386/i386.c (legitimize_tls_address)
2013         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2014         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2015         __tls_get_addr symbol reference here.  Update call to
2016         gen_tls_global_dynamic_{32,64} for added arguments.
2017         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2018         expanders directly for TARGET_GNU2_TLS.  Determine
2019         __tls_get_addr symbol reference here.  Update call to
2020         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2021         unique UNSPEC REG_EQUIV to libcall block.
2022         (ix86_tls_get_addr): Declare static.
2023         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2024         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2025         Do not determine pic and __tls_get_addr symbol reference here. Do not
2026         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2027         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2028         (tls_global_dynamic_64): Add operand 2.  Do not determine
2029         __tls_get_addr symbol reference here.  Do not call
2030         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2031         (tls_local_dynamic_base64): Ditto for operand 1.
2032
2033 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2034
2035         * function.c (expand_function_start): Initialize stack_check_probe_note
2036         only if the generic stack checking mechanism is used.
2037
2038 2011-05-11  Richard Guenther  <rguenther@suse.de>
2039
2040         PR tree-optimization/15256
2041         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2042         (A & B) | C, combine (A op CST1) op CST2.
2043         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2044         visit assigns that have uses.
2045
2046 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2047
2048         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2049         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2050         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2051         (unpack_value_fields): Adjust for renaming.
2052         (lto_input_ts_type_tree_pointers): Split into...
2053         (lto_input_ts_type_common_tree_pointer): ...this and...
2054         (lto_input_ts_type_non_common_tree_pointers): ...this.
2055         (lto_input_tree_pointers): Adjust for above split.
2056         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2057         (pack_ts_type_common_value_fields): ...this.  Update comment.
2058         (lto_output_ts_type_tree_pointers): Split into...
2059         (lto_output_ts_type_common_tree_pointers): ...this and...
2060         (lto_output_ts_type_non_common_tree_pointers): ...this.
2061         (lto_output_tree_pointers): Adjust for above split.
2062         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2063         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2064         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2065         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2066         Define.
2067         (struct tree_type): Split into...
2068         (struct tree_type_common: ...this and...
2069         (struct tree_type_with_lang_specific): ...this and...
2070         (struct tree_type_non_common): ...this.  Adjust accessor macros
2071         accordingly.
2072         (TYPE_VALUES_RAW): Define.
2073         (union tree_node): Update for above changes.
2074         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2075         TS_TYPE_NON_COMMON.
2076         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2077         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2078         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2079         * treestructu.def (TS_TYPE): Remove.
2080         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2081         Define.
2082
2083 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2084
2085         PR debug/48159
2086         * tree-ssa.c (reset_debug_uses): New function.
2087         * tree-flow.h (reset_debug_uses): New prototype.
2088         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2089         * tree-loop-distribution.c (generate_loops_for_partition): Call
2090         reset_debug_uses on the stmts that will be removed.  Keep around
2091         all debug stmts, don't count them as bits in partition bitmap.
2092         (generate_builtin): Don't count debug stmts or labels as bits in
2093         partition bitmap.
2094
2095 2011-05-11  Richard Guenther  <rguenther@suse.de>
2096
2097         * gimple.c (gimple_type_hash_1): Merge with ...
2098         (gimple_type_hash): ... this.
2099         (gtc_visit): Remove mode parameter and simplify accordingly.
2100         (gimple_types_compatible_p_1): Likewise.
2101         (gimple_types_compatible_p): Likewise.
2102         (iterative_hash_gimple_type): Likewise.
2103         (visit): Likewise.
2104         (gimple_type_eq): Adjust.
2105
2106 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2107
2108         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2109         enters the branch create an anti edge in the opposite direction
2110         to prevent the creation of reg-moves.
2111         * modulo-sched.c: Adjust comment to reflect the fact we are
2112         scheduling closing branch.
2113         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2114         (stage_count): New field in struct partial_schedule.
2115         (calculate_stage_count): New function.
2116         (normalize_sched_times): Rename to reset_sched_times and handle
2117         incrementing the sched time of the nodes by a constant value
2118         passed as parameter.
2119         (duplicate_insns_of_cycles): Skip closing branch.
2120         (sms_schedule_by_order): Schedule closing branch.
2121         (ps_insn_find_column): Handle closing branch.
2122         (sms_schedule): Call reset_sched_times and adjust the code to
2123         support scheduling of the closing branch.
2124         (ps_insert_empty_row): Update calls to normalize_sched_times
2125         and rotate_partial_schedule functions.
2126
2127 2011-05-11  Richard Guenther  <rguenther@suse.de>
2128
2129         PR middle-end/48953
2130         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2131
2132 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2133
2134         * opts.c (finish_options): Move warning settings from process_options.
2135         * toplev.c (process_options): Move warning settings to finish_options.
2136
2137 2011-05-11  Richard Guenther  <rguenther@suse.de>
2138
2139         PR tree-optimization/18041
2140         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2141         (simplify_bitwise_binary): ... this.  Handle operand conversions
2142         by applying them to the result instead.
2143         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2144
2145 2011-05-11  Richard Guenther  <rguenther@suse.de>
2146
2147         * gimple.c (gimple_canonical_types_compatible_p): Split out
2148         from gimple_types_compatible_p and friends.  Do not recurse
2149         to pointed-to types.
2150         (gimple_canonical_type_eq): Use it.
2151         (iterative_hash_canonical_type): Split out from
2152         iterative_hash_gimple_type and friends.  Do not recurse
2153         to pointed-to types.
2154         (gimple_canonical_type_hash): Use it, allocate the hash here.
2155
2156 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2157
2158         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2159         recognizing doloop.
2160
2161 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2162
2163         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2164         instead of PREV_INSN.
2165
2166 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2167
2168         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2169         * loop-doloop.c (doloop_condition_get): Likewise.
2170         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2171         (doloop_end): New.
2172         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2173
2174 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2175
2176         * tree.def (CASE_LABEL_EXPR): Add an operand.
2177         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2178
2179 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2180
2181         * c-decl.c (c_override_global_bindings_to_false): Remove.
2182         (global_bindings_p): Don't check
2183         c_override_global_bindings_to_false.
2184         * c-tree.h (c_override_global_bindings_to_false): Remove.
2185         * c-typeck.c (composite_type): Don't set
2186         c_override_global_bindings_to_false.
2187
2188 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2189
2190         PR target/48857, 48495
2191         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2192         (VSX_MODE): Ditto.
2193         (VSX_MOVE_MODE): Ditto.
2194         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2195         VSX vector types.  Add V2DImode.
2196         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2197         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2198         (MODES_TIEABLE_P): Ditto.
2199
2200         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2201         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2202         VSX_VECTOR_MODE.
2203         (init_cumulative_args): Ditto.
2204         (rs6000_function_arg_boundary): Ditto.
2205         (rs6000_function_arg_advance_1): Ditto.
2206         (rs6000_function_arg): Ditto.
2207         (rs6000_function_ok_for_sibcall): Ditto.
2208         (emit_frame_save): Ditto.
2209         (rs6000_function_value): Ditto.
2210         (rs6000_libcall_value): Ditto.
2211
2212 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2213
2214         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2215         i386/darwin-lib.h to $libgcc_tm_file.
2216         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2217
2218 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2219
2220         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2221
2222 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2223
2224         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2225         * config/rs6000/rs6000-tables.opt: New file (generated).
2226         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2227         rs6000/rs6000-tables.opt to extra_options.
2228         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2229         * config/rs6000/rs6000.c (rs6000_select): Remove.
2230         (processor_target_table): Move contents to rs6000-cpus.def.
2231         (darwin_rs6000_override_options): Check
2232         global_options_set.x_rs6000_cpu_index instead of
2233         rs6000_select[1].string.
2234         (rs6000_option_override_internal): Likewise.
2235         (rs6000_handle_option): Don't assert that global structures are in
2236         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2237         (rs6000_default_cpu): New variable.
2238         (rs6000_file_start): Set it instead of local default_cpu.  Check
2239         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2240         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2241         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2242         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2243         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2244         rs6000_select): Remove.
2245         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2246         Remove.
2247         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2248         * config/rs6000/t-rs6000
2249         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2250         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2251         global_options_set.x_rs6000_cpu_index instead of
2252         rs6000_select[1].string.
2253         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2254         global_options_set.x_rs6000_cpu_index instead of
2255         rs6000_select[1].string.
2256
2257 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2258
2259         * config.gcc (libgcc_tm_file): Define instead of including files
2260         from ../../libgcc/config/ in tm_file.
2261         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2262         * configure: Regenerate.
2263         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2264         libgcc_tm.h, cs-libgcc_tm.h): New.
2265         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2266         (clean): Remove libgcc_tm.h.
2267         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2268         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2269         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2270
2271 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2272
2273         PR target/48896
2274         * config/avr/avr.c (avr_ret_register): Return unsigned int
2275         instead of int.
2276         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2277         it to avr_libcall_value.
2278         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2279         expand_expr.
2280         (avr_expand_binop_builtin): Ditto.
2281         (avr_expand_unop_builtin): Ditto.
2282
2283 2011-05-10  DJ Delorie  <dj@redhat.com>
2284
2285         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2286         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2287         * config/rx/rx.c (rx_align_for_label): Add label and
2288         uses_threshold parameters.  Do not align when the label is not
2289         used enough.
2290         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2291
2292 2011-05-10  Richard Guenther  <rguenther@suse.de>
2293
2294         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2295         a series of conversions and apply foldings similar to what
2296         fold-const does.
2297         (tree_ssa_forward_propagate_single_use_vars): Call it.
2298
2299 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2300
2301         PR tree-optimization/48611
2302         PR tree-optimization/48794
2303         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2304         referenced from RESX or EH_DISPATCH arguments.
2305
2306         PR debug/48928
2307         * dfp.c (decimal_to_decnumber): Handle conversion from
2308         dconst{1,2,m1,half}.
2309
2310 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2311
2312         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2313         for !flag_prefer_avx128.
2314         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2315
2316 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2317
2318         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2319         (fold_ternary_loc): Use expr_location_or.
2320
2321 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2322
2323         PR debug/48853
2324         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2325         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2326         Pmode and mem_mode is not VOIDmode.
2327
2328 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2329
2330         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2331         TYPE_QUAL_RESTRICT): Convert to enum.
2332
2333 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2334
2335         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2336         (const_pow2_1_to_8_operand): Ditto.
2337         (const_pow2_1_to_128_operand): Ditto.
2338         (const_pow2_1_to_32768_operand): Ditto.
2339         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2340         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2341         in insn constraint to check integer value of operand 3.
2342         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2343
2344         (PINSR_MODE): New mode iterator.
2345         (sse2p4_1): New mode attribute.
2346         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2347         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2348         iterator.  Use const_int_operand instead of
2349         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2350         exact_log2 in insn constraint to check integer value of operand 3.
2351
2352 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2353
2354         * config/i386/sse.md (blendbits): Remove mode attribute.
2355         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2356         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2357         Check integer value of operand 3 in insn constraint.
2358
2359 2011-05-09  Richard Guenther  <rguenther@suse.de>
2360
2361         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2362         for diagnostics.
2363         (lto_symtab_merge): Likewise.  Do not register types here.
2364         (lto_symtab_merge_decls_2): Likewise.
2365         (lto_symtab_merge_decls_1): Likewise.
2366         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2367         * gimple.c (enum gtc_mode): Declare.
2368         (gimple_types_compatible_p): Make static.
2369
2370 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2371
2372         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2373         temporary register to match Pmode.
2374
2375 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2376
2377         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2378         and *vec_concatv4si_1_avx.
2379
2380 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2381
2382         PR rtl-optimization/48927
2383         * ira-conflicts.c (commutative_constraint_p): Use
2384         recog_data.alternative_enabled_p to disable alternatives where
2385         "enabled" attribute is false.
2386         (get_dup_num): Ditto.
2387         * ira-lives.c (single_reg_class): Ditto.
2388         (ira_implicitly_set_insn_hard_regs): Ditto.
2389
2390 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2391
2392         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2393         (dataflow_set_preserve_mem_locs): Likewise.
2394
2395 2011-05-09  Philipp Thomas  <pth@suse.de>
2396
2397         * config/mep/mep.c (mep_validate_vliw): Syntax description
2398         should not be translated.
2399
2400 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2401
2402         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2403         * config/mips/mips-tables.opt: New file (generated).
2404         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2405         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2406         MIPS_ARCH_OPTION_NATIVE): Define.
2407         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2408         mips-cpus.def.
2409         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2410         mips_parse_cpu): Remove.
2411         (mips_cpu_info_from_opt, mips_default_arch): New.
2412         (mips_handle_option): Don't assert that global structures are in
2413         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2414         (mips_option_override): Use new variables and functions to set
2415         state of these options.  Use strcmp to check for individual CPU names.
2416         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2417         definition.
2418         * config/mips/mips.opt (march=): Use ToLower and Enum.
2419         (mips): Use ToLower, Enum and Var.
2420         (mtune=): Use ToLower and Enum.
2421         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2422
2423 2011-05-08  Jan Hubicka  <jh@suse.cz>
2424
2425         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2426         Arrange type pairs to be UID ordered.
2427         (gimple_lookup_type_leader): Make inline.
2428
2429 2011-05-09  Nick Clifton  <nickc@redhat.com>
2430
2431         PR target/48899
2432         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2433         PROCESSOR_DEFAULT.
2434
2435         PR target/48897
2436         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2437         variable 's'.
2438
2439 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2440
2441         * combine.c (simplify_comparison): Abstract out parts into...
2442         (simplify_compare_const): ... new function.
2443         (try_combine): Generalize parallel arithmetic/compare combining
2444         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2445
2446 2011-05-08  Jan Hubicka  <jh@suse.cz>
2447
2448         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2449         (cgraph_create_virtual_clone): Call hooks once virtual clone
2450         is finished.
2451         * cgraph.h (cgraph_clone_node): Update prototype.
2452         * ipa-cp.c (ipcp_estimate_growth): Use
2453         estimate_ipcp_clone_size_and_time.
2454         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2455         * lto-cgraph.c (input_node): Update.
2456         * ipa-inline.c (recursive_inlining): Update.
2457         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2458         (evaluate_conditions_for_known_args): Break out from ...
2459         (evaluate_conditions_for_edge): ... here.
2460         (evaluate_conditions_for_ipcp_clone): New function.
2461         (inline_node_duplication_hook): Update clone summary based
2462         on parameter map.
2463         (estimate_callee_size_and_time): Rename to ...
2464         (estimate_node_size_and_time): take NODE instead of EDGE;
2465         take POSSIBLE_TRUTHS as argument.
2466         (estimate_callee_size_and_time): Update.
2467         (estimate_ipcp_clone_size_and_time): New function.
2468         (do_estimate_edge_time): Update.
2469
2470 2011-05-08  Richard Guenther  <rguenther@suse.de>
2471
2472         PR middle-end/48908
2473         PR middle-end/48905
2474         * expmed.c (expand_shift_1): Compute adjusted constant shift
2475         amount manually.
2476
2477 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2478
2479         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2480
2481 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2482
2483         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2484
2485 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2486
2487         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2488
2489 2011-05-07  Jan Hubicka  <jh@suse.cz>
2490
2491         * ipa-inline-transform.c (inline_call): Account when program size
2492         decreases.
2493         * ipa-inline.c (relative_time_benefit): New function.
2494         (edge_badness): Reorganize to be power 2 based; fix thinko when
2495         computing badness for negative growth; update comments to match
2496         reality; better dumps.
2497
2498 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2499
2500         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2501         type to bool and adjust comment.
2502         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2503         (fold_mathfn_compare): Remove calls to global_bindings_p.
2504         (fold_inf_compare): Likewise.
2505         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2506         * c-tree.h (global_bindings_p): Adjust prototype.
2507         * c-decl.c (global_bindings_p): Return bool and simplify.
2508
2509 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2510
2511         PR tree-optimization/48837
2512         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2513         when accumulator transformation is performed.
2514
2515 2011-05-06  Jan Hubicka  <jh@suse.cz>
2516
2517         * i386.h (ix86_tune_indices): Add
2518         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2519         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2520         * i386.c (initial_ix86_tune_features): Add
2521         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2522         (software_prefetching_beneficial_p): Remove predicate.
2523         (ix86_option_override_internal): Use new macro.
2524
2525 2011-05-06  Jan Hubicka  <jh@suse.cz>
2526
2527         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2528
2529 2011-05-06  Jan Hubicka  <jh@suse.cz>
2530
2531         * cgraph.c (cgraph_add_thunk): Create real function node instead
2532         of alias node; finalize it and mark needed/reachale; arrange visibility
2533         to be right and add it into the corresponding same comdat group list.
2534         (dump_cgraph_node): Dump thunks.
2535         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2536         cgraph_function_with_gimple_body_p,
2537         cgraph_first_function_with_gimple_body,
2538         cgraph_next_function_with_gimple_body): New functions.
2539         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2540         New macros.
2541         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2542         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2543         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2544         devirtualization when optimizing.
2545         (verify_cgraph_node): Verify thunks.
2546         (cgraph_analyze_function): Analyze thunks.
2547         (cgraph_mark_functions_to_output): Output thunks only in combination
2548         with function they are assigned to.
2549         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2550         alias into normal node.
2551         (assemble_thunks): New functoin.
2552         (cgraph_expand_function): Use it.
2553         * lto-cgraph.c (lto_output_node): Stream thunks.
2554         (input_overwrite_node): Stream in thunks.
2555         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2556         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2557         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2558         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2559         (inline_analyze_function): Do not care about thunk jump functions.
2560         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2561         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2562         cgraph_function_with_gimple_body_p.
2563         * passes.c (do_per_function_toporder): Use
2564         cgraph_function_with_gimple_body_p.
2565         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2566         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2567         (function_called_by_processed_nodes_p): Likewise.
2568
2569 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2570
2571         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2572         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2573         entries.
2574         (mabi=): Replace with separate entries for mabi=altivec,
2575         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2576         mabi=ieeelongdouble and mabi=ibmlongdouble.
2577         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2578         check for -mabi=spe without SPE ABI support here.
2579         (rs6000_handle_option): Replace OPT_mabi_ handling with
2580         OPT_mabi_altivec and OPT_mabi_spe handling.
2581
2582 2011-05-06  Cary Coutant  <ccoutant@google.com>
2583
2584         * dwarf2out.c (contains_subprogram_definition): New function.
2585         (should_move_die_to_comdat): Call it.
2586
2587 2011-05-06  Jeff Law  <law@redhat.com>
2588
2589         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2590         remove_ctrl_stmt_and_useless_edges.
2591         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2592         (fixup_template_block, thread_single_edge): Likewise.
2593         (mark_threaded_blocks): Use THREAD_TARGET.
2594
2595 2011-05-06  Alan Modra  <amodra@gmail.com>
2596
2597         PR target/48900
2598         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2599         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2600
2601 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2602
2603         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2604         constraint modifier to "r".
2605
2606 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2607
2608         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2609         fall through for OPT_mcmodel_.
2610
2611 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2612
2613         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2614         instruction sizes.
2615         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2616
2617 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2618
2619         PR target/47930
2620         * config/arm/arm.opt (marm): Document it.
2621         (mthumb): Reject negative variant.
2622
2623 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         PR target/48898
2626         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2627         Fix typo in "ccvt" variable name.
2628
2629 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2630
2631         PR target/48895
2632         * config/vms/vms-ar.c (main): Remove cwd variable.
2633
2634 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2635
2636         PR debug/48902
2637         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2638
2639 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2640
2641         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2642         * gimplify.c (gimplify_switch_expr): Likewise.
2643         * omp-low.c (expand_omp_sections): Likewise.
2644         * tree-eh.c (lower_try_finally_switch): Likewise.
2645         (lower_eh_dispatch): Likewise.
2646         * tree.h (build_case_label): Declare.
2647         * tree.c (build_case_label): Define.
2648
2649 2011-05-05  Jason Merrill  <jason@redhat.com>
2650
2651         PR c++/40975
2652         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2653         (copy_statement_list): Don't recurse.
2654         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2655         STATEMENT_LIST.
2656
2657 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2658
2659         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2660         through from -mfpu= handling.
2661         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2662
2663 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2664
2665         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2666         POST_MODIFY.
2667
2668 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2669
2670         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2671         for 11.31.
2672         (hppa[12]*-*-hpux11*): Ditto.
2673         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2674         * config/ia64/hpux-unix2003.h: New.
2675         * config/pa/pa-hpux1131.opt: New.
2676         * config/pa/pa-hpux1131.h: New.
2677         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2678         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2679         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2680
2681 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2682
2683         PR debug/48853
2684         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2685         instead of mode as 3rd argument to recursive call.
2686         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2687         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2688         VOIDmode.
2689         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2690         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2691         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2692         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2693
2694 2011-05-05  Julian Brown  <julian@codesourcery.com>
2695
2696         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2697         parenthesis in D-register case.
2698
2699 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2700
2701         * opt-functions.awk (var_type_struct): Handle Enum options.
2702         * optc-gen.awk: Don't check range of variables of character type.
2703         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2704         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2705         rs6000_sdata_name, rs6000_explicit_options): Remove.
2706         (rs6000_option_override_internal): Check for -malign-power here.
2707         Use global_options_set instead of rs6000_explicit_options.
2708         (rs6000_parse_fpu_option): Remove.
2709         (rs6000_handle_option): Access variables via opts and opts_set
2710         pointers.  Use error_at and warning_at.  Add fall-through
2711         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2712         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2713         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2714         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2715         here.  Don't use rs6000_parse_fpu_option.
2716         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2717         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2718         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2719         (mrecip=): Use Var.
2720         (mspe): Use Var and Save.
2721         (mtraceback=): Use Enum and Var.
2722         (rs6000_traceback_type): New Enum and EnumValue entries.
2723         (mfloat-gprs=): Use Enum, Var and Save.
2724         (rs6000_float_gprs): New Enum and EnumValue entries.
2725         (mlong-double-): use Var and Save.
2726         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2727         (malign-): Use Enum and Var.
2728         (rs6000_alignment_flags): New Enum and EnumValue entries.
2729         (mfpu=): Use Enum.
2730         (fpu_type_t): New Enum and EnumValue entries.
2731         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2732         global_options_set instead of rs6000_explicit_options.
2733         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2734         global_options_set instead of rs6000_explicit_options.
2735         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2736         global_options_set instead of rs6000_explicit_options.
2737         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2738         global_options_set instead of rs6000_explicit_options.
2739         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2740         global_options_set instead of rs6000_explicit_options.
2741         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2742         global_options_set instead of rs6000_explicit_options.
2743         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2744         definition.
2745         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2746         global_options_set instead of rs6000_explicit_options.
2747         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2748         (rs6000_cmodel): New Enum and EnumValue entries.
2749         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2750         global_options_set instead of rs6000_explicit_options.
2751         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2752         (mtls-size=): Use Enum and Var.
2753         (rs6000_tls_size): New Enum and EnumValue entries.
2754
2755 2011-05-05  Michael Matz  <matz@suse.de>
2756
2757         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2758         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2759         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2760         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2761         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2762         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2763         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2764         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2765         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2766         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2767         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2768         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2769         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2770         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2771         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2772         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2773
2774 2011-05-05  Richard Guenther  <rguenther@suse.de>
2775
2776         * expmed.c (expand_variable_shift): Rename to ...
2777         (expand_shift_1): ... this.  Take an expanded shift amount.
2778         For rotates recurse directly not building trees for the shift amount.
2779         (expand_variable_shift): Wrap around expand_shift_1.
2780         (expand_shift): Adjust.
2781
2782 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2783
2784         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2785
2786 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2787
2788         * tree.h (get_pending_sizes): Remove prototype.
2789         (put_pending_size): Likewise.
2790         (put_pending_sizes): Likewise.
2791         * stor-layout.c (pending_sizes): Delete.
2792         (get_pending_sizes): Likewise.
2793         (put_pending_size): Likewise.
2794         (put_pending_sizes): Likewise.
2795         (variable_size): Do not call put_pending_size and tidy up.
2796         * function.h (struct function): Remove dont_save_pending_sizes_p.
2797         * lto-streamer-in.c (input_function): Do not stream it.
2798         * lto-streamer-out.c (output_function): Likewise.
2799         * tree-inline.c (initialize_cfun): Do not copy it.
2800         * c-decl.c (store_parm_decls): Do not set it.
2801         * omp-low.c (create_task_copyfn): Likewise.
2802         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2803
2804 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2805
2806         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2807         conditions.
2808         (*movdf_internal): Ditto.
2809         (*movdf_internal_nointeger): Ditto.
2810         (*movsf_internal): Ditto.
2811
2812 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2813
2814         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2815         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2816         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2817         (c_variable_size): Remove.
2818         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2819         call put_pending_sizes.
2820         (get_parm_info): Add parameter expr.  Use it to set
2821         arg_info->pending_sizes.
2822         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2823         get_pending_sizes.
2824         * c-parser.c (c_parser_parms_declarator): Update call to
2825         c_parser_parms_list_declarator.
2826         (c_parser_parms_list_declarator): Take parameter expr.  Update
2827         call to push_parm_decl.  Update recursive call.  Don't call
2828         get_pending_sizes.  Update calls to get_parm_info.
2829         (c_parser_objc_method_definition): Update calls to
2830         c_parser_objc_method_decl and objc_start_method_definition.
2831         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2832         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2833         grokparm.
2834         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2835         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2836         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2837
2838 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2839
2840         PR pch/45979
2841         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2842         __ARM_EABI__ hosts.
2843
2844 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2845
2846         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2847         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2848         (spu_output_mi_thunk): New function.
2849
2850 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2851
2852         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2853         targetm.asm_out.print_operand.
2854         * config/sol2.c: Include target.h.
2855
2856 2011-05-04  Jan Hubicka  <jh@suse.cz>
2857
2858         * ipa-inline.c (reset_edge_caches): New function.
2859         (update_caller_keys): Add check_inlinablity_for; do not
2860         reset edge caches; remove now unnecesary loop.
2861         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2862         (update_all_callee_keys): Likewise.
2863         (inline_small_functions): Sanity check cache; update code
2864         recomputing it.
2865
2866 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2867
2868         PR rtl-optimization/47612
2869         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2870         as the last insn of the sequence to be moved.
2871
2872 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2873
2874         PR fortran/48864
2875         * doc/invoke.texi (Ofast): Document that it
2876         enables Fortran's -fno-protect-parens.
2877
2878 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2879
2880         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2881
2882 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2883
2884         * stor-layout.c (variable_size): Do not issue errors.
2885
2886 2011-05-04  Richard Guenther  <rguenther@suse.de>
2887
2888         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2889         for array-ref indices.
2890         (tree_coverage_counter_addr): Likewise.
2891         (build_fn_info_type): Use size_int for index types.
2892         (build_gcov_info): Likewise.
2893
2894 2011-05-04  Richard Guenther  <rguenther@suse.de>
2895
2896         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2897         to build_int_cst.
2898         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2899         for constructor indices.
2900         (push_init_level): Likewise.
2901
2902 2011-05-04  Richard Guenther  <rguenther@suse.de>
2903
2904         * explow.c (promote_mode): Move variable declarations before code.
2905
2906 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2907
2908         * tree.h (build_function_type_array): Declare.
2909         (build_varargs_function_type_array): Declare.
2910         (build_function_type_vec, build_varargs_function_type_vec): Define.
2911         * tree.c (build_function_type_array_1): New function.
2912         (build_function_type_array): New function.
2913         (build_varargs_function_type_array): New function.
2914
2915 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2916
2917         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2918         before setting STMT_VINFO_TYPE.
2919
2920 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2921
2922         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2923         instead of spu_pass_by_reference.
2924
2925 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2926
2927         * calls.c (emit_library_call_value_1): Invoke
2928         promote_function_mode hook on libcall arguments.
2929         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2930         argument being NULL.
2931         * targhooks.c (default_promote_function_mode): Lisewise.
2932         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2933         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2934
2935         * doc/tm.texi: Document that TYPE argument might be NULL.
2936
2937 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2938
2939         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2940
2941 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2942
2943         From Bernd Schmidt
2944         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2945
2946 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2947
2948         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2949         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2950         Move ...
2951         * mips-tfile.c: ... here.
2952         Don't include coretypes.h, tm.h, filenames.h.
2953         (saber_stop): Remove definition and all calls.
2954         [__SABER__]: Remove.
2955         (__LINE__): Remove default.
2956         (Size_t, Ptrdiff_t): Remove definitions.
2957         Replace by size_t, ptrdiff_t.
2958         [!MIPS_DEBUGGING_INFO]: Remove.
2959         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2960         (progname): Add const.
2961         (STATIC): Remove.
2962         Replace all uses by static.
2963         (ALIGN_SYMTABLE_OFFSET): Remove default.
2964         * mips-tdump.c: Don't include coretypes.h, tm.h.
2965         Remove !MIPS_IS_STAB guard.
2966         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2967         $(TM_H), filenames.h dependencies.
2968         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2969
2970 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2971
2972         From Jie Zhang
2973         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2974         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2975
2976 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2977
2978         From Bernd Schmidt
2979         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2980         account and save/restore RETS.
2981         (PROFILE_BEFORE_PROLOGUE): Define.
2982         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2983         the push insn to use predecrement.
2984
2985 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2986
2987         From Jie Zhang
2988         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2989
2990 2011-05-04  Nick Clifton  <nickc@redhat.com>
2991
2992         * config/mn10300/mn10300.c: Include cfgloop.h.
2993         (DUMP): New macro.
2994         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2995         Lcc or a FLcc insn into the instruction stream.
2996         (mn10300_block_contains_call): New function.  Returns true if the
2997         given basic block contains a CALL insn.
2998         (mn10300_loop_contains_call_insn): New function.  Returns true if
2999         the given loop contains a CALL insn.
3000         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
3001         to use the SETLB and Lcc or FLcc insns.
3002         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3003         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3004         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3005         disable the SETLB optimization.
3006         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3007         __SETLB__ or __NO_SETLB__.
3008         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3009         (movsf_internal): Handle MDR register.
3010         (cmpsi): Make visible.
3011         (setlb): New pattern.
3012         (Lcc): New pattern.
3013         (FLcc): New pattern.
3014
3015 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3016
3017         PR target/48860
3018         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3019         for reg<->xmm moves.
3020         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3021         (vec_concatv2di_rex64_sse): Ditto.
3022         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3023         (*vec_extractv2di_1_rex64): Ditto.
3024
3025         Revert:
3026         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3027
3028         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3029         reg<->xmm moves.
3030         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3031
3032 2011-05-04  Richard Guenther  <rguenther@suse.de>
3033
3034         * tree.h (int_const_binop): Remove notrunc argument.
3035         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3036         create integer constants that are properly truncated.
3037         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3038         (const_binop): Remove zero notrunc argument to int_const_binop.
3039         (size_binop_loc): Likewise.
3040         (fold_div_compare): Likewise.
3041         (maybe_canonicalize_comparison_1): Likewise.
3042         (fold_comparison): Likewise.
3043         (fold_binary_loc): Likewise.
3044         (multiple_of_p): Likewise.
3045         * expr.c (store_constructor): Likewise.
3046         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3047         (maybe_fold_stmt_addition): Likewise.
3048         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3049         * stor-layout.c (layout_type): Likewise.
3050         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3051         * tree-sra.c (build_ref_for_offset): Likewise.
3052         (build_user_friendly_ref_for_offset): Likewise.
3053         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3054         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3055         * tree-ssa-loop-niter.c (inverse): Likewise.
3056         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3057         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3058         * tree-switch-conversion.c (check_range): Likewise.
3059         (build_constructors): Likewise.
3060         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3061         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3062         (extract_range_from_assert): Likewise.
3063         (vrp_int_const_binop): Likewise.
3064         (extract_range_from_binary_expr): Likewise.
3065         (extract_range_from_unary_expr): Likewise.
3066         (check_array_ref): Likewise.
3067         (find_case_label_range): Likewise.
3068         (simplify_div_or_mod_using_ranges): Likewise.
3069         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3070         comparing case labels for merging.
3071
3072 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3073
3074         * dwarf2out.c (debug_str_hash_forced): Removed.
3075         (gen_label_for_indirect_string): Removed.
3076         (get_debug_string_label): Removed.
3077         (AT_string_form): Generate label directly.
3078         (output_indirect_string): Test indirect_string_node for
3079         DW_FORM_strp instead of checking label and refcount.
3080         (prune_indirect_string): Removed.
3081         (prune_unused_types): Don't check debug_str_hash_forced or
3082         call prune_indirect_string.
3083
3084 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3085
3086         PR other/48093
3087         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3088
3089 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3090
3091         PR debug/47994
3092         PR debug/47919
3093         * combine.c (try_combine): Skip debug insns at m_split tests.
3094
3095 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3096
3097         PR42288
3098         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3099         when info_section_emitted.
3100
3101 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3102
3103         * config/mips/mips-opts.h: New.
3104         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3105         to mips-opts.h.
3106         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3107         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3108         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3109         via opts pointer.
3110         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3111         mips-opts.h.
3112         (mips_abi, mips_code_readable): Don't declare.
3113         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3114         (mabi=): Use Enum and Var.
3115         (mips_abi): New Enum and EnumValue entries.
3116         (mcode-readable=): Use Enum and Var.
3117         (mips_code_readable_setting): New Enum and EnumValue entries.
3118         (mr10k-cache-barrier=): Use Enum and Var.
3119         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3120
3121 2011-05-03  Jan Hubicka  <jh@suse.cz>
3122
3123         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3124         replace hash by pointer map.
3125         (cgraph_node_set_element_def, cgraph_node_set_element,
3126         const_cgraph_node_set_element, varpool_node_set_element_def,
3127         varpool_node_set_element, const_varpool_node_set_element): Remove.
3128         (free_cgraph_node_set, free_varpool_node_set): New function.
3129         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3130         * tree-emutls.c: Free varpool node set.
3131         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3132         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3133         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3134         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3135         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3136         Move here from ipa.c; implement using pointer_map
3137         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3138         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3139         debug_cgraph_node_set, varpool_node_set_new,
3140         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3141         dump_varpool_node_set, debug_varpool_node_set):
3142         Move to ipa-uitls.c.
3143         * passes.c (ipa_write_summaries): Update.
3144
3145 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3146
3147         From Mike Frysinger:
3148         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3149         bf542/bf544/bf547/bf548/bf549.
3150
3151 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3152
3153         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3154
3155 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3156
3157         From Bernd Schmidt:
3158         * config/bfin/bfin.md (MOVCC): New mode_macro.
3159         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3160         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3161         comments from generated assembly.
3162
3163 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3164
3165         From Bernd Schmidt
3166         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3167         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3168         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3169         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3170         * config/bfin/lib1funcs.asm (___muldi3): New function.
3171
3172 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3173
3174         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3175         build_function_type_list instead of build_function_type.
3176         Rearrange initialization of `args' to do so.
3177
3178 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3179
3180         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3181         instead of build_function_type.
3182
3183 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3184
3185         * config/rs6000/rs6000.c (spe_init_builtins): Call
3186         build_function_type_list instead of build_function_type.
3187         (paired_init_builtins, altivec_init_builtins): Likewise.
3188         (builtin_function_type): Likewise.
3189
3190 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3191
3192         * config/sh/sh.c (sh_media_init_builtins): Call
3193         build_function_type_list instead of build_function_type.
3194
3195 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3196
3197         * config/sparc/sparc.c (sparc_file_end): Call
3198         build_function_type_list instead of build_function_type.
3199
3200 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3201
3202         * config/alpha/alpha.c (alpha_init_builtins): Call
3203         build_function_type_list instead of build_function_type.
3204
3205 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3206
3207         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3208         build_function_type_list instead of build_function_type.
3209
3210 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3211
3212         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3213         build_function_type_list instead of build_function_type.
3214         Delete `endlink' variable.
3215
3216 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3217
3218         * config/avr/avr.c (avr_init_builtins): Call
3219         build_function_type_list instead of build_function_type.
3220
3221 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3222
3223         * config/picochip/picochip.c (picochip_init_builtins): Call
3224         build_function_type_list instead of build_function_type.
3225         Delete `endlink' variable.
3226
3227 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3228
3229         * config/bfin/bfin.c (bfin_init_builtins): Call
3230         build_function_type_list instead of build_function_type.
3231
3232 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3233
3234         From Bernd Schmidt
3235         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3236         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3237
3238 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3239
3240         From Jie Zhang:
3241         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3242         libbffastfp overrides libgcc when -mfast-fp.
3243
3244 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3245
3246         Originally from Bernd Schmidt
3247         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3248         * config/bfin/bfin.c (override_options): Test it and error if
3249         TARGET_FDPIC.
3250
3251 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3252
3253         Originally From Bernd Schmidt
3254         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3255         FD-PIC.
3256
3257 2011-05-03  Jeff Law  <law@redhat.com>
3258
3259         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3260         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3261         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3262         than accessing AUX field directly.  Free the AUX field before
3263         clearing it.
3264         (thread_block, thread_through_loop_header): Likewise.
3265         (thread_single_edge, mark_threaded_blocks): Likewise.
3266         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3267         (register_jump_thread): Do not attempt to thread to a NULL edge.
3268
3269 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3270
3271         * function.c (init_function_start): Call decide_function_section.
3272         * varasm.c (decide_function_section): New function.
3273         (assemble_start_function): When not using
3274         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3275         or first_function_block_is_cold.
3276         * rtl.h (decide_function_section): Declare.
3277
3278 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3279             Jakub Jelinek  <jakub@redhat.com>
3280
3281         PR target/48774
3282         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3283         only succeed if req_mode is the same as set_mode.
3284
3285 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3286
3287         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3288         * genemit.c (gen_exp): Handle RETURN.
3289         * emit-rtl.c (verify_rtx_sharing): Likewise.
3290         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3291         * rtl.c (copy_rtx): RETURN is shared.
3292         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3293         (ret_rtx): New.
3294         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3295         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3296         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3297         * config/cris/cris.c (cris_expand_return): Likewise.
3298         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3299         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3300         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3301         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3302         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3303         Likewise.
3304         * config/v850/v850.c (expand_epilogue): Likewise.
3305         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3306         * config/arm/arm.md (epilogue): Likewise.
3307         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3308         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3309         variable to ret_reg.
3310
3311 2011-05-03  Richard Guenther  <rguenther@suse.de>
3312
3313         PR lto/48846
3314         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3315         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3316         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3317
3318 2011-05-03  Richard Guenther  <rguenther@suse.de>
3319
3320         * c-decl.c (grokdeclarator): Instead of looking at
3321         TREE_OVERFLOW check if the constant fits in the index type.
3322
3323 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3324
3325         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3326         (vec_store_lanes<mode><mode>): Likewise.
3327
3328 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3329
3330         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3331         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3332         convert_optab_index values.
3333         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3334         * genopinit.c (optabs): Initialize the new optabs.
3335         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3336         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3337         (expand_STORE_LANES): New functions.
3338         * tree.h (build_array_type_nelts): Declare.
3339         * tree.c (build_array_type_nelts): New function.
3340         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3341         (vect_model_load_cost): Likewise.
3342         (vect_store_lanes_supported, vect_load_lanes_supported)
3343         (vect_record_strided_load_vectors): Declare.
3344         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3345         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3346         (vect_transform_strided_load): Split out statement recording into...
3347         (vect_record_strided_load_vectors): ...this new function.
3348         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3349         (write_vector_array, create_array_ref): New functions.
3350         (vect_model_store_cost): Add store_lanes_p argument.
3351         (vect_model_load_cost): Add load_lanes_p argument.
3352         (vectorizable_store): Try to use store-lanes functions for
3353         interleaved stores.
3354         (vectorizable_load): Likewise load-lanes and loads.
3355         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3356         to vect_model_store_cost.
3357         (vect_build_slp_tree): Likewise vect_model_load_cost.
3358
3359 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3360
3361         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3362         * hooks.c (hook_bool_mode_uhwi_false): New function.
3363         * target.def (array_mode_supported_p): New hook.
3364         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3365         * doc/tm.texi: Regenerate.
3366         * stor-layout.c (mode_for_array): New function.
3367         (layout_type): Use it.
3368         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3369         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3370
3371 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3372
3373         PR target/48723
3374         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3375         for -fstack-check if the size to allocate is negative.
3376
3377 2011-05-02  Lawrence Crowl  <crowl@google.com>
3378
3379         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3380         (timevar_cond_start): New for starting a timer only when it is not
3381         already running.
3382         (timevar_cond_stop): New for stopping a timer when it was not already
3383         running.
3384
3385         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3386         (timevar_cond_start): New as above.
3387         (timevar_cond_stop): New as above.
3388
3389         * timevar.def: Add start/stop timers for compiler phases,
3390         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3391         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3392         and TV_PHASE_FINALIZE.
3393         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3394         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3395         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3396         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3397         Make unused TV_OVERLOAD into a start/stop timer.
3398
3399         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3400         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3401         to indicate that they are start/stop timers.
3402
3403         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3404         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3405         Move initialization to do_compile.
3406         (do_compile): Add initialization from above.
3407         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3408
3409         * c-decl.c (c_write_global_declarations): Add start/stop of
3410         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3411
3412         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3413         or TV_PARSE_INLINE, as appropriate.
3414         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3415         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3416
3417 2011-05-02  Jason Merrill  <jason@redhat.com>
3418
3419         PR c++/40975
3420         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3421
3422 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3423
3424         PR c/35445
3425         * c-decl.c (finish_decl): Only create a composite if the types are
3426         compatible.
3427
3428 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3429
3430         * config/fr30/fr30-protos.h (Mmode): Don't define.
3431         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3432         definition where used.
3433         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3434         define.  Expand definitions where used.
3435         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3436         Expand definitions where used.
3437         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3438         rx_function_arg, rx_function_arg_advance,
3439         rx_function_arg_boundary): Expand definitions of those macros.
3440         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3441         definition where used.
3442
3443 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3444
3445         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3446         reg<->xmm moves.
3447         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3448         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3449         with *movv2sf_internal_rex64_avx.
3450         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3451         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3452         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3453         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3454         "vex" in "prefix" attribute calculation.
3455         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3456
3457 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3458
3459         PR target/47951
3460         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3461         inputs match the output.
3462
3463 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3464
3465         PR target/47955
3466         * config/m68k/m68k.c (m68k_expand_prologue): Set
3467         current_function_static_stack_size.
3468
3469 2011-05-02   Jan Hubicka  <jh@suse.cz>
3470
3471         * lto-streamer.c (lto_streamer_cache_insert_1,
3472         lto_streamer_cache_lookup, lto_streamer_cache_create,
3473         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3474         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3475
3476 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3477
3478         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3479         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3480         config/m68k/t-opts: New files.
3481         * config/m68k/m68k-tables.opt: New file (generated).
3482         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3483         extra_options and m68k/t-opts to tmake_file.
3484         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3485         (all_isas): Initialize using m68k-isas.def.
3486         (all_microarchs): Initialize using m68k-microarchs.def.
3487         (m68k_find_selection): Remove.
3488         (m68k_handle_option): Don't assert that global structures are in
3489         use.  Use error_at.  Access variables via opts pointer.  Don't
3490         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3491         directly for -m68020-40 and -m68020-60.
3492         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3493         m68k_tune_entry here.
3494         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3495         to m68k-opts.h.
3496         (m68k_library_id_string): Remove declaration.
3497         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3498         (m68k_library_id_string): New Variable.
3499         (march=, mcpu=, mtune=): Use Enum and Var.
3500
3501 2011-05-02  Richard Guenther  <rguenther@suse.de>
3502
3503         * varasm.c (output_constructor_regular_field): Compute zero-based
3504         index with double-ints.  Make sure to ICE instead of producing
3505         wrong code.
3506         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3507         in asserts.  Properly use a signed type.
3508
3509 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3510
3511         * config/i386/sse.md (V): New mode iterator.
3512         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3513         TARGET_SSE2.
3514         (V_256): Rename from AVX256MODE.
3515         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3516         condition to all users.
3517         (VF1): Ditto.
3518         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3519         condition to all users.
3520         (VF_128): Make V4SF mode unconditional.
3521         (VF_256): Rename from AVX256MODEF2P.
3522         (VI4F_128): Rename from SSEMODE4S.
3523         (VI8F_128): Rename from SSEMODE2D.
3524         (VI4F_256): Rename from AVX256MODE8P.
3525         (VI8F_256): Rename from AVX256MODE4P.
3526         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3527         (ssescalarmodesuffix): Remove SF and DF modes.
3528         (SSEMODE124): Remove.
3529         (SSEMODE1248): Ditto.
3530         (SSEMODEF2P): Ditto.
3531         (AVXMODEF2P): Ditto.
3532         (AVXMODEFDP): Ditto.
3533         (AVXMODEFSP): Ditto.
3534         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3535         unconditional.
3536         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3537         unconditional.
3538         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3539         xop_pcmov_<mode>256.  Use V mode iterator.
3540
3541         Adjust RTX patterns globally for renamed mode attributes.
3542
3543 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3544
3545         * haifa-sched.c (sched_emit_insn): Emit insn before first
3546         non-scheduled insn.  Inform back-end about new insn.  Add
3547         new insn to scheduled_insns list.
3548
3549 2011-05-02  Richard Guenther  <rguenther@suse.de>
3550
3551         PR tree-optimization/48822
3552         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3553         (process_scc): Indicate which iteration we start.
3554
3555 2011-05-02  Jan Hubicka  <jh@suse.cz>
3556
3557         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3558         (lto_section_overrun): New.
3559         * lto-section-out.c (append_block): Rename to ...
3560         (lto_append_block): ... this one; export.
3561         (lto_output_1_stream): Move lto lto-streamer.h
3562         (lto_output_data_stream): Update.
3563         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3564         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3565         functions.
3566
3567 2011-05-02  Richard Guenther  <rguenther@suse.de>
3568
3569         * tree.c (tree_code_counts): New global array.
3570         (record_node_allocation_statistics): Count individual tree codes.
3571         (dump_tree_statistics): Dump individual code stats.
3572
3573 2011-05-01  Jan Hubicka  <jh@suse.cz>
3574
3575         * ipa-inline.c (caller_growth_limits): Fix thinko when
3576         looking for largest stack frame.
3577         * ipa-inline.h (dump_inline_summary): Declare.
3578         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3579         on stack usage.
3580         (dump_inline_summary): Export.
3581         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3582
3583 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3584
3585         * reginfo.c (memory_move_cost): Change rclass argument type form
3586         'enum reg_class' to reg_class_t.
3587         * reload.h (memory_move_cost): Update prototype.
3588         * postreload.c reload_cse_simplify_set): Change type dclass var to
3589         reg_class_t.
3590         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3591         Update prototype.
3592         (ira_allocate_and_set_costs): Change aclass argument type form
3593         'enum reg_class' to reg_class_t.
3594         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3595         Change aclass argument type to reg_class_t.
3596         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3597         to reg_class_t.
3598         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3599         memory_move_cost call.
3600
3601         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3602         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3603         Change type tmp var to reg_class_t.
3604
3605 2011-04-30  Jan Hubicka  <jh@suse.cz>
3606
3607         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3608         inlining into function with flatten attribute.
3609         (want_inline_small_function_p): Be more realistic about inlining
3610         cold calls where callee size grows.
3611
3612 2011-04-30  Jan Hubicka  <jh@suse.cz>
3613
3614         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3615         flags.
3616
3617 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3618
3619         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3620         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3621         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3622         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3623         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3624         (print_operand): Rename to...
3625         (sparc_print_operand): ...this. Make static. Adjust
3626         sparc_print_operand function call.
3627         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3628         functions.
3629
3630 2011-04-30  Jan Hubicka  <jh@suse.cz>
3631
3632         PR middle-end/48752
3633         * ipa-inline.c (early_inliner): Disable when doing late
3634         addition of function.
3635
3636 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3637
3638         * dwarf2out.c (get_address_mode): New inline.
3639         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3640         if not dwarf_strict emit
3641         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3642         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3643         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3644         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3645         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3646         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3647         mem_loc_descriptor callers.
3648         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3649         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3650         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3651         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3652         (base_types): New variable.
3653         (get_base_type_offset, calc_base_type_die_sizes,
3654         base_type_for_mode, mark_base_types, base_type_cmp,
3655         move_marked_base_types): New functions.
3656         (calc_die_sizes): Assert that die_offset is 0 or equal to
3657         next_die_offset.
3658         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3659         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3660         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3661         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3662         (gen_subprogram_die): Don't give up on call site parameters
3663         with non-integral or large integral modes.  Adjust
3664         mem_loc_descriptor callers.
3665         (prune_unused_types): Call prune_unused_types_mark on base_types
3666         vector entries.
3667         (resolve_addr): Call mark_base_types.
3668         (dwarf2out_finish): Call move_marked_base_types.
3669
3670         PR tree-optimization/48809
3671         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3672         type.
3673         (gen_inbound_check): Don't compute index_expr - range_min in utype
3674         again, instead reuse SSA_NAME initialized in build_arrays.
3675         Remove two useless gsi_for_stmt calls.
3676
3677 2011-04-29  Jeff Law  <law@redhat.com>
3678
3679         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3680
3681 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3682
3683         * cgraph.h (cgraph_postorder): Remove declaration.
3684         * ipa-utils.h (ipa_free_postorder_info): Declare.
3685         (ipa_reverse_postorder): Likewise.
3686         * cgraphunit.c: Include ipa-utils.h.
3687         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3688         * ipa-inline.c: Include ipa-utils.h.
3689         (ipa_inline): Update call to ipa_reverse_postorder.
3690         * ipa-pure-const.c (propagate_pure_const): Update call to
3691         ipa_reduced_postorder and ipa_print_order.  Call
3692         ipa_free_postorder_info to clean up.
3693         (propagate_nothrow): Likewise.
3694         * ipa-reference.c (propagate): Removed a useless call to
3695         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3696         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3697         * ipa.c: Include ipa-utils.h.
3698         (ipa_profile): Update call to ipa_reverse_postorder.
3699         (cgraph_postorder): Moved to...
3700         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3701         (ipa_utils_print_order): Renamed to ipa_print_order.
3702         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3703         comments.
3704         (ipa_free_postorder_info): New function.
3705         * passes.c: Include ipa-utils.h.
3706         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3707         (ipa_write_summaries): Likewise.
3708         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3709         (cgraphunit.o): Likewise.
3710         (ipa.o): Likewise.
3711         (ipa-inline.o): Likewise.
3712
3713 2011-04-29  Jan Hubicka  <jh@suse.cz>
3714
3715         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3716         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3717         * ipa-inline.h (clause_t): Turn into unsigned int.
3718         * ipa-inline-analysis.c (add_clause): Do more simplification.
3719         (and_predicates): Shortcut more cases.
3720         (predicates_equal_p): Move forward; check that clauses are properly
3721         ordered.
3722         (or_predicates): Shortcut more cases.
3723         (edge_execution_predicate): Rewrite as...
3724         (set_cond_stmt_execution_predicate): ... this function; handle
3725         __builtin_constant_p.
3726         (set_switch_stmt_execution_predicate): New .
3727         (compute_bb_predicates): New.
3728         (will_be_nonconstant_predicate): Update TODO.
3729         (estimate_function_body_sizes): Use compute_bb_predicates
3730         and free them later, always try to estimate if stmt is constant.
3731         (estimate_time_after_inlining, estimate_size_after_inlining):
3732         Gracefully handle optimized out edges.
3733         (read_predicate): Fix off by one error.
3734
3735 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3736
3737         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3738
3739 2011-04-27  Xinliang David Li  <davidxl@google.com>
3740
3741         * tree-profile.c (init_ic_make_global_vars): Set
3742         tls attribute on ic vars.
3743         * coverage.c (coverage_end_function): Initialize
3744         function_list with zero.
3745
3746 2011-04-29  Richard Guenther  <rguenther@suse.de>
3747
3748         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3749         for the type of the result.
3750         (fold_builtin_isascii): Likewise.
3751         (fold_builtin_toascii): Use integer_type_node where appropriate.
3752         (fold_builtin_logb): Likewise.
3753         (fold_builtin_frexp): Likewise.
3754         (fold_builtin_strstr): Likewise.
3755         (fold_builtin_strpbrk): Likewise.
3756         (fold_builtin_fputs): Likewise.
3757         (fold_builtin_sprintf): Likewise.
3758         (fold_builtin_snprintf): Likewise.
3759         (fold_builtin_printf): Likewise.
3760         (do_mpfr_remquo): Use a proper type for the assigned constant.
3761         (do_mpfr_lgamma_r): Likewise.
3762         * dwarf2out.c (resolve_one_addr): Use size_int.
3763         * except.c (init_eh): Likewise.
3764         (assign_filter_values): Use integer_type_node for filter values.
3765         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3766         indices.
3767         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3768         for EH region numbers.
3769         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3770         for the shift amount.
3771
3772 2011-04-29  Richard Guenther  <rguenther@suse.de>
3773
3774         * expr.h (expand_shift): Rename to ...
3775         (expand_variable_shift): ... this.
3776         (expand_shift): Take a constant shift amount.
3777         * expmed.c (expand_shift): Rename to ...
3778         (expand_variable_shift): ... this.
3779         (expand_shift): New wrapper around expand_variable_shift.
3780         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3781         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3782         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3783         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3784         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3785         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3786         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3787         emit_store_flag_1, emit_store_flag): Likewise.
3788         * builtins.c (expand_builtin_signbit): Likewise.
3789         * calls.c (load_register_parameters): Likewise.
3790         * function.c (assign_parm_setup_block): Likewise.
3791         * lower-subreg.c (resolve_shift_zext): Likewise.
3792         * optabs.c (widen_bswap, expand_abs_nojump,
3793         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3794         * spu/spu.c (spu_expand_extv): Likewise.
3795         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3796
3797 2011-04-29  Richard Guenther  <rguenther@suse.de>
3798
3799         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3800         for the remapped region number.
3801         * predict.c (build_predict_expr): Use integer_type_node for the
3802         predict kind.
3803         * fold-const.c (fold_binary_loc): Use integer_type_node for
3804         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3805
3806 2011-04-29  Michael Matz  <matz@suse.de>
3807
3808         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3809         other trees that just builtins.
3810         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3811
3812 2011-04-29  Richard Guenther  <rguenther@suse.de>
3813
3814         * tree-nested.c (get_trampoline_type): Use size_int.
3815         (get_nl_goto_field): Likewise.
3816         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3817         for all indexes.
3818         (lower_eh_constructs_2): Likewise.
3819         (lower_resx): Likewise.
3820         (lower_eh_dispatch): Likewise.
3821         * tree-mudflap.c (mf_build_string): Use size_int.
3822         (mudflap_register_call): Use integer_type_node for the flag.
3823         (mudflap_enqueue_constant): Use size_int.
3824         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3825         instead of rebuilding it.
3826
3827 2011-04-29  Richard Guenther  <rguenther@suse.de>
3828
3829         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3830         Handle OBJ_TYPE_REF.
3831         (find_func_aliases_for_call): Use it more consistently.
3832
3833 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3834
3835         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3836         (rank_for_schedule): Use it.
3837         (schedule_block): Set it.
3838
3839 2011-04-28  David Li  <davidxl@google.com>
3840
3841         * tree.c (crc32_string): Use crc32_byte.
3842         (crc32_byte): New function.
3843         * tree.h (crc32_byte): New function.
3844         * gcov.c (read_graph_file): Handle new cfg_cksum.
3845         (read_count_file): Ditto.
3846         * profile.c (instrument_values): Ditto.
3847         (get_exec_counts): Ditto.
3848         (read_profile_edge_counts): Ditto.
3849         (compute_branch_probabilities): Ditto.
3850         (compute_value_histograms): Ditto.
3851         (branch_prob): Ditto.
3852         (end_branch_prob): Ditto.
3853         * coverage.c (read_counts_file): Ditto.
3854         (get_coverage_counts): Ditto.
3855         (tree_coverage_counter_addr): Ditto.
3856         (coverage_checksum_string): Ditto.
3857         (coverage_begin_output): Ditto.
3858         (coverage_end_function): Ditto.
3859         (build_fn_info_type): Ditto.
3860         (build_fn_info_value): Ditto.
3861         * libgcov.c (gcov_exit): Ditto.
3862         * gcov-dump.c (tag_function): Ditto.
3863         (compute_checksum): Remove.
3864
3865 2011-04-29  Alan Modra  <amodra@gmail.com>
3866
3867         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3868         unspec plus offset.  Tidy macho code.
3869
3870 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3871
3872         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3873         node instead of a decl.  Update all callers.
3874         * cgraph.h: Update declaration.
3875
3876 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3877
3878         PR tree-optimization/48765
3879         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3880         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3881         to indicate if loop aware SLP is being used.  Scan the statements
3882         and update the vectorization factor according to the type of
3883         vectorization before statement analysis.
3884         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3885         pass it to vect_analyze_loop_operations.
3886         (vectorizable_reduction): Set number of copies to 1 in case of pure
3887         SLP statement.
3888         * tree-vect-stmts.c (vectorizable_conversion,
3889         vectorizable_assignment, vectorizable_shift,
3890         vectorizable_operation, vectorizable_type_demotion,
3891         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3892         Likewise.
3893         (vectorizable_condition): Move the check that it is not SLP
3894         vectorization before the number of copies check.
3895         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3896         to vectorize the loop using SLP.
3897
3898 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3899
3900         PR middle-end/48597
3901         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3902         inline asm.
3903
3904 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3905
3906         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3907         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3908         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3909         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3910         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3911         linux*.h headers.
3912         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3913         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3914         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3915         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3916         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3917         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3918         REG_NAME.
3919         * config/i386/linux.h (REG_NAME): Don't define.
3920         * config/i386/linux64.h (REG_NAME): Don't define.
3921         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3922         Undefine before defining.
3923
3924 2011-04-28  Jan Hubicka  <jh@suse.cz>
3925
3926         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3927         nonconstant_names array.
3928         (estimate_function_body_sizes): Build nonconstant_names array; handle
3929         BUILT_IN_CONSTANT_P.
3930
3931 2011-04-28  Richard Guenther  <rguenther@suse.de>
3932
3933         PR bootstrap/48804
3934         Revert
3935         2011-04-28  Richard Guenther  <rguenther@suse.de>
3936
3937         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3938         as late as possible.
3939
3940 2011-04-28  Richard Guenther  <rguenther@suse.de>
3941
3942         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3943         (debug_constraint): Do it here.
3944         (dump_constraints): And here.
3945         (rewrite_constraints): And here.
3946         (dump_constraint_edge): Remove.
3947         (dump_constraint_graph): Rewrite to produce DOT output.
3948         (solve_constraints): Build succ graph as late as possible.
3949         Dump constraint graphs before and after solving.
3950
3951 2011-04-28  Richard Guenther  <rguenther@suse.de>
3952
3953         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3954         New function split out from ...
3955         (find_func_aliases): ... here.  Call it.
3956         (find_func_aliases_for_call): Likewise.
3957
3958 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3959
3960         * internal-fn.h (internal_fn_name_array): Declare.
3961         (internal_fn_flags_array): Likewise.
3962
3963 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3964
3965         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3966         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3967         Move from sse.md.
3968         (ssemodefsuffix): Remove.
3969         (ssevecmodesuffix): New mode attribute.
3970         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3971         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3972         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3973         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3974         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3975         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3976         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3977         ssemodesuffix mode attribute.
3978         (float splitters): Use ssevecmodesuffix mode attribute.
3979         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3980         (sseinsmode): Rename from avxvecmode.
3981         (avxsizesuffix): Rename from avxmodesuffix.
3982         (sseintvecmode): Rename from avxpermvecmode.
3983         (ssedoublevecmode): Rename from ssedoublesizemode.
3984         (ssehalfvecmode): Rename from avxhalfvecmode.
3985         (ssescalarmode): Rename from avxscalarmode.
3986         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3987         templates for ssemodesuffix mode attribute.
3988         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3989         mode attribute.
3990
3991         Adjust RTX patterns globally for renamed mode attributes.
3992
3993 2011-04-27  Jan Hubcika  <jh@suse.cz>
3994
3995         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3996         * ipa-inline-analysis.c: Include alloc-pool.h.
3997         (edge_predicate_pool): New.
3998         (trye_predicate_p): New function
3999         (false_predicate_p): New function.
4000         (add_clause): Sanity check that false clauses are "optimized";
4001         never add clauses to predicate that is already known to be false.
4002         (and_predicate): Use flase_predicate_p.
4003         (evaulate_predicate): Rename to ...
4004         (evaluate_predicate): ... this one; update all callers; assert
4005         that false is not listed among possible truths.
4006         (dump_predicate): Use true_predicate_p.
4007         (account_size_time): Use false_predicate_p.
4008         (evaulate_conditions_for_edge): Rename to ...
4009         (evaluate_conditions_for_edge) ... this one.
4010         (edge_set_predicate): New function.
4011         (inline_edge_duplication_hook): Duplicate edge predicates.
4012         (inline_edge_removal_hook): Free edge predicates.
4013         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4014         (dump_inline_summary): Update.
4015         (estimate_function_body_sizes): Set edge predicates.
4016         (estimate_calls_size_and_time): Handle predicates.
4017         (estimate_callee_size_and_time): Update.
4018         (remap_predicate): Add toplev_predicate; update comment.
4019         (remap_edge_predicates): New function.
4020         (inline_merge_summary): Compute toplev predicate; update.
4021         (read_predicate): New function.
4022         (read_inline_edge_summary): Use it.
4023         (inline_read_section): Likewise.
4024         (write_predicate): New function.
4025         (write_inline_edge_summary): Use it.
4026         (inline_write_summary): Likewise.
4027         (inline_free_summary): Free alloc pool and edge summary vec.
4028
4029 2011-04-27  Richard Guenther  <rguenther@suse.de>
4030
4031         * tree-ssa-structalias.c (changed_count): Remove.
4032         (changed): Use a bitmap.
4033         (unify_nodes): Adjust.
4034         (do_sd_constraint): Likewise.
4035         (do_ds_constraint): Likewise.
4036         (do_complex_constraint): Likewise.
4037         (solve_graph): Likewise.
4038
4039 2011-04-27  Jan Hubicka  <jh@suse.cz>
4040
4041         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4042
4043 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4044
4045         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4046         (avx_vperm2f128_*_operand): Ditto.
4047         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4048         Use avx_vpermilp_parallel in insn condition.
4049         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4050         Use avx_vperm2f128_parallel in insn condition.
4051
4052 2011-04-27  Richard Guenther  <rguenther@suse.de>
4053
4054         * Makefile.in (tree-ssa-structalias.o): Remove
4055         gt-tree-ssa-structalias.h dependency.
4056         (GTFILES): Remove tree-ssa-structalias.c.
4057         * tree.c (allocate_decl_uid): New function.
4058         (make_node_stat): Use it.
4059         (copy_node_stat): Likewise.
4060         * tree.h (allocate_decl_uid): Declare.
4061         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4062         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4063         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4064         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4065         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4066         (struct heapvar_map): Likewise.
4067         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4068         heapvar_insert): Likewise.
4069         (make_heapvar_for): Rename to ...
4070         (make_heapvar): ... this.  Simplify.
4071         (fake_var_decl_obstack): New global var.
4072         (build_fake_var_decl): New function.
4073         (make_constraint_from_heapvar): Adjust.
4074         (handle_lhs_call): Likewise.
4075         (create_function_info_for): Likewise.
4076         (intra_create_variable_infos): Likewise.
4077         (init_alias_vars): Allocate fake_var_decl_obstack.
4078         (init_alias_heapvars, delete_alias_heapvars): Remove.
4079         (compute_points_to_sets): Do not call init_alias_heapvars.
4080         (ipa_pta_execute): Likewise.
4081         (delete_points_to_sets): Free fake_var_decl_obstack.
4082
4083 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4084
4085         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4086         (si_from_UTItype, si_to_UTItype): New functions.
4087         (__udivmodti4): Use them to implement type-punning.
4088         * config/spu/multi3.c (union qword_TItype): New data type.
4089         (si_from_TItype, si_to_TItype): New functions.
4090         (__multi3): Use them to implement type-punning.
4091
4092 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4093
4094         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4095
4096 2011-04-27  Jan Hubicka  <jh@suse.cz>
4097
4098         * ipa-prop.c (function_insertion_hook_holder): New holder.
4099         (ipa_add_new_function): New function.
4100         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4101         Register/deregister holder.
4102
4103 2011-04-27  Richard Guenther  <rguenther@suse.de>
4104
4105         PR tree-optimization/48772
4106         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4107
4108 2011-04-27  Richard Guenther  <rguenther@suse.de>
4109
4110         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4111         TARGET_MEM_REF handling.
4112
4113 2011-04-27  Nick Clifton  <nickc@redhat.com>
4114
4115         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4116         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4117         (REG_CLASS_NAMES): Likewise.
4118         (REG_CLASS_CONTENTS): Likewise.
4119         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4120         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4121         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
4122         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
4123         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
4124         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4125         duplicate register classes.
4126         (frv_class_likely_spilled_p): Likewise.
4127         (frv_register_move_cost): Likewise.
4128
4129         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4130         end of the regno_reg_class array.
4131
4132 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
4133
4134         PR c/48742
4135         * c-typeck.c (build_binary_op): Don't wrap arguments if
4136         int_operands is true.
4137
4138 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4139
4140         PR target/48767
4141         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4142         targetm.calls.must_pass_in_stack for void type.
4143
4144 2011-04-26  Jan Hubicka  <jh@suse.cz>
4145
4146         * cgraphbuild.c (build_cgraph_edges): Update call
4147         of cgraph_create_edge and cgraph_create_indirect_edge.
4148         * cgraph.c (cgraph_create_edge_including_clones,
4149         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4150         cgraph_update_edges_for_call_stmt_node): Do not take nest
4151         argument; do not initialize call_stmt_size/time.
4152         (dump_cgraph_node): Do not dump nest.
4153         (cgraph_clone_edge): Do not take loop_nest argument;
4154         do not propagate it; do not clone call_stmt_size/time.
4155         (cgraph_clone_node): Likewise.
4156         (cgraph_create_virtual_clone): Update.
4157         * cgraph.h (struct cgraph_edge): Remove
4158         call_stmt_size/call_stmt_time/loop_nest.
4159         (cgraph_create_edge, cgraph_create_indirect_edge,
4160         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4161         prototype.
4162         * tree-emutls.c (gen_emutls_addr): Update.
4163         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4164         loop_nest; handle indirect calls, too.
4165         (clone_inlined_nodes): Do not care about updating inline summaries.
4166         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4167         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4168         stream call_stmt_size/call_stmt_time/loop_nest.
4169         * ipa-inline.c (edge_badness): Update.
4170         (ipa_inline): dump summaries after inlining.
4171         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4172         New.
4173         (inline_edge_summary): New function.
4174         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4175         (inline_edge_removal_hook): Handle edge summaries.
4176         (inline_edge_duplication_hook): New hook.
4177         (inline_summary_alloc): Alloc hooks.
4178         (initialize_growth_caches): Do not register removal hooks.
4179         (free_growth_caches); Do not free removal hook.
4180         (dump_inline_edge_summary): New function.
4181         (dump_inline_summary): Use it.
4182         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4183         (inline_update_callee_summaries): New function.
4184         (inline_merge_summary): Use it.
4185         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4186         (read_inline_edge_summary): New function.
4187         (inline_read_section): Use it.
4188         (write_inline_edge_summary): New function.
4189         (inline_write_summary): Use it.
4190         (inline_free_summary): Free edge new holders.
4191         * tree-inline.c (copy_bb): Update.
4192
4193 2011-04-26  Jason Merrill  <jason@redhat.com>
4194
4195         * tree-eh.c (lower_try_finally_switch): Create the label along with
4196         the CASE_LABEL_EXPR.
4197
4198 2011-04-26  David S. Miller  <davem@davemloft.net>
4199             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4200
4201         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4202         * configure: Regenerate.
4203
4204 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4205
4206         PR target/48258
4207         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4208         reduction.
4209         (VEC_reduc): New code iterator and splitters for vector reduction.
4210         (VEC_reduc_name): Ditto.
4211         (VEC_reduc_rtx): Ditto.
4212         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4213         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4214
4215         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4216         support for extracting SF on VSX.
4217
4218         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4219         generating xscvspdp.
4220         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4221         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4222         double add, minimum, maximum vector reduction.
4223         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4224         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4225         optimize double vector reduction.
4226         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4227
4228 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4229
4230         * config/fr30/fr30.h (inhibit_libc): Don't define.
4231         * config/m32r/m32r-protos.h: Correct comment.
4232         * config/v850/v850.h (GHS_default_section_names,
4233         GHS_current_section_names): Use tree, not union tree_node *.
4234
4235 2011-04-26  Xinliang David Li  <davidxl@google.com>
4236
4237         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4238         * c-family/c-opts.c (c_common_handle_option): Set
4239         warn_maybe_uninitialized.
4240         * opts.c (common_handle_option): Ditto.
4241         * common.opt:  New option.
4242         * tree-ssa.c (warn_uninit): Add one more parameter.
4243         (warn_uninitialized_var): Pass warning code.
4244         * tree-flow.h: Interface change.
4245
4246
4247 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4248
4249         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4250         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4251         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4252
4253 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4254
4255         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4256         * config/mips/mips.opt (mmips-tfile): Remove.
4257
4258         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4259         mips-tdump reference to ...
4260         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
4261         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4262         reference by Tru64 UNIX.
4263
4264 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
4265
4266         PR debug/48768
4267         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4268         is error_mark_node, set value to NULL.
4269
4270         PR tree-optimization/48734
4271         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4272         if return value from maybe_fold_*_comparsions isn't something
4273         the code is prepared to handle.
4274
4275 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
4276
4277         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4278         mode check.
4279         (ext_QIreg_nomode_operands): Remove.
4280         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4281         (*andsi_1): Ditto.
4282         (*andhi_1): Ditto.
4283
4284 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
4285
4286         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4287
4288 2011-04-26  Richard Guenther  <rguenther@suse.de>
4289
4290         * c-typeck.c (build_unary_op): Do not expand array-refs via
4291         pointer arithmetic.  Only adjust qualifiers for function types.
4292
4293 2011-04-26  Richard Guenther  <rguenther@suse.de>
4294
4295         PR middle-end/48694
4296         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4297         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4298         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
4299         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4300
4301 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
4302
4303         * doc/extend.texi: Document __underlying_type.
4304
4305 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
4306
4307         * config/rs6000/titan.md (automata_option "progress"): Remove.
4308
4309 2011-04-25  Jeff Law  <law@redhat.com>
4310
4311         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4312
4313 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
4314
4315         * system.h (ENUM_BITFIELD): Remove.
4316
4317 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
4318             Eric Botcazou  <ebotcazou@adacore.com>
4319
4320         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4321         for STORE_FLAG_VALUE==-1 case.
4322
4323 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
4324
4325         PR target/43804
4326         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4327         LEGITIMATE_PIC_OPERAND_P.
4328
4329 2011-04-24  Jan Hubicka  <jh@suse.cz>
4330
4331         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4332         WPA hack.
4333         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4334         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4335         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4336         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4337         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4338         Sanity check predicate length.
4339         (remap_predicate): Likewise; sanity check jump functions.
4340         (inline_read_section, inline_write_summary): Sanity check
4341         predicate length.
4342
4343 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
4344
4345         PR other/48748
4346         * doc/extend.texi (Type Traits): Document __is_standard_layout,
4347         __is_literal_type, and __is_trivial; update throughout about
4348         possibly cv-qualified void types.
4349
4350 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4351
4352         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4353         testsuite and make it version agnostic.
4354
4355 2011-04-22  Jan Hubicka  <jh@suse.cz>
4356
4357         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4358
4359 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
4360
4361         PR c/48685
4362         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4363         to VOID_TYPE even around MODIFY_EXPR.
4364
4365 2011-04-22  Mike Stump  <mikestump@comcast.net>
4366
4367         * gensupport.c (read_md_rtx): Fix typo in comment.
4368         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4369         comment.
4370
4371 2011-04-22  Jan Hubicka  <jh@suse.cz>
4372
4373         * gengtype.c (open_base_files): Add ipa-inline.h include.
4374         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4375         ipa-prop.c; update all uses.
4376         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4377         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4378         merge summary of inlined function into former caller.
4379         * ipa-inline.c (max_benefit): Remove.
4380         (edge_badness): Compensate for removal of benefits.
4381         (update_caller_keys): Use
4382         reset_node_growth_cache/reset_edge_growth_cache.
4383         (update_callee_keys): Likewise.
4384         (update_all_callee_keys): Likewise.
4385         (inline_small_functions): Do not collect max_benefit; do not reset
4386         estimated_growth; call free_growth_caches and initialize_growth_caches.
4387         * ipa-inline.h (struct condition, type clause_t, struct predicate,
4388         struct size_time_entry): New structures.
4389         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4390         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4391         and estimated_growth.
4392         (edge_growth_cache_entry): New structure.
4393         (node_growth_cache, edge_growth_cache): New global vars.
4394         (estimate_growth): Turn into inline.
4395         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4396         initialize_growth_caches, free_growth_caches): Declare.
4397         (estimate_edge_growth): Rewrite.
4398         (estimate_edge_time): Implement as inline cache lookup.
4399         (reset_node_growth_cache, reset_edge_growth_cache): New inline
4400         functions.
4401         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4402         (NUM_CONDITIONS): New constant.
4403         (predicate_conditions): New enum.
4404         (IS_NOT_CONSTANT): New constant.
4405         (edge_removal_hook_holder): New var.
4406         (node_growth_cache, edge_growth_cache): New global vars.
4407         (true_predicate, single_cond_predicate, false_predicate,
4408         not_inlined_predicate, add_condition, add_clause, and_predicates,
4409         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4410         dump_clause, dump_predicate, account_size_time,
4411         evaulate_conditions_for_edge): New functions.
4412         (inline_summary_alloc): Move to heap.
4413         (inline_node_removal_hook): Clear condition and entry vectors.
4414         (inline_edge_removal_hook): New function.
4415         (initialize_growth_caches, free_growth_caches): New function.
4416         (dump_inline_summary): Update.
4417         (edge_execution_predicate): New function.
4418         (will_be_nonconstant_predicate): New function.
4419         (estimate_function_body_sizes): Compute BB and constantness predicates.
4420         (compute_inline_parameters): Do not clear estimated_growth.
4421         (estimate_edge_size_and_time): New function.
4422         (estimate_calls_size_and_time): New function.
4423         (estimate_callee_size_and_time): New function.
4424         (remap_predicate): New function.
4425         (inline_merge_summary): New function.
4426         (do_estimate_edge_time): New function based on...
4427         (estimate_edge_time): ... this one.
4428         (do_estimate_edge_growth): New function.
4429         (do_estimate_growth): New function based on....
4430         (estimate_growth): ... this one.
4431         (inline_analyze_function): Analyze after deciding on jump functions.
4432         (inline_read_section): New function.
4433         (inline_read_summary): Use it.
4434         (inline_write_summary): Write all the new data.
4435         * ipa-prop.c (ipa_get_param_decl_index): Export.
4436         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4437         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4438         Declare.
4439         (ipa_get_lattice): Move here from ipa-cp.c
4440         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4441         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4442         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4443         cgraph_edge_inlinable_p): Remove.
4444         * cgraphunit.c: Include ipainline.h
4445         (cgraph_process_new_functions): Update call of
4446         compute_inline_parameters.
4447
4448 2011-04-22  Richard Guenther  <rguenther@suse.de>
4449
4450         * tree.c (build_int_cst): Properly create canonicalized integer
4451         constants.
4452         (build_int_cst_type): Remove scary comments.
4453
4454 2011-04-22  Xinliang David Li  <davidxl@google.com>
4455
4456         * toplev.c (process_options): Enable -Werror=coverage-mismatch
4457         by default when -Wno-error is not specified.
4458         * opts-global.c (decode_options): Remove call to
4459         control_warning_options.
4460
4461 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4462
4463         PR tree-optimization/48717
4464         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4465         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4466
4467 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
4468
4469         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
4470         definition where used.
4471
4472 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4473
4474         PR c/48716
4475         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4476         TREE_STATIC variables declared inside of some OpenMP construct.
4477
4478 2011-04-22  Martin Jambor  <mjambor@suse.cz>
4479
4480         PR middle-end/48585
4481         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4482
4483 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
4484
4485         PR c/36750
4486         * c-typeck.c (pop_init_level): Do not warn about initializing
4487         with ` = {0}'.
4488
4489 2011-04-22  Alan Modra  <amodra@gmail.com>
4490
4491         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4492         when returning call_cookie.
4493         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4494         pointers, to functions with no more vector args than the current
4495         function, and some non-local calls for ABI_V4.
4496         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4497         sibcall_nonlocal_aix64): Combine to ..
4498         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
4499         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4500         (sibcall_value_nonlocal_aix<mode>): ..likewise.
4501         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4502         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
4503         operand.
4504         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4505         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4506         sibcall_value_symbolic_64): Delete.
4507
4508 2011-04-21  Xinliang David Li  <davidxl@google.com>
4509
4510         * cgraph.h: Remove pid.
4511         * cgraph.c: Remove pid.
4512         * value-prof.c (init_node_map): New function.
4513         (del_node_map): New function.
4514         (find_func_by_funcdef_no): New function.
4515         (gimple_ic_transform): Call new function.
4516         * cgraphunit.c (cgraph_finalize_function): Remove pid.
4517         * function.c (get_last_funcdef_no): New function.
4518         * function.h (get_last_funcdef_no): New function.
4519         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4520         to libgcov function.
4521         (tree-profiling): Call node map init and delete function.
4522
4523 2011-04-21  Ian Lance Taylor  <iant@google.com>
4524
4525         * godump.c (go_format_type): Use exported Go name for anonymous
4526         field name.
4527
4528 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4529
4530         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4531         Call builtin_function_type_list instead of builtin_function_type.
4532         (UNARY, BINARY, TRINARY, QUAD): Likewise.
4533
4534 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4535
4536         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4537         build_function_type_list instead of build_function_type.
4538         Delete variable `endlink'.
4539
4540 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4541
4542         * config/s390/s390.c (s390_init_builtins): Call
4543         build_function_type_list instead of build_function_type.
4544
4545 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4546
4547         * config/ia64/ia64.c (ia64_init_builtins): Call
4548         build_function_type_list instead of builtin_function_type.
4549
4550 2011-04-21  Easwaran Raman  <eraman@google.com>
4551
4552         * cfgexpand.c (stack_var): Remove OFFSET...
4553         (add_stack_var): ...and its reference here...
4554         (expand_stack_vars): ...and here.
4555         (stack_var_cmp): Sort by descending order of size.
4556         (partition_stack_vars): Change heuristic.
4557         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4558         (dump_stack_var_partition): Add newline after each partition.
4559
4560 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
4561             Jeff Law  <law@redhat.com>
4562
4563         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4564         * gengtype.c (matching_file_name_substitute): Likewise.
4565
4566 2011-04-21  Richard Guenther  <rguenther@suse.de>
4567
4568         PR lto/48703
4569         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4570
4571 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4572
4573         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4574
4575 2011-04-21  Richard Guenther  <rguenther@suse.de>
4576
4577         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4578         file name.
4579
4580 2011-04-21  Richard Guenther  <rguenther@suse.de>
4581
4582         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4583         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4584         Use DECL_P, not SSA_VAR_P.
4585         (ptr_derefs_may_alias_p): Likewise.
4586         (ptr_deref_may_alias_ref_p_1): Likewise.
4587         (decl_refs_may_alias_p): Likewise.
4588         (refs_may_alias_p_1): Likewise.
4589         (ref_maybe_used_by_call_p_1): Likewise.
4590         (call_may_clobber_ref_p_1): Likewise.
4591         (indirect_ref_may_alias_decl_p): Assume indirect refrences
4592         are either MEM_REF or TARGET_MEM_REF.
4593         (indirect_refs_may_alias_p): Likewise.
4594         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4595         for MEM_EXPR of indirect calls.
4596
4597 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4598
4599         * vmsdbgout.c (write_srccorr): Compute file length from the string.
4600         (dst_file_info_struct): Remove flen field.
4601         (lookup_filename): Remove code that set flen field.
4602
4603 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4604
4605         * config/ia64/ia64.c (ia64_start_function): Add a guard.
4606
4607 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
4608
4609         PR target/48708
4610         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4611         vec_extract and vec_concat for non-SSE4_1 targets.
4612
4613 2011-04-21  Richard Guenther  <rguenther@suse.de>
4614
4615         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4616         return statements.
4617
4618 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4619
4620         * config/i386/cygming.h (union tree_node, TREE): Don't define or
4621         undefine.
4622         (FILE): Don't undefine.
4623
4624 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4625
4626         * config/alpha/alpha.c (struct machine_function): Use rtx, not
4627         struct rtx_def *.
4628         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4629         struct rtx_def *.
4630         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4631         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4632         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4633         rtx_def *.
4634         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
4635         definitions where used.
4636         * config/microblaze/microblaze.h (struct microblaze_args): Use
4637         rtx, not struct rtx_def *.
4638         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4639         rtx_def *.
4640         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4641         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4642         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4643         not struct rtx_def *.
4644         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4645         struct rtx_def *.
4646         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4647         rtx_def *.
4648         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4649
4650 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4651
4652         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4653         operand_equal_p to compare DR_BASE_ADDRESSes.
4654         (vect_check_interleaving): Likewise.
4655
4656 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4657
4658         PR target/46329
4659         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4660         for all Neon struct constants.
4661
4662 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4663
4664         * target.def (legitimate_constant_p): New hook.
4665         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4666         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4667         * doc/tm.texi: Regenerate.
4668         * hooks.h (hook_bool_mode_rtx_true): Declare.
4669         * hooks.c (hook_bool_mode_rtx_true): Define.
4670         * system.h (LEGITIMATE_CONSTANT_P): Poison.
4671         * calls.c (precompute_register_parameters): Replace uses of
4672         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4673         (emit_library_call_value_1): Likewise.
4674         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4675         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4676         * ira-costs.c (scan_one_insn): Likewise.
4677         * recog.c (general_operand, immediate_operand): Likewise.
4678         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4679         * reload1.c (init_eliminable_invariants): Likewise.
4680
4681         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4682         mode argument.
4683         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4684         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4685         argument.
4686         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4687         * config/alpha/predicates.md (input_operand): Update call to
4688         alpha_legitimate_constant_p.
4689
4690         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4691         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4692         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4693         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4694         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4695         (arm_legitimate_constant_p): New functions.
4696         (arm_cannot_force_const_mem): Make static.
4697
4698         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4699
4700         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4701         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4702         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4703         instead of bfin_legitimate_constant_p.
4704         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
4705         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4706
4707         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4708
4709         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4710
4711         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4712         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4713         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4714         (frv_legitimate_constant_p): Make static.  Add a mode argument.
4715
4716         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4717         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4718         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4719
4720         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4721         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4722         * config/i386/i386.c (legitimate_constant_p): Rename to...
4723         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
4724         argument.
4725         (ix86_cannot_force_const_mem): Update accordingly.
4726         (ix86_legitimate_address_p): Likewise.
4727         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4728         * config/i386/i386.md: Update commentary.
4729
4730         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4731         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4732         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4733         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
4734
4735         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4736
4737         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4738         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4739         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4740         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
4741
4742         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4743         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4744         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4745
4746         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4747         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4748         (m32r_legitimate_constant_p): New function.
4749
4750         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4751         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4752         LEGITIMATE_CONSTANT_P.
4753         (LEGITIMATE_CONSTANT_P): Delete.
4754         * config/m68k/m68k.c (m68k_expand_prologue): Call
4755         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4756         (m68k_legitimate_constant_p): New function.
4757         * config/m68k/m68k.md: Update comments.
4758
4759         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4760         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4761         (mcore_legitimate_constant_p): New function.
4762
4763         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4764         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4765         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4766         Add a mode argument.
4767         (mep_legitimate_address): Update accordingly.
4768         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4769
4770         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4771         Delete.
4772         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4773         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4774         static.  Check OP's mode for VOIDmode.
4775         (microblaze_legitimate_constant_p): New function.
4776         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4777
4778         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4779         * config/mips/mips.c (mips_legitimate_constant_p): New function.
4780         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4781         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4782         * config/mips/predicates.md: Update comments.
4783
4784         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4785         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4786         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4787         (mmix_legitimate_constant_p): Make static, return a bool, and take
4788         a mode argument.
4789         (mmix_print_operand_address): Update accordingly.
4790
4791         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4792         Delete.
4793         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
4794         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4795         static.  Add a mode argument.
4796         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4797
4798         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4799
4800         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4801         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4802         (pa_legitimate_constant_p): New function.
4803
4804         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4805
4806         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4807         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4808         (pdp11_legitimate_constant_p): New function.
4809
4810         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4811         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4812         (rs6000_legitimate_constant_p): New function.
4813
4814         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4815         (rx_legitimate_constant_p): ...this.
4816         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4817         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4818         (rx_legitimate_constant_p): ...this.
4819         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4820         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4821
4822         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4823         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4824         * config/s390/s390.c (legitimate_constant_p): Rename to...
4825         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
4826         and add a mode argument.
4827         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4828
4829         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4830
4831         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4832         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4833         (sh_legitimate_constant_p): New function.
4834
4835         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4836         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4837         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4838         (legitimate_constant_p): Rename to...
4839         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
4840         argument.
4841         (constant_address_p): Update accordingly.
4842
4843         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4844         argument and return a bool.
4845         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4846         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4847         (spu_legitimate_constant_p): Add a mode argument and return a bool.
4848         (spu_rtx_costs): Update accordingly.
4849         * config/spu/predicates.md (vec_imm_operand): Likewise.
4850
4851         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4852
4853         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4854         * config/v850/v850.c (v850_legitimate_constant_p): New function.
4855         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4856
4857         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4858         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4859         * config/vax/vax.c (legitimate_constant_p): Likewise.
4860
4861         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4862         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4863         (xtensa_legitimate_constant_p): New function.
4864
4865 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4866
4867         * target.def (cannot_force_const_mem): Add a mode argument.
4868         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4869         * doc/tm.texi: Regenerate.
4870         * hooks.h (hook_bool_mode_rtx_false): Declare.
4871         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4872         (hook_bool_mode_const_rtx_true): Likewise.
4873         (hook_bool_mode_rtx_false): New function.
4874         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4875         to be non-VOID.  Update call to cannot_force_const_mem.
4876         (find_reloads): Update accordingly.
4877         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4878         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4879         argument.
4880         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4881         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4882         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4883         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4884         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4885         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4886         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4887         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4888         (m68k_cannot_force_const_mem): ...this new function.
4889         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4890         argument.
4891         (mips_const_insns, mips_legitimize_const_move): Update calls.
4892         (mips_secondary_reload_class): Likewise.
4893         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4894         (pa_cannot_force_const_mem): ...this new function.
4895         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4896         (rs6000_cannot_force_const_mem): ...this new function.
4897         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4898         argument.
4899         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4900         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4901         to...
4902         (xtensa_cannot_force_const_mem): ...this new function.
4903
4904 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4905
4906         * config/mips/mips.c (mips16_build_function_stub): Call
4907         build_function_type_list instead of build_function_type.
4908         (mips16_build_call_stub): Likewise.
4909
4910 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4911
4912         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4913         instead of build_function_type.
4914
4915 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4916
4917         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4918         instead of build_function_type.
4919
4920 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4921
4922         PR target/48678
4923         * config/i386/i386.md (insv): Change operand 0 constraint to
4924         "register_operand".  Change operand 1 and 2 constraint to
4925         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4926         * config/i386/sse.md (sse4_1_pinsrb): Export.
4927         (sse2_pinsrw): Ditto.
4928         (sse4_1_pinsrd): Ditto.
4929         (sse4_1_pinsrq): Ditto.
4930         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4931         * config/i386/i386.c (ix86_expand_pinsr): New.
4932
4933 2011-04-20  Easwaran Raman  <eraman@google.com>
4934
4935         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4936         containing union type only with -fstrict-aliasing.
4937
4938 2011-04-20  Jim Meyering  <meyering@redhat.com>
4939
4940         Remove useless if-before-free tests.
4941         * calls.c (expand_call, save_area): Likewise.
4942         * cfgcleanup.c (try_forward_edges): Likewise.
4943         * collect2.c (collect_execute): Likewise.
4944         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4945         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4946         * coverage.c (coverage_checksum_string): Likewise.
4947         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4948         * cselib.c (cselib_init): Likewise.
4949         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4950         (df_set_clean_cfg): Likewise.
4951         * function.c (free_after_compilation): Likewise.
4952         * gcc.c (do_spec_1, main): Likewise.
4953         * gcov.c (create_file_names): Likewise.
4954         * gensupport.c (identify_predicable_attribute): Likewise.
4955         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4956         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4957         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4958         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4959         * ipa-pure-const.c (local_pure_const): Likewise.
4960         * ipa-reference.c (propagate): Likewise.
4961         * ira-costs.c (free_ira_costs): Likewise.
4962         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4963         * matrix-reorg.c (mat_free): Likewise.
4964         * prefix.c (get_key_value): Likewise.
4965         * profile.c (compute_value_histograms): Likewise.
4966         * reload1.c (free_reg_equiv): Likewise.
4967         * sched-deps.c (free_deps): Likewise.
4968         * sel-sched-ir.c (fence_clear): Likewise.
4969         * sese.c (set_rename, if_region_set_false_region): Likewise.
4970         * tree-data-ref.c (free_rdg): Likewise.
4971         * tree-eh.c (lower_try_finally): Likewise.
4972         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4973         * tree-ssa-live.c (delete_var_map): Likewise.
4974         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4975         * tree-ssa-pre.c (phi_trans_add): Likewise.
4976
4977 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
4978
4979         PR tree-optimization/48611
4980         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4981         beyond ERT_MUST_NOT_THROW region.
4982
4983 2011-04-20  Catherine Moore  <clm@codesourcery.com>
4984
4985         * config/mips/mips.opt (mfix-24k): New.
4986         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4987         * config/mips/mips.md (length): Increase by 4 for stores if
4988         fixing 24K errata.
4989         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4990         all noreorder if fixing 24K errata.
4991         * doc/invoke.texi: Document mfix-24k.
4992
4993 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
4994
4995         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
4996         quad-word modes, reduce to 9-bit index range when above 1016 limit.
4997
4998 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4999
5000         * config/arm/arm.c (arm_gen_constant): Move movw support ....
5001         (const_ok_for_op): ... to here.
5002
5003 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5004
5005         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5006         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5007
5008 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5009
5010         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5011
5012 2011-04-20  Richard Guenther  <rguenther@suse.de>
5013
5014         PR tree-optimization/47892
5015         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5016         are if-convertible.
5017
5018 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5019
5020         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5021
5022 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5023
5024         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5025
5026 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5027
5028         PR target/18145
5029
5030         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5031         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5032         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5033         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5034         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5035
5036         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5037         New prototype.
5038
5039         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5040         (avr_asm_named_section, avr_asm_output_aligned_common,
5041         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5042         New functions to update...
5043         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5044         (avr_asm_init_sections): Overwrite section callbacks for
5045         data_section, bss_section.
5046         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5047         from here to...
5048         (avr_file_end): ...here.
5049
5050 2011-04-20  Richard Guenther  <rguenther@suse.de>
5051
5052         PR middle-end/48695
5053         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5054         objects and types here.  Adjust for their offset before comparing.
5055
5056 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5057
5058         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5059         statement per copy.
5060
5061 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5062
5063         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5064         (GIMPLE_H): Include $(INTERNAL_FN_H).
5065         (OBJS-common): Add internal-fn.o.
5066         (internal-fn.o): New rule.
5067         * internal-fn.def: New file.
5068         * internal-fn.h: Likewise.
5069         * internal-fn.c: Likewise.
5070         * gimple.h: Include internal-fn.h.
5071         (GF_CALL_INTERNAL): New gf_mask.
5072         (gimple_statement_call): Put fntype into a union with a new
5073         internal_fn field.
5074         (gimple_build_call_internal): Declare.
5075         (gimple_build_call_internal_vec): Likewise.
5076         (gimple_call_same_target_p): Likewise.
5077         (gimple_call_internal_p): New function.
5078         (gimple_call_internal_fn): Likewise.
5079         (gimple_call_fntype): Return null for internal calls.
5080         (gimple_call_set_fntype): Assert that the function is not internal.
5081         (gimple_call_set_fn): Likewise.
5082         (gimple_call_set_fndecl): Likewise.
5083         (gimple_call_set_internal_fn): New function.
5084         (gimple_call_addr_fndecl): Handle null functions.
5085         (gimple_call_return_type): Likewise null types.
5086         * gimple.c (gimple_build_call_internal_1): New function.
5087         (gimple_build_call_internal): Likewise.
5088         (gimple_build_call_internal_vec): Likewise.
5089         (gimple_call_same_target_p): Likewise.
5090         (gimple_call_flags): Handle calls to internal functions.
5091         (gimple_call_fnspec): New function.
5092         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5093         (gimple_has_side_effects): Handle null functions.
5094         (gimple_rhs_has_side_effects): Likewise.
5095         (gimple_call_copy_skip_args): Handle calls to internal functions.
5096         * cfgexpand.c (expand_call_stmt): Likewise.
5097         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5098         * gimple-fold.c (gimple_fold_call): Handle null functions.
5099         (gimple_fold_stmt_to_constant_1): Don't fold
5100         calls to internal functions.
5101         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5102         functions.
5103         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5104         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5105         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5106         (do_warn_unused_result): Likewise.
5107         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5108         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5109         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5110         the target of a call.
5111         (initialize_hash_element): Update accordingly.
5112         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5113         (iterative_hash_hashable_expr): Handle calls to internal functions.
5114         (print_expr_hash_elt): Likewise.
5115         * tree-ssa-pre.c (can_value_number_call): Likewise.
5116         (eliminate): Handle null functions.
5117         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5118         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5119         (find_func_aliases): Likewise.
5120         * value-prof.c (gimple_ic_transform): Likewise.
5121         (gimple_indirect_call_to_profile): Likewise.
5122         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5123         * lto-streamer-out.c (output_gimple_stmt): Likewise.
5124
5125 2011-04-19  Jan Hubicka  <jh@suse.cz>
5126
5127         * ipa-inline-transform.c (save_inline_function_body): Add comments.
5128         * ipa-inline.c (inline_small_functions): Compute summaries first,
5129         populate heap later.
5130
5131 2011-04-19  Jan Hubicka  <jh@suse.cz>
5132
5133         * cgraph.h (save_inline_function_body): Remove.
5134         * ipa-inline-transform.c: New file, broke out of...
5135         * ipa-inline.c: ... this one; Update toplevel comment.
5136         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5137         make global.
5138         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5139         (cgraph_mark_inline_edge): Rename to inline_call; move to
5140         ipa-inline-transform.c.
5141         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5142         move to ipa-inline-transform.c
5143         (recursive_inlining, inline_small_functions, flatten_function,
5144         ipa_inline, inline_always_inline_functions,
5145         early_inline_small_functions): Update.
5146         (inline_transform): Move to ipa-inline-transform.c.
5147         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5148         Declare.
5149         * Makefile.in (ipa-inline-transform.o): New file.
5150         * cgraphunit.c (save_inline_function_body): Move to
5151         ipa-inline-transform.c
5152
5153 2011-04-19  DJ Delorie  <dj@redhat.com>
5154
5155         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5156         registers if we already know there aren't any.
5157         (m32c_emit_epilogue): Don't emit a barrier here.
5158         (m32c_emit_eh_epilogue): Likewise.
5159         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5160         operands at expand time.
5161         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5162         int" wchar type.
5163         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5164         duplicates.  Provide aliases instead.
5165         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5166         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5167         the compiler.
5168
5169 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5170
5171         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5172         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5173         (general_or_i64_p, sparc_register_move_cost): New function.
5174
5175 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5176
5177         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5178         Add lynx, mipssde.  Sort table.
5179
5180 2011-04-19  Xinliang David Li  <davidxl@google.com>
5181
5182         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5183         not negative.
5184
5185 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5186
5187         PR target/48678
5188         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5189         is a SUBREG with non-MODE_INT mode inside of it.
5190
5191 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5192
5193         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5194         also according to actual contants.
5195         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5196         (gimple_fold_call): Use it.
5197         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5198
5199 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5200
5201         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5202         non-pointer assignments.
5203
5204 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5205
5206         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5207         account anc_offset and otr_type from the indirect edge info.
5208         * ipa-prop.c (get_ancestor_addr_info): New function.
5209         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5210         get_ancestor_addr_info, call it.
5211         (ipa_note_param_call): Do not initialize information about polymorphic
5212         calls, return the indirect call graph edge.  Remove the last
5213         parameter, adjust all callers.
5214         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5215         parameters.  Initialize polymorphic information in the indirect edge.
5216
5217 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5218
5219         PR lto/48148
5220         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5221         the types if they have different enumeration identifiers.
5222
5223 2011-04-19  Jan Hubicka  <jh@suse.cz>
5224
5225         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5226         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5227         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5228         (optimize_function_for_size_p) ... here.
5229
5230 2011-04-19  Richard Guenther  <rguenther@suse.de>
5231
5232         PR lto/48207
5233         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5234         langhook.
5235
5236 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5237
5238         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5239         if DECL_NO_INLINE_WARNING_P is set on the function.
5240
5241 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
5242
5243         PR fortran/47976
5244         * reload1.c (inc_for_reload): Return void. All callers changed.
5245         (emit_input_reload_insns): Don't try to delete previous output
5246         reloads to a register, or record spill_reg_store for autoincs.
5247
5248 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
5249
5250         * gengtype.h: Updated copyright year.
5251         (struct input_file_st): Add inpisplugin field.
5252         (type_fileloc): New function.
5253         * gengtype.c
5254         (write_typed_struct_alloc_def): Add gcc_assert.
5255         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5256         (write_typed_alloc_defns): Don't output for plugin files.
5257         (input_file_by_name): Clear inpisplugin field.
5258         (main): Set inpisplugin field for plugin files.
5259
5260 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
5261
5262         * gengtype-state.c (string_eq): New.
5263         (read_state): Use string_eq instead of strcmp when creating the
5264         state_ident_tab.
5265
5266 2011-04-19  Wei Guozhi  <carrot@google.com>
5267
5268         PR target/47855
5269         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5270         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5271         linkage.
5272         * config/arm/constraints.md (Uu): New constraint.
5273         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5274
5275 2011-04-19  Tristan Gingold  <gingold@adacore.com>
5276
5277         * config.gcc (-*-*-*vms): Added.
5278         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5279         definitions moved.
5280         * config/vms/vms-ld.c: New file.
5281         * config/vms/vms-ar.c: New file.
5282         * config/vms/t-vmsnative: New file.
5283
5284 2011-04-18  Xinliang David Li  <davidxl@google.com>
5285
5286         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5287
5288 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5289
5290         PR middle-end/48661
5291         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5292         if TREE_TYPE (v) is non-NULL.
5293
5294         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5295         gimple_get_virt_mehtod_for_binfo.
5296         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5297         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5298         callers.
5299         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5300
5301 2011-04-18  Michael Matz  <matz@suse.de>
5302             Steve Ellcey  <sje@cup.hp.com>
5303
5304         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5305         use its mode as source mode if it isn't VOIDmode.
5306
5307 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
5308
5309         * doc/passes.texi: Fill crossref nodes.
5310
5311 2011-04-18  Jim Meyering  <meyering@redhat.com>
5312
5313         Fix doubled-word typos in comments and strings
5314         * config/alpha/vms-unwind.h: s/for for/for/
5315         * config/arm/unwind-arm.h: Likewise.
5316         * config/microblaze/microblaze.c: Likewise.
5317         * config/sh/constraints.md: s/in in/in/
5318         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5319
5320 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
5321
5322         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5323         (AVX_FLOAT_MODE_P): Ditto.
5324         (AVX128_VEC_FLOAT_MODE_P): Ditto.
5325         (AVX256_VEC_FLOAT_MODE_P): Ditto.
5326         (AVX_VEC_FLOAT_MODE_P): Ditto.
5327         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5328         (UNSPEC_MASKSTORE): Ditto.
5329         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5330         Merge from <sse>_movmsk<ssemodesuffix> and
5331         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
5332         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
5333         iterator.
5334         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5335         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5336         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5337
5338 2011-04-18  Jan Hubicka  <jh@suse.cz>
5339
5340         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5341
5342         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5343         (want_inline_function_called_once_p): Break out the logic from
5344         ipa_inline.
5345         (edge_badness): Ensure that profile is not misupdated.
5346         (lookup_recursive_calls): Prioritize by call frequencies.
5347         (inline_small_functions): Move program size estimates here;
5348         actually process whole queue even when unit growth has been
5349         met. (to properly compute inline_failed reasons and for the
5350         case unit size decrease.) Revisit comments on recursive inlining.
5351         (ipa_inline): Remove unit summary code; first inline hot calls
5352         of functions called once, cold calls next.
5353         (order, nnodes): Remove unused variables.
5354         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5355         (GTFILES): Remove ipa-inline.c
5356         * sel-sched.c (fill_insns): Silence uninitialized var warning.
5357
5358 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5359
5360         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5361
5362 2011-04-18  Jie Zhang  <jie@codesourcery.com>
5363             Richard Earnshaw  <rearnsha@arm.com>
5364
5365         * arm.c (neon_builtin_type_bits): Remove.
5366         (typedef enum neon_builtin_mode): New.
5367         (T_MAX): Don't define.
5368         (typedef enum neon_builtin_datum): Remove bits, codes[],
5369         num_vars and base_fcode.  Add mode, code and fcode.
5370         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5371         VAR10): Change accordingly.
5372         (neon_builtin_data[]): Change accordingly
5373         (arm_init_neon_builtins): Change accordingly.
5374         (neon_builtin_compare): Remove.
5375         (locate_neon_builtin_icode): Remove.
5376         (arm_expand_neon_builtin): Change accordingly.
5377
5378         * arm.h (enum arm_builtins): Move to ...
5379         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5380
5381         * arm.c (arm_builtin_decl): Declare.
5382         (TARGET_BUILTIN_DECL): Define.
5383         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5384         (arm_builtin_decls[]): New.
5385         (arm_init_neon_builtins): Store builtin declarations in
5386         arm_builtin_decls[].
5387         (arm_init_tls_builtins): Likewise.
5388         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
5389         (arm_builtin_decl): New.
5390
5391 2011-04-18  Richard Guenther  <rguenther@suse.de>
5392
5393         * tree.c (upper_bound_in_type): Build properly canonicalized
5394         INTEGER_CSTs.
5395         (lower_bound_in_type): Likewise.
5396
5397 2011-04-18  Richard Guenther  <rguenther@suse.de>
5398
5399         * gimple.h (gimple_call_addr_fndecl): New function.
5400         (gimple_call_fndecl): Use it.
5401         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5402         for direct calls.
5403         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5404         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5405
5406 2011-04-18  Richard Guenther  <rguenther@suse.de>
5407
5408         PR middle-end/48650
5409         * tree.c (build_string): STRING_CST is now derived from tree_typed.
5410
5411 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5412
5413         PR lto/48492
5414         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5415         DECL_IN_CONSTANT_POOL without RTL.
5416
5417 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
5418             Ira Rosen  <ira.rosen@linaro.org>
5419
5420         PR target/48252
5421         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5422         to match neon_vzip/vuzp/vtrn_internal.
5423         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5424         outputs explicitly dependent on both inputs.
5425         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5426
5427 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5428
5429         PR tree-optimization/48616
5430         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5431         whether the shift is by scalar or vector based on whether all SLP
5432         scalar stmts have the same rhs.
5433
5434 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
5435
5436         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5437         memory operands.
5438
5439 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5440
5441         PR target/43700
5442         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5443         registers.
5444
5445 2011-04-17  Jan Hubicka  <jh@suse.cz>
5446
5447         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5448         * cgrpahunit.c (cgraph_finalize_function): Do not set
5449         finalized_by_frontend.
5450         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5451         finalized_by_frontend.
5452
5453 2011-04-17  Jan Hubicka  <jh@suse.cz>
5454
5455         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5456         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5457         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5458         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5459         method.
5460         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5461         gimple-fold.c
5462         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5463
5464 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5465
5466         PR lto/48538
5467         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5468         is non-null before accessing it.
5469         (input_cgraph): Remove trailing spaces.
5470
5471 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5472
5473         * params.def (sms-min-sc): New param flag.
5474         * modulo-sched.c (sms_schedule): Use it.
5475         * doc/invoke.texi (sms-min-sc): Document it.
5476
5477 2011-04-17  Jan Hubicka  <jh@suse.cz>
5478
5479         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5480         present, also set gimple_call_set_cannot_inline.
5481         * ipa-inline.c: Update toplevel comment.
5482         (MAX_TIME): Remove.
5483         (cgraph_clone_inlined_nodes): Fix linebreaks.
5484         (cgraph_check_inline_limits): Restructure to ...
5485         (caller_growth_limits): ... this one; be more tolerant
5486         on growth in nested inline chains; add explanatory comment;
5487         fix stack accounting thinko introduced by previous patch.
5488         (cgraph_default_inline_p): Remove.
5489         (report_inline_failed_reason): New function.
5490         (can_inline_edge_p): New function.
5491         (can_early_inline_edge_p): New function.
5492         (leaf_node_p): Move upwards in file.
5493         (want_early_inline_function_p): New function.
5494         (want_inline_small_function_p): New function.
5495         (want_inline_self_recursive_call_p): New function.
5496         (cgraph_edge_badness): Rename to ...
5497         (edge_badness) ... this one; fix linebreaks.
5498         (update_edge_key): Update call of edge_baddness; add
5499         detailed dump about queue updates.
5500         (update_caller_keys): Use can_inline_edge_p and
5501         want_inline_small_function_p.
5502         (cgraph_decide_recursive_inlining): Rename to...
5503         (recursive_inlining): Use can_inline_edge_p and
5504         want_inline_self_recursive_call_p; simplify and remove no longer
5505         valid FIXME.
5506         (cgraph_set_inline_failed): Remove.
5507         (add_new_edges_to_heap): Use can_inline_edge_p and
5508         want_inline_small_function_p.
5509         (cgraph_decide_inlining_of_small_functions): Rename to ...
5510         (inline_small_functions): ... this one; cleanup; use
5511         can/want predicates; cleanup debug ouput; work edges till fibheap
5512         is exhausted and do not stop once unit growth is reached; remove
5513         later loop processing remaining edges.
5514         (cgraph_flatten): Rename to ...
5515         (flatten_function): ... this one; use can_inline_edge_p
5516         and can_early_inline_edge_p predicates.
5517         (cgraph_decide_inlining): Rename to ...
5518         (ipa_inline): ... this one; remove unreachable nodes before
5519         inlining functions called once; simplify the pass.
5520         (cgraph_perform_always_inlining): Rename to ...
5521         (inline_always_inline_functions): ... this one; use
5522         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5523         (cgraph_decide_inlining_incrementally): Rename to ...
5524         (early_inline_small_functions): ... this one; simplify
5525         using new predicates; cleanup; make dumps prettier.
5526         (cgraph_early_inlining): Rename to ...
5527         (early_inliner): newer inline regular functions into always-inlines;
5528         fix updating of call stmt summaries.
5529         (pass_early_inline): Update for new names.
5530         (inline_transform): Fix formating.
5531         (gate_cgraph_decide_inlining): Rename to ...
5532         (pass_ipa_inline): ... this one.
5533         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5534         * ipa-inline-analysis.c (dump_inline_summary): Update.
5535         (compute_inline_parameters): Do not compute disregard_inline_limits;
5536         look for mismatching arguments.
5537         (estimate_growth): Fix handlig of non-trivial self recursion.
5538         (inline_read_summary): Do not read info->disregard_inline_limits.
5539         (inline_write_summary): Do not write info->disregard_inline_limits.
5540         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5541         and move all checks into can_inline_edge_p predicate; re-enable code
5542         comparing optimization levels.
5543         (expand_call_inline): Do not test inline_forbidden_into_p.
5544         * Makefile.in (ipa-inline.o): Update arguments.
5545
5546 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5547
5548         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5549
5550 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5551
5552         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5553
5554 2011-04-17  Michael Matz  <matz@suse.de>
5555
5556         PR tree-optimization/48622
5557         PR lto/48645
5558         * ipa-inline-analysis.c (inline_read_summary): Read size/time
5559         in same order as they're written.
5560
5561 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5562
5563         * config/pa/predicates.md: Reorganize and simplify predicates.
5564         Eliminate duplicate code checks.
5565         (arith_operand): Rename to arith14_operand
5566         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5567         * config/pa/pa.md: Use renamed operands.
5568         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5569         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5570         arith11_operand, adddi3_operand, indexed_memory_operand,
5571         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5572         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5573         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5574         move_dest_operand, move_src_operand, prefetch_cc_operand,
5575         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5576         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5577         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5578         div_operand, int5_operand, movb_comparison_operator,
5579         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5580         arith_double_operand, ireg_operand, lhs_lshift_operand,
5581         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5582         integer_store_memory_operand): Likewise.
5583         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5584         (integer_store_memory_operand, read_only_operand,
5585         function_label_operand, borx_reg_operand,
5586         non_hard_reg_operand): Likewise.
5587         (eq_neq_comparison_operator): Delete unused operator.
5588         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5589         function_label_operand.
5590         (emit_move_sequence): Likewise.
5591
5592 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5593
5594         * config/i386/sse.md (sseunpackmode): New mode attribute.
5595         (ssepackmode): Ditto.
5596         (vec_pack_trunc_<mode>): Macroize expander from
5597         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5598         (vec_unpacks_lo_<mode>): Macroize expander from
5599         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5600         (vec_unpacks_hi_<mode>): Macroize expander from
5601         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5602         (vec_unpacku_lo_<mode>): Macroize expander from
5603         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5604         (vec_unpacku_hi_<mode>): Macroize expander from
5605         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5606         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5607         ix86_expand_sse4_unpack.
5608         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5609
5610 2011-04-16  Jan Hubicka  <jh@suse.cz>
5611
5612         * cgraphbuild.c: Include ipa-inline.h.
5613         (reset_inline_failed): Use initialize_inline_failed.
5614         * cgraph.c: Include ipa-inline.h.
5615         (cgraph_create_node_1): Do not initialize estimated_growth.
5616         (initialize_inline_failed): More to ipa-inline-analysis.c
5617         (dump_cgraph_node): Do not dump inline flags.
5618         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5619         and disregard_inline_limits flags.
5620         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5621         time, size, estimated_growth.
5622         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5623         Update.
5624         * cgraphunit.c (cgraph_decide_is_function_needed): Use
5625         DECL_DISREGARD_INLINE_LIMITS.
5626         (cgraph_analyze_function): Do not initialize
5627         node->local.disregard_inline_limits.
5628         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5629         inlinable, versionable and disregard_inline_limits.
5630         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5631         cgraph_check_inline_limits, cgraph_default_inline_p,
5632         cgraph_edge_badness, update_caller_keys, update_callee_keys,
5633         add_new_edges_to_heap): Update.
5634         (cgraph_decide_inlining_of_small_function): Update; set
5635         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5636         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5637         cgraph_decide_inlining_incrementally): Update.
5638         * ipa-inline.h (inline_summary): Add inlinable, versionable,
5639         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5640         time, size and estimated_growth parameters.
5641         (estimate_edge_growth): Update.
5642         (initialize_inline_failed): Declare.
5643         * ipa-split.c: Include ipa-inline.h
5644         (execute_split_functions): Update.
5645         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5646         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5647         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5648         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5649         estimated_growth to INT_MIN.
5650         (inline_node_duplication_hook): Likewise.
5651         (dump_inline_summary): Dump new fields.
5652         (compute_inline_parameters): Update.
5653         (estimate_edge_time, estimate_time_after_inlining,
5654         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5655         inline_write_summary):
5656         (initialize_inline_failed): Move here from cgraph.c.
5657         * tree-sra.c: Include ipa-inline.h.
5658         (ipa_sra_preliminary_function_checks): Update.
5659         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5660         ipa-inline.h.
5661
5662 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5663
5664         * config/i386/sse.md (V16): New mode iterator.
5665         (VI1, VI8): Ditto.
5666         (AVXMODEQI, AVXMODEDI): Remove.
5667         (sse2, sse3): New mode attribute.
5668         (mov<mode>): Use V16 mode iterator.
5669         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5670         (push<mode>1): Use V16 mode iterator.
5671         (movmisalign<mode>): Ditto.
5672         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5673         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5674         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5675         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5676         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5677         avx_movdqu<avxmodesuffix>.
5678         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5679         *avx_movdqu<avxmodesuffix>.
5680         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5681         avx_lddqu<avxmodesuffix>.
5682         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5683         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5684         avx_movnt<AVXMODEDI:mode>.
5685         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5686         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5687
5688 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5689
5690         PR target/48629
5691         * haifa-sched.c (prune_ready_list, schedule_block): Use
5692         sched_pressure_p rather than flag_sched_pressure.
5693
5694 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5695
5696         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5697         cgraph_get_node instead of cgraph_get_create_node.
5698
5699 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
5700
5701         * cfgexpand.c (expand_debug_expr): Use
5702         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5703
5704 2011-04-15  Michael Matz  <matz@suse.de>
5705
5706         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5707         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5708         * function.c (gimplify_parameters): Ditto.
5709         * gimplify.c (gimplify_vla_decl): Ditto.
5710
5711         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5712         (gimple_call_set_alloca_for_var): New inline function.
5713         (gimple_call_alloca_for_var_p): Ditto.
5714         * gimple.c (gimple_build_call_from_tree): Remember
5715         CALL_ALLOCA_FOR_VAR_P state.
5716         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5717
5718         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5719         calls if they were for VLA objects.
5720
5721 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5722
5723         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5724         of ADR_EXPRs.
5725
5726 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5727
5728         PR middle-end/48601
5729         * tree-emutls.c (lower_emutls_function_body): Call
5730         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
5731         result is non-NULL.
5732
5733 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5734
5735         * c-decl.c (detect_field_duplicates): Call
5736         objc_detect_field_duplicates instead of objc_get_interface_ivars.
5737
5738 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
5739
5740         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5741         * gimple.c (gimple_asm_clobbers_memory_p): Define.
5742         * ipa-pure-const.c (check_stmt): Call it.
5743         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5744
5745 2011-04-15  Richard Guenther  <rguenther@suse.de>
5746
5747         PR tree-optimization/48290
5748         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5749         Properly decide inhibiting propagation based on the valueized
5750         operand.  Do loop-closed SSA form preserving here ...
5751         (init_copy_prop): ... not here.
5752
5753 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5754
5755         PR target/48612
5756         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5757         (*ieee_smax<mode>3): Likewise.
5758
5759 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5760
5761         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5762         Replace match_operand with match_dup for the third operand in
5763         these expanders.
5764
5765 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5766
5767         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5768         to track processing of conditionals.  Update all callers.
5769         (try_combine, simplify_if_then_else): Update.
5770
5771 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5772
5773         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5774         -fsched-pressure.
5775
5776 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
5777
5778         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5779         instead of match_operand for operand 3.
5780
5781 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
5782
5783         * recog.h (insn_operand_data): Add an "allows_mem" field.
5784         * genoutput.c (output_operand_data): Initialize it.
5785         * optabs.c (maybe_legitimize_operand_same_code): New function.
5786         (maybe_legitimize_operand): Use it when matching the original
5787         op->value.
5788
5789 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5790
5791         * gimplify.c: Fix issues in comments throughout.
5792         (voidify_wrapper_expr): Fix long line.
5793         (build_stack_save_restore): Likewise.
5794         (gimplify_loop_expr): Likewise.
5795         (gimplify_compound_lval): Likewise.
5796         (gimplify_init_ctor_eval): Likewise.
5797         (gimplify_modify_expr_rhs): Likewise.
5798         (omp_notice_threadprivate_variable): Likewise.
5799
5800 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5801
5802         * cfgexpand.c (expand_call_stmt): Convert the function type to the
5803         original one if this is not a builtin function.
5804
5805 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
5806
5807         PR target/48605
5808         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5809         offset it as needed based on top 2 bits in operands[3], change
5810         MEM mode to SFmode and mask those 2 bits away from operands[3].
5811
5812 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5813
5814         * c-parser.c (c_parser_objc_protocol_definition): Updated for
5815         change from objc_declare_protocols() to objc_declare_protocol().
5816
5817 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
5818
5819         * config/i386/sse.md (sse4_1): New mode attribute.
5820         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5821         avx_blend<ssemodesuffix><avxmodesuffix> and
5822         sse4_1_blend<ssemodesuffix> using VF mode iterator.
5823         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5824         avx_blendv<ssemodesuffix><avxmodesuffix> and
5825         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5826         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5827         avx_dp<ssemodesuffix><avxmodesuffix> and
5828         sse4_1_dp<ssemodesuffix> using VF mode iterator.
5829         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5830         (sse4_1_packusdw): Merge with *avx_packusdw.
5831         (sse4_1_pblendvb): Merge with *avx_pblendvb.
5832         (sse4_1_pblendw): Merge with *avx_pblendw.
5833         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5834         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5835         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5836         VF mode iterator.
5837         (sse4_1_round<ssescalarmodesuffix>): Merge with
5838         *avx_round<ssescalarmodesuffix>.
5839         (aesenc): Merge with *avx_aesenc.
5840         (aesenclast): Merge with *avx_aesenclast.
5841         (aesdec): Merge with *avx_aesdec.
5842         (aesdeclast): Merge with *avx_aesdeclast.
5843         (pclmulqdq): Merge with *pclmulqdq.
5844         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5845         New predicate.
5846         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5847
5848 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
5849
5850         PR middle-end/48608
5851         * cfgexpand.c (get_decl_align_unit): Renamed to ...
5852         (align_local_variable): This.  Update DECL_ALIGN.
5853         (add_stack_var): Updated.
5854         (expand_one_stack_var): Likewise.
5855
5856 2011-04-14  Richard Guenther  <rguenther@suse.de>
5857
5858         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5859         Remove.
5860         (dse_initialize_block_local_data, dse_leave_block,
5861         record_voperand_set, get_stmt_uid): Likewise.
5862         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5863         (dse_optimize_stmt): Remove voperand set handling code.
5864         Simplify and improve to handle any kind of killing stmt.
5865         (dse_record_phi): Remove.
5866         (dse_enter_block): Simplify.
5867         (tree_ssa_dse): Likewise.
5868         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5869
5870 2011-04-14  Jan Hubicka  <jh@suse.cz>
5871
5872         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5873         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5874         (cgraph_local_info): Remove inline_summary.
5875         * ipa-cp.c: Include ipa-inline.h.
5876         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5877         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5878         accesor.
5879         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5880         (input_overwrite_node): Do not set inline summary.
5881         (input_node): Do not stream inline summary.
5882         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5883         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5884         growth; we do not have inline parameters computed for that anyway.
5885         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5886         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5887         (inline_summary_t): New type and VECtor.
5888         (debug_inline_summary, dump_inline_summaries): Declare.
5889         (inline_summary): Use VOCtor.
5890         (estimate_edge_growth): Kill hack computing call stmt size directly.
5891         * lto-section-in.c (lto_section_name): Add inline section.
5892         * ipa-inline-analysis.c: Include lto-streamer.h
5893         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5894         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5895         (inline_summary_vec): Define.
5896         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5897         dump_inline_summaries): New functions.
5898         (estimate_function_body_sizes): Properly compute size/time of outgoing
5899         calls.
5900         (compute_inline_parameters): Alloc inline_summary; do not compute
5901         size/time of incomming calls.
5902         (estimate_edge_time): Avoid missing time summary hack.
5903         (inline_read_summary): Read inline summary info.
5904         (inline_write_summary): Write inline summary info.
5905         (inline_free_summary): Free all hooks and inline summary vector.
5906         * lto-streamer.h: Add LTO_section_inline_summary section.
5907         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5908         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5909
5910 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5911
5912         * tree-vectorizer.h (vect_strided_store_supported): Add a
5913         HOST_WIDE_INT argument.
5914         (vect_strided_load_supported): Likewise.
5915         (vect_permute_store_chain): Return void.
5916         (vect_transform_strided_load): Likewise.
5917         (vect_permute_load_chain): Delete.
5918         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5919         count argument.  Check that the count is a power of two.
5920         (vect_strided_load_supported): Likewise.
5921         (vect_permute_store_chain): Return void.  Update after above changes.
5922         Assert that the access is supported.
5923         (vect_permute_load_chain): Likewise.
5924         (vect_transform_strided_load): Return void.
5925         * tree-vect-stmts.c (vectorizable_store): Update calls after
5926         above interface changes.
5927         (vectorizable_load): Likewise.
5928         (vect_analyze_stmt): Don't check for strided powers of two here.
5929
5930 2011-04-14  Richard Guenther  <rguenther@suse.de>
5931
5932         PR tree-optimization/48590
5933         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5934         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5935         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5936         BUILT_IN_STACK_SAVE.
5937         * tree-ssa-dce.c (propagate_necessity): Handle
5938         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5939
5940 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5941
5942         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5943         objc_declare_class.
5944
5945 2011-04-14  Richard Guenther  <rguenther@suse.de>
5946
5947         * tree.h (get_object_alignment_1): Declare.
5948         * builtins.c (get_object_alignment_1): Split out worker from ...
5949         (get_object_alignment): ... here.
5950         * fold-const.c (get_pointer_modulus_and_residue): Use
5951         get_object_alignment_1.
5952
5953 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5954
5955         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5956         type parameter.
5957         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5958         parameter.  Generalise code to handle arrays as well as vectors.
5959         (vect_setup_realignment): Update accordingly.
5960         * tree-vect-stmts.c (vectorizable_store): Likewise.
5961         (vectorizable_load): Likewise.
5962
5963 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5964
5965         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5966         within the per-copy loop.
5967
5968 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5969
5970         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5971         in the dump file.
5972
5973 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5974
5975         * doc/options.texi (Negative): Explicitly mention that the
5976         Negative chain must be circular.
5977
5978 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
5979
5980         * function.h (block_chainon): Declare.
5981         * function.c (block_chainon): Define.
5982
5983 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
5984             Eric Weddington  <eric.weddington@atmel.com>
5985             Georg-Johann Lay  <avr@gjlay.de>
5986
5987         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
5988         New Includes
5989         (avr_init_builtins, avr_expand_builtin,
5990         avr_expand_delay_cycles, avr_expand_unop_builtin,
5991         avr_expand_binop_builtin ): New functions.
5992         (avr_builtin_id): New enum
5993         (struct avr_builtin_description): New struct
5994         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5995         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5996
5997         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5998         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
5999         UNSPECV_DELAY_CYCLES): new enumeration values
6000         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6001         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6002         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6003         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6004         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6005         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6006         "fmulsu"): New insns
6007
6008         * config/avr/avr-c.c: fix line endings
6009         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6010         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6011         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6012         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6013         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6014
6015         * doc/extend.texi (AVR Built-in Functions): New node
6016         (Target Builtins): Add documentation of AVR
6017         built-in functions.
6018
6019 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6020
6021         PR target/44643
6022         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6023         alone. Error if non-const data has attribute progmem.
6024
6025 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6026
6027         * tree.h (struct tree_constructor): Include tree_typed instead of
6028         tree_common.
6029         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6030         TS_TYPED instead of TS_COMMON.
6031
6032 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6033
6034         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6035         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6036         (sse2_psadbw): Merge with *avx_psadbw.
6037         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6038         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6039         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6040         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6041         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6042         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6043         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6044         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6045         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6046         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6047         (ssse3_palignrti): Merge with *avx_palignrti.
6048
6049 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6050
6051         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6052         * tree-ssanames.c (fini_ssanames): VEC_free it.
6053         (make_ssa_name_fn): Update for VECness of free_ssanames.
6054         (release_ssa_name, release_dead_ssa_names): Likewise.
6055         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6056         tree_common.
6057         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6058         TS_TYPED instead of TS_COMMON.
6059
6060 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6061
6062         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6063         statistics_counter_event.
6064         * tree-ssa-copyrename.c (stats): Define.
6065         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6066         statistics_counter_event.
6067         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6068         (bswap_stats, widen_mul_stats): Define.
6069         (insert_reciprocals): Increment rdivs_inserted.
6070         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6071         rfuncs_inserted.  Add calls to statistics_counter_event.
6072         (execute_cse_sincos_1): Increment inserted.
6073         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6074         statistics_counter_event.
6075         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6076         of bswap_stats.  Add calls to statistics_counter_event.
6077         (convert_mult_to_widen): Increment widen_mults_inserted.
6078         (convert_plusminus_to_widen): Increment maccs_inserted.
6079         (convert_mult_to_fma): Increment fmas_inserted.
6080         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6081         calls to statistics_counter_event.
6082
6083 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6084
6085         PR rtl-optimization/48455
6086         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6087         `temp_costs->mem_cost'.
6088
6089 2011-04-13  Jan Hubicka  <jh@suse.cz>
6090
6091         * ipa-inline.h: New file.
6092         * ipa-inline-analysis.c: New file. Broken out of ...
6093         * ipa-inline.c: ... this file; update toplevel comment;
6094         include ipa-inline.h
6095         (inline_summary): Move to ipa-inline.h
6096         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6097         ipa-inline-analysis.c.
6098         (cgraph_estimate_time_after_inlining): Rename to
6099         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6100         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6101         to estimate_edge_growth.
6102         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6103         rename to estimate_size_after_inlining.
6104         (cgraph_mark_inline_edge): Update for new naming convention.
6105         (cgraph_check_inline_limits): Likewise.
6106         (cgraph_edge_badness): Likewise.
6107         (cgraph_decide_recursive_inlining): Likewise.
6108         (cgraph_decide_inlining_of_small_functions): Likewise.
6109         (cgraph_decide_inlining_incrementally): Likewise.
6110         (cgraph_estimate_growth): Rename to estimate_growth; move to
6111         ipa-inline-analysis.c.
6112         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6113         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6114         (compute_inline_parameters): Likewise.
6115         (compute_inline_parameters_for_current): Likewise.
6116         (pass_inline_parameters): Likewise.
6117         (inline_indirect_intraprocedural_analysis): Likewise.
6118         (analyze_function): Rename to inline_analyze_function; likewise.
6119         (add_new_function): Move to ipa-inline-analysis.c.
6120         (inline_generate_summary): Likewise.
6121         (inline_read_summary): Likewise.
6122         (inline_write_summary): Likewise.
6123         * Makefile.in (ipa-inline-analysis.c): New file.
6124
6125 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6126
6127         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6128         * configure: Regenerate.
6129
6130 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6131
6132         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6133         instead of tree_common.
6134         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6135         Likewise.
6136         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6137         TS_TYPED rather than TS_COMMON.
6138         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6139
6140 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6141
6142         PR target/45263
6143         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6144         r20 around calls of __tablejump_elpm__
6145
6146 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6147
6148         PR middle-end/48591
6149         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6150         NULL.
6151         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6152
6153 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6154
6155         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6156         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6157         (cfi_vec): New typedef.
6158         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6159         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6160         (cie_cfi_vec): New static variable.
6161         (cie_cfi_head): Delete.
6162         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6163         declaration changed. Use vector rather than list operations.
6164         (new_cfi): Don't initialize the dw_cfi_next field.
6165         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6166         rather than list operations.
6167         (lookup_cfa): Use vector rather than list operations.
6168         (output_cfis): New argument upto. Accept a cfi_vec rather than
6169         a dw_cfi_ref list head as argument. All callers changed.
6170         Iterate over the vector using upto as a maximum index.
6171         (output_all_cfis): New static function.
6172         (output_fde): Use vector rather than list operations. Use the
6173         new upto argument for output_cfis rather than manipulating a
6174         list.
6175         (dwarf2out_begin_prologue): Change initializations to match
6176         new struct members.
6177         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6178         from the vector length rather than searching for the end of a list.
6179         Use output_all_cfis.
6180         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6181
6182 2011-04-13  Nick Clifton  <nickc@redhat.com>
6183
6184         * config/rx/rx.md (movmemsi): Do not use this pattern when
6185         volatile pointers are involved.
6186
6187 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6188
6189         * config/i386/sse.md (pinsrbits): Remove.
6190         (sse2_packsswb): Merge with *avx_packsswb.
6191         (sse2_packssdw): Merge with *avx_packssdw.
6192         (sse2_packuswb): Merge with *avx_packuswb.
6193         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6194         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6195         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6196         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6197         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6198         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6199         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6200         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6201         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6202         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6203         (sse2_loadld): Merge with *avx_loadld.
6204         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6205         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6206         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6207         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6208         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6209
6210 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6211
6212         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6213         calling TREE_CHAIN.
6214         * print-tree.c (print_node): Likewise.
6215         * tree-inline.c (copy_tree_r): Likewise.
6216         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6217         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6218         instead of TS_COMMON.
6219         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6220         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6221         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6222         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6223         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6224         ...and these...
6225         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6226         * tree.h: ...here.
6227         (TREE_CHAIN): Check for a TS_COMMON structure.
6228         (TREE_TYPE): Check for a TS_TYPED structure.
6229
6230 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6231
6232         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6233         cgraph_get_create_node instead of cgraph_node.
6234
6235 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6236
6237         * c-parser.c (c_parser_initelt): Updated call to
6238         objc_build_message_expr.
6239         (c_parser_postfix_expression): Likewise.
6240
6241 2011-04-12  Kai Tietz  <ktietz@redhat.com>
6242
6243         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6244         MASK_MS_BITFIELD_LAYOUT bit.
6245
6246 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6247
6248         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6249         assert it is always true.
6250         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6251         moves.
6252
6253 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6254
6255         * c-parser.c (c_lex_one_token): Rewritten conditional used when
6256         compiling Objective-C to be more efficient.
6257
6258 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
6259
6260         * opts-common.c (decode_cmdline_options_to_array): Remove variable
6261         argv_copied.
6262
6263 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6264
6265         * recog.h, genoutput.c, optabs.c: Revert last patch.
6266
6267 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6268
6269         PR target/48090
6270         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6271
6272 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6273
6274         * recog.h (insn_operand_data): Add an "allows_mem" field.
6275         * genoutput.c (output_operand_data): Initialize it.
6276         * optabs.c (maybe_legitimize_operand_same_code): New function.
6277         (maybe_legitimize_operand): Use it when matching the original
6278         op->value.
6279
6280 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6281
6282         * genpreds.c (process_define_predicate): Move most processing
6283         to gensupport.c.  Continue to validate the expression.
6284         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6285         (process_define_predicate): Move processing to gensupport.c.
6286         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6287         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6288         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
6289         argument.
6290         (valid_predicate_name_p): New function, split out from old
6291         genpreds.c:process_define_predicate.
6292         (process_define_predicate): New function, combining code from
6293         old genpreds.c and genrecog.c functions.
6294         (process_rtx): Call it for DEFINE_PREDICATE and
6295         DEFINE_SPECIAL_PREDICATE.
6296
6297 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6298
6299         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6300         size of a '%A' memory reference.
6301         (T_DREG, T_QREG): New neon_builtin_type_bits.
6302         (arm_init_neon_builtins): Assert that the load and store operands
6303         are neon_struct_operands.
6304         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6305         (NEON_ARG_MEMORY): New builtin_arg.
6306         (neon_dereference_pointer): New function.
6307         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6308         Handle NEON_ARG_MEMORY.
6309         (arm_expand_neon_builtin): Update after above interface changes.
6310         Use NEON_ARG_MEMORY for loads and stores.
6311         * config/arm/predicates.md (neon_struct_operand): New predicate.
6312         * config/arm/iterators.md (V_two_elem): Tweak formatting.
6313         (V_three_elem): Use BLKmode for accesses that have no associated mode.
6314         (V_four_elem): Tweak formatting.
6315         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6316         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6317         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6318         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6319         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6320         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6321         (neon_vst4<mode>): Replace pointer operand with a memory operand.
6322         Use %A in the output template.
6323         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6324         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6325         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6326         the width of the memory access.  Remove post-increment.
6327         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6328
6329 2011-04-12  Nick Clifton  <nickc@redhat.com>
6330
6331         * config/v850/v850.c (expand_prologue): Do not use the CALLT
6332         instruction for interrupt handlers if the target is the basic V850
6333         architecture.
6334         (expand_epilogue): Likewise.
6335
6336 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6337
6338         PR rtl-optimization/48549
6339         * combine.c (propagate_for_debug): Also stop after BB_END of
6340         this_basic_block.  Process LAST and just stop processing after it.
6341         (combine_instructions): If last_combined_insn has been deleted,
6342         set last_combined_insn to its PREV_INSN.
6343
6344 2011-04-12  Richard Guenther  <rguenther@suse.de>
6345
6346         PR tree-optimization/46076
6347         * gimple.h (struct gimple_statement_call): Add fntype field.
6348         (gimple_call_fntype): Adjust.
6349         (gimple_call_set_fntype): New function.
6350         * gimple.c (gimple_build_call_1): Set the call function type.
6351         * gimplify.c (gimplify_call_expr): Preserve the function
6352         type the frontend used for the call.
6353         (gimplify_modify_expr): Likewise.
6354         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6355         function type.
6356         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6357         function type.
6358         * tree-ssa.c (useless_type_conversion_p): Function pointer
6359         conversions are useless.
6360
6361 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6362
6363         * cgraph.h (cgraph_node): Remove function declaration.
6364         (cgraph_create_node): Declare.
6365         (cgraph_get_create_node): Likewise.
6366         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6367         Updated all callers.
6368         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6369         the decl does not already exist.  Call cgraph_get_create_node instead
6370         of cgraph_node.
6371         (cgraph_get_create_node): New function.
6372         (cgraph_same_body_alias): Update comment.
6373         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6374         assert it does not return NULL.
6375         (cgraph_update_edges_for_call_stmt): Likewise.
6376         (cgraph_clone_edge): Likewise.
6377         (cgraph_create_virtual_clone): Likewise.
6378         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6379         instead of cgraph_node.
6380         (cgraph_add_new_function): Call cgraph_create_node or
6381         cgraph_get_create_node instead of cgraph_node.
6382         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6383         instead of cgraph_node.
6384         (record_eh_tables): Likewise.
6385         (mark_address): Likewise.
6386         (mark_load): Likewise.
6387         (build_cgraph_edges): Call cgraph_get_create_node instead
6388         of cgraph_node.
6389         (rebuild_cgraph_edges): Likewise.
6390         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6391         instead of cgraph_node.
6392         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6393         cgraph_node.
6394         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6395         cgraph_create_node instead of cgraph_node.
6396         * c-decl.c (finish_function): Call cgraph_get_create_node instead
6397         of cgraph_node.
6398         * lto-cgraph.c (input_node): Likewise.
6399         * lto-streamer-in.c (input_function): Likewise.
6400         * varasm.c (mark_decl_referenced): Likewise.
6401         (assemble_alias): Likewise.
6402
6403 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6404
6405         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6406         instead of cgraph_node and assert it does not return NULL.
6407         * lto-streamer-in.c (lto_read_body): Likewise.
6408         * omp-low.c (new_omp_context): Likewise.
6409         (create_task_copyfn): Likewise.
6410         * tree-emutls.c (lower_emutls_function_body): Likewise.
6411         * matrix-reorg.c (transform_allocation_sites): Likewise.
6412
6413 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6414
6415         PR c/48552
6416         * c-typeck.c (build_asm_expr): Error out on attempts to use
6417         void type outputs or inputs for constraints that allow reg or
6418         don't allow memory.
6419
6420 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
6421             Richard Earnshaw  <rearnsha@arm.com>
6422
6423         PR target/48250
6424         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6425         to use sign-magnitude offsets. Reject unsupported unaligned
6426         cases. Add detailed description in comments.
6427         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6428         condition from TARGET_32BIT to TARGET_ARM.
6429
6430 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
6431
6432         * tree.h (struct typed_tree): New.
6433         (struct tree_common): Include it instead of tree_base.
6434         (TREE_TYPE): Update for new location of type field.
6435         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6436         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6437         (union tree_node): Add typed field.
6438         * treestruct.def (TS_TYPED): New.
6439         * lto-streamer.c (check_handled_ts_structures): Handle it.
6440         * tree.c (MARK_TS_TYPED): New macro.
6441         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6442
6443 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6444
6445         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6446         (force_nonfallthru): Do not alter the loop nest if no basic block
6447         was created.
6448
6449 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6450
6451         * config/i386/sse.md (VI): New mode iterator.
6452         (SSEMODEI): Remove.
6453         (AVX256MODEI): Ditto.
6454         (AVXMODEF4P): Ditto.
6455         (avxvecpsmode): Ditto.
6456         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
6457         (sse2_andnot<mode>3): New expander.
6458         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6459         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
6460         (<any_logic:code><mode>3): Use VI mode iterator.
6461         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6462         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
6463         (*andnottf3): Handle AVX three-operand constraints.
6464         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6465
6466 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6467             Robert Millan  <rmh@gnu.org>
6468
6469         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6470         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6471         GNU_USER_DYNAMIC_LINKER64): Define.
6472         (REG_NAME): Don't undefine.
6473         (MD_UNWIND_SUPPORT): Undefine.
6474         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6475         (REG_NAME): Don't undefine.
6476         (MD_UNWIND_SUPPORT): Undefine.
6477         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6478
6479 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6480
6481         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6482         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6483
6484 2011-04-11  Xinliang David Li  <davidxl@google.com>
6485
6486         * value-profile.c (check_ic_target): New function.
6487         (gimple_ic_transform): Sanity check indirect call target.
6488         * gimple-low.c (gimple_check_call_args): Interface change.
6489         (gimple_check_call_matching_types): New function.
6490         * tree-inline.c (tree_can_inline_p): Call new function.
6491
6492 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
6493
6494         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6495         tree-pretty-print.h & realmpfr.h.
6496
6497 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
6498
6499         PR middle-end/48464
6500         * ira.c (setup_pressure_classes): Fix typo in loop condition.
6501         (setup_allocno_and_important_classes): Ditto.
6502
6503 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6504
6505         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6506         GNU_USER_DYNAMIC_LINKER.
6507         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6508         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6509         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6510         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6511         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6512         GNU_USER_TARGET_OS_CPP_BUILTINS.
6513         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6514         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6515         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6516         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6517         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6518         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6519         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6520         GNU_USER_TARGET_OS_CPP_BUILTINS.
6521         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6522         GNU_USER_DYNAMIC_LINKER.
6523         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6524         GNU_USER_TARGET_OS_CPP_BUILTINS.
6525         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6526         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6527         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6528         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6529         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6530         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6531         GNU_USER_DYNAMIC_LINKER64): Remove.
6532         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6533         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6534         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6535         GNU_USER_DYNAMIC_LINKER.
6536         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6537         GNU_USER_TARGET_OS_CPP_BUILTINS.
6538         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6539         GNU_USER_TARGET_OS_CPP_BUILTINS.
6540         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6541         to GNU_USER_TARGET_OS_CPP_BUILTINS.
6542         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6543         GNU_USER_TARGET_OS_CPP_BUILTINS.
6544         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6545         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6546         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6547         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6548         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6549         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6550         GNU_USER_DYNAMIC_LINKER.
6551         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6552         GNU_USER_TARGET_OS_CPP_BUILTINS.
6553         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6554         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6555         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6556         GNU_USER_DYNAMIC_LINKER.
6557         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6558         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6559         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6560         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6561         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6562         GNU_USER_DYNAMIC_LINKER.
6563         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6564         GNU_USER_DYNAMIC_LINKERN32.
6565         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6566         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
6567         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
6568         GNU_USER_DYNAMIC_LINKER32.
6569         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6570         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6571         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6572         GNU_USER_DYNAMIC_LINKER.
6573         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6574         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6575         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6576         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6577         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6578         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6579         GNU_USER_DYNAMIC_LINKER32.
6580         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6581         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6582         GNU_USER_DYNAMIC_LINKER.
6583         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6584         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6585         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6586         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
6587         GNU_USER_DYNAMIC_LINKER64.
6588         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6589         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6590         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6591         GNU_USER_DYNAMIC_LINKER.
6592         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6593         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6594         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6595         GNU_USER_DYNAMIC_LINKER.
6596         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6597         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6598         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6599         GNU_USER_DYNAMIC_LINKER32.
6600         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6601         GNU_USER_DYNAMIC_LINKER64.
6602         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6603         GNU_USER_DYNAMIC_LINKER64.
6604         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6605         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6606         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6607         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6608         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6609
6610 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6611
6612         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
6613         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6614         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6615         GNU_USER_DYNAMIC_LINKER.
6616         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6617         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
6618         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6619         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6620         GNU_USER_DYNAMIC_LINKER64.
6621         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6622         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6623         GNU_USER_LINK_EMULATION.
6624         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6625         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6626         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6627         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6628         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6629         CPP_SPEC, CC1_SPEC): Remove.
6630         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6631         (GNU_USER_DYNAMIC_LINKER): Define.
6632         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6633         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6634         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6635         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6636         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6637         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6638         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6639         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6640         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6641         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6642         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6643         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6644         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6645         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6646         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6647         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6648         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6649         GNU_USER_DYNAMIC_LINKER.
6650         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6651         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6652         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6653         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6654         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6655         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6656         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6657         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6658         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6659         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6660
6661 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6662
6663         PR target/9601
6664         PR target/11772
6665         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6666         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6667         comment.
6668         (ix86_is_msabi_thiscall): Removed.
6669         (ix86_is_type_thiscall): Likewise.
6670         (ix86_get_callcvt): New function.
6671         (ix86_comp_type_attributes): Simplify check.
6672         (ix86_function_regparm): Use ix86_get_callcvt for calling
6673         convention attribute checks.
6674         (ix86_return_pops_args): Likewise.
6675         (ix86_static_chain): Likewise.
6676         (x86_this_parameter): Likewise.
6677         (x86_output_mi_thunk): Likewise.
6678         (ix86_function_type_abi): Optimize check for types without attributes.
6679         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6680         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6681         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6682         by flag-values.
6683         (IX86_BASE_CALLCVT): Helper macro.
6684         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6685         Use ix86_get_callcvt for calling convention attribute checks and avoid
6686         symbol-decoration for stdcall in TARGET_RTD case.
6687         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6688         Likewise.
6689         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6690         for declaration.
6691
6692 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6693
6694         * config/i386/sse.md (VI_128): New mode iterator.
6695         (VI12_128): Rename from SSEMODE12.
6696         (VI14_128): Rename from SSEMODE14.
6697         (VI124_128): New mode iterator.
6698         (VI24_128): Rename from SSEMODE248.
6699         (VI248_128): Rename from SSEMODE248.
6700         (SSEMODE124C8): Remove.
6701         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6702         (*sse2_<plusminus_insn><mode>3): Merge with
6703         *avx_<plusminus_insn><mode>3.
6704         (*mulv8hi3): Merge with *avx_mulv8hi3.
6705         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6706         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6707         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6708         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6709         (ashr<mode>3): Merge with *avx_ashr<mode>3.
6710         (lshr<mode>3): Merge with *avx_lshr<mode>3.
6711         (ashl<mode>3): Merge with *avx_ashl<mode>3.
6712         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6713         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6714         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6715         (*<smaxmin:code>v8hi3): Ditto.
6716         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6717         (*<smaxmin:code>v16qi3): Ditto.
6718         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6719         (*sse2_eq<mode>3): Ditto.
6720         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6721         (*sse2_gt<mode>3): Ditto.
6722         (vcondv2di): Split out of vcond<mode>.
6723         (vconduv2di): Split out of vcondu<mode>.
6724
6725 2011-04-11  Richard Guenther  <rguenther@suse.de>
6726
6727         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6728         before calling tree_low_cst.
6729
6730 2011-04-11  Richard Guenther  <rguenther@suse.de>
6731
6732         * stor-layout.c (layout_type): Compute all array index size operations
6733         in the original type.
6734         (initialize_sizetypes): Add comment.
6735         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6736
6737 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6738
6739         * common.opt (Tbss=, Tdata=, Ttext=): New options.
6740
6741 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6742
6743         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6744         of cgraph_node, handle NULL return value.
6745         (cgraph_global_info): Likewise.
6746         (cgraph_rtl_info): Likewise.
6747         * tree-inline.c (estimate_num_insns): Likewise.
6748         * gimplify.c (unshare_body): Likewise.
6749         (unvisit_body): Likewise.
6750         (gimplify_body): Likewise.
6751         * predict.c (optimize_function_for_size_p): Likewise.
6752         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6753         (call_may_clobber_ref_p_1): Likewise.
6754         * varasm.c (function_section_1): Likewise.
6755         (assemble_start_function): Likewise.
6756
6757 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6758
6759         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6760         of cgraph_node.
6761         * final.c (rest_of_clean_state): Likewise.
6762         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6763         * passes.c (pass_init_dump_file): Likewise.
6764         (execute_all_ipa_transforms): Likewise.
6765         (function_called_by_processed_nodes_p): Likewise.
6766         * predict.c (maybe_hot_frequency_p): Likewise.
6767         (probably_never_executed_bb_p): Likewise.
6768         (compute_function_frequency): Likewise.
6769         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6770         (unnest_nesting_tree_1): Likewise.
6771         (lower_nested_functions): Likewise.
6772         * tree-optimize.c (execute_fixup_cfg): Likewise.
6773         (tree_rest_of_compilation): Likewise.
6774         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6775         * tree-sra.c (ipa_early_sra): Likewise.
6776         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6777         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6778         * ipa.c (record_cdtor_fn): Likewise.
6779         * ipa-inline.c (cgraph_early_inlining): Likewise.
6780         (compute_inline_parameters_for_current): Likewise.
6781         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6782         * ipa-pure-const.c (local_pure_const): Likewise.
6783         * ipa-split.c (split_function): Likewise.
6784         (execute_split_functions): Likewise.
6785         * cgraphbuild.c (build_cgraph_edges): Likewise.
6786         (rebuild_cgraph_edges): Likewise.
6787         (cgraph_rebuild_references): Likewise.
6788         (remove_cgraph_callee_edges): Likewise.
6789         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6790         (verify_cgraph_node): Likewise.
6791         (cgraph_analyze_functions): Likewise.
6792         (cgraph_preserve_function_body_p): Likewise.
6793         (save_inline_function_body): Likewise.
6794         (save_inline_function_body): Likewise.
6795         * tree-inline.c (copy_bb): Likewise.
6796         (optimize_inline_calls): Likewise.
6797
6798 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6799
6800         PR tree-optimization/48195
6801         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6802         ipa_check_create_edge_args.
6803         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6804         ipa_check_create_edge_args.
6805         * ipa-inline.c (inline_generate_summary): Do not call
6806         ipa_check_create_node_params and ipa_check_create_edge_args.
6807         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6808         ipa_check_create_edge_args.
6809
6810 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
6811
6812         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6813         instead of loop.
6814         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6815         * function.c (record_hard_reg_sets): Likewise.
6816         * ira.c (compute_regs_asm_clobbered): Likewise.
6817         * sched-deps.c (sched_analyze_1): Likewise.
6818         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6819
6820 2011-04-09  Xinliang David Li  <davidxl@google.com>
6821
6822         PR tree-optimization/PR48484
6823         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6824         has_valid_pred lazily
6825
6826 2011-04-09  Duncan Sands  <baldrick@free.fr>
6827
6828         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6829
6830 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6831
6832         * combine.c (combine_validate_cost): Adjust comments.  Set registered
6833         cost of I0 to zero at the end, if any.
6834
6835 2011-04-08  Xinliang David Li  <davidxl@google.com>
6836
6837         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6838         to insane profile data.
6839
6840 2011-04-08  Xinliang David Li  <davidxl@google.com>
6841
6842         * ipa-cp.c (ipcp_update_profiling): Correct
6843          negative scale factor due to insane profile data.
6844
6845 2011-04-08  Xinliang David Li  <davidxl@google.com>
6846
6847         * final.c (dump_basic_block_info): New function.
6848         (final): Dump basic block.
6849         (final_scan_insn): Remove old dump.
6850
6851 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
6852
6853         PR target/47829
6854         * config.gcc (i386-*-freebsd): Disable unwind table generation for
6855         crtbegin/crtend.
6856
6857 2011-04-08  Michael Matz  <matz@suse.de>
6858
6859         PR middle-end/48389
6860         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6861         functions.
6862         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6863         * rtl.h (rebuild_jump_labels_chain): Declare.
6864         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6865         insns inserted on edges.
6866
6867 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6868
6869         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6870         * config/arm/arm-arches.def: New.
6871         * config/arm/arm-opts.h: New.
6872         * config/arm/genopt.sh: New.
6873         * config/arm/arm-tables.opt: New (generated).
6874         * config/arm/arm.c (arm_handle_option, arm_target_help,
6875         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6876         (all_architectures): Get most table contents from arm-arches.def.
6877         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6878         arm_selected_tune here.
6879         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6880         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6881         (march=, mcpu=, mtune=): Use Enum and Var.
6882         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6883         (arm.o): Update dependencies.
6884
6885 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6886
6887         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6888         of header_file.
6889         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6890         (write_typed_alloc_defns): Likewise.
6891         (main): Calls write_typed_alloc_defns with output_header.
6892
6893 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6894
6895         PR inline-asm/48435
6896         * ira-color.c (setup_profitable_hard_regs): Add comments.
6897         Don't take prohibited hard regs into account.
6898         (setup_conflict_profitable_regs): Rename to
6899         get_conflict_profitable_regs.
6900         (check_hard_reg_p): Check prohibited hard regs.
6901
6902 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6903
6904         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6905         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6906         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6907
6908 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6909
6910         PR target/48366
6911         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6912         move from floating point to shift amount register.
6913         (emit_move_sequence): Remove secondary reload support for floating
6914         point to shift amount amount register copies.
6915         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6916         amount register copies.
6917         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6918         register, return false if mode isn't a scalar integer mode.
6919         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6920
6921 2011-04-08  Richard Guenther  <rguenther@suse.de>
6922
6923         * gimple.c (gimple_call_flags): Remove kludge.
6924
6925 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6926
6927         * sel-sched.c (sel_region_init): Move call to
6928         sel_setup_region_sched_flags after setup_current_loop_nest.
6929
6930 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6931
6932         PR rtl-optimization/48272
6933         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6934         init_insn_reg_pressure_info.  Adjust a caller.
6935         * sched-int.h (init_insn_reg_pressure_info): Declare.
6936         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6937         when sched-pressure is enabled.
6938
6939 2011-04-08  Richard Guenther  <rguenther@suse.de>
6940
6941         * gimple.c (gimple_set_modified): Do not queue calls to
6942         MODIFIED_NORETURN_CALLS here ...
6943         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6944
6945 2011-04-08  Richard Guenther  <rguenther@suse.de>
6946
6947         PR lto/48467
6948         * toplev.c (lang_dependent_init): Do not open asm_out_file
6949         in WPA mode, nor perform debug machinery initialization.
6950         (finalize): Do not unlink asm_out_file in WPA mode.
6951
6952 2011-04-08  Richard Guenther  <rguenther@suse.de>
6953
6954         * gimple.h (gimple_call_fntype): New function.
6955         (gimple_call_return_type): Use it.
6956         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6957         * gimple-low.c (gimple_check_call_args): Likewise.
6958         * gimple.c (gimple_call_flags): Likewise.
6959         (gimple_call_arg_flags): Likewise.
6960         (gimple_call_return_flags): Likewise.
6961         * tree-cfg.c (verify_gimple_call): Likewise.
6962         (do_warn_unused_result): Likewise.
6963         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6964         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6965
6966 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6967
6968         PR rtl-optimization/48235
6969         * sel-sched.c (code_motion_process_successors): Recompute the last
6970         insn in basic block if control flow changed.
6971         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6972         Update condition for ilist_remove.
6973
6974 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6975
6976         PR rtl-optimization/48302
6977         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6978         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
6979         it to record added preheader blocks.
6980         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
6981         on to sel_add_loop_preheaders.
6982         (sel_region_init): Move call to setup_current_loop_nest after
6983         sel_init_bbs.
6984
6985 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6986
6987         PR target/48273
6988         * cfgloop.h (loop_has_exit_edges): New helper.
6989         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6990         non-clonable.
6991         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6992         that have no exit edges.
6993
6994 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6995
6996         PR rtl-optimization/48442
6997         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
6998         all callers.  Adjust assert.
6999
7000 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
7001
7002         PR tree-optimization/48377
7003         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7004         is_packed to true even for types with smaller TYPE_ALIGN than
7005         TYPE_SIZE.
7006
7007 2011-04-08  Richard Guenther  <rguenther@suse.de>
7008
7009         PR bootstrap/48513
7010         * doc/tm.texi: Re-generate.
7011
7012 2011-04-08  Wei Guozhi  <carrot@google.com>
7013
7014         PR target/47855
7015         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7016         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7017         * config/arm/arm.md (*push_multi): Change the length computation to
7018         call a C function.
7019
7020 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7021
7022         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7023         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7024         * doc/tm.texi: Regenerate.
7025         * system.h (ASM_OUTPUT_BSS): Poison.
7026         * varasm.c (asm_output_bss): Remove function.
7027         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7028
7029         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7030         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7031         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7032         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7033         Likewise.
7034         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7035         Likewise.
7036         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7037         Likewise.
7038         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7039
7040 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7041
7042         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7043         EnumValue lines.
7044
7045 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7046
7047         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7048         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7049         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7050         OPT_mcpu32.
7051         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7052         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7053         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7054         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7055         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7056         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7057         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7058         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7059         options.  Don't map other m68k options manually.  Don't handle
7060         old-style options as canonical.
7061         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7062         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7063
7064 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7065
7066         * basic-block.h (force_nonfallthru): Move to...
7067         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7068         (force_nonfallthru): ...here.
7069         * cfghooks.c (force_nonfallthru): New function.
7070         * cfgrtl.c (force_nonfallthru): Rename into...
7071         (rtl_force_nonfallthru): ...this.
7072         (commit_one_edge_insertion): Do not set AUX field.
7073         (commit_edge_insertions): Do not discover new basic blocks.
7074         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7075         (cfg_layout_rtl_cfg_hooks): Likewise.
7076         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7077         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7078         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7079
7080 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7081
7082         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7083         Remove macros.
7084
7085 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7086
7087         * config/i386/sse.md: Update copyright year.
7088         (avxcvtvecmode): Remove.
7089         (sse_movhlps): Merge with *avx_movhlps.
7090         (sse_movlhps): Merge with *avx_movlhps.
7091         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7092         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7093         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7094         (sse_loadhps): Merge with *avx_loadhps.
7095         (sse_storelps): Merge with *avx_storelps.
7096         (sse_loadlps): Merge with *avx_loadlps.
7097         (sse_movss): Merge with *avx_movss.
7098         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7099         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7100         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7101         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7102         (vec_set<mode>_0): Ditto.
7103         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7104         (sse4_1_insertps): Merge with *avx_insertps.
7105         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7106         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7107         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7108         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7109         (sse2_storehpd): Merge with *avx_storehpd.
7110         (sse2_loadhpd): Merge with *avx_loadhpd.
7111         (sse2_loadlpd): Merge with *avx_loadlpd.
7112         (sse2_movsd): Merge with *avx_movsd.
7113         (*vec_concatv2df): Merge with *vec_concatv2df.
7114
7115 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
7116
7117         PR debug/48343
7118         * combine.c (combine_instructions): Add last_combined_insn,
7119         update it if insn is after it, pass it to all try_combine calls.
7120         (try_combine): Add last_combined_insn parameter, pass it instead of
7121         i3 to propagate_for_debug.
7122
7123 2011-04-07  Nick Clifton  <nickc@redhat.com>
7124
7125         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7126         to handle MDR <-> data register transfers.
7127         (movhi_internal): Likewise.
7128
7129 2011-04-07  Alan Modra  <amodra@gmail.com>
7130
7131         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7132         previous stack info.
7133
7134 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7135
7136         PR target/43920
7137         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7138         flow_find_cross_jump.  Swap variables to implement backward replacement.
7139         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7140
7141 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7142
7143         PR target/43920
7144         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7145         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7146         and bb2.
7147         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7148         src1 or src2.  Redirect edges to the last basic block.  Update
7149         frequency and count on multiple basic blocks in case of fallthru.
7150
7151 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7152
7153         PR target/43920
7154         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7155         function.
7156         (old_insns_match_p): Change return type.  Replace return false/true
7157         with return dir_none/dir_both.  Use can_replace_by.
7158         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7159         direction from dir_p.  Register replacement direction in dir, last_dir
7160         and afterlast_dir.  Handle new return type of old_insns_match_p using
7161         merge_dir.  Return replacement direction in dir_p.
7162         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7163         return type of old_insns_match_p.
7164         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7165         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7166         flow_find_cross_jump.
7167         * basic-block.h (enum replace_direction): New type.
7168         (flow_find_cross_jump): Add parameter to declaration.
7169
7170 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7171
7172         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7173         (AVXMODEDCVTPS2DQ): Ditto.
7174         (VEC_FLOAT_MODE): Ditto.
7175         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7176         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7177         (<any_logic:code><mode>3): Use VF mode iterator.
7178         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7179         Use VF mode iterator.
7180         (copysign<mode>3): Use VF mode iterator.
7181         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7182         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7183         (*<any_logic:code><MODEF:mode>3): Merge with
7184         *avx_<any_logic:code><MODEF:mode>3.
7185         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7186         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7187         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7188         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7189         (sse2_cvtdq2ps): Use %v modifier.
7190         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7191         (avx_cvtps2dq<avxmodesuffix>): Remove.
7192         (sse2_cvtps2dq): Use %v modifier.
7193         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7194         (avx_cvttps2dq<avxmodesuffix>): Remove.
7195         (sse2_cvttps2dq): Use %v modifier.
7196         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7197         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7198         (sse2_cvtsd2siq): Fix insn template.
7199         (sse2_cvtsd2siq_2): Ditto.
7200         (sse2_cvttsd2siq): Ditto.
7201         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7202         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7203
7204 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7205
7206         * gcov-io.c: Use GCC Runtime Library Exception.
7207
7208 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7209
7210         PR debug/48466
7211         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7212         as base_reg whatever register reg has been eliminated to, instead
7213         of hardcoding STACK_POINTER_REGNUM.
7214
7215 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7216
7217         * doc/tm.texi.in: Document C target hooks as separate from general
7218         target hooks.
7219         * doc/tm.texi: Regenerate.
7220         * genhooks.c (struct hook_desc): Add docname field.
7221         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7222         docname field.
7223         (hook_array): Include c-target.def.
7224         (emit_documentation): Use docname field in output.
7225         (emit_init_macros): Take docname argument.  Only emit definitions
7226         for hooks matching docname.
7227         (main): Expect additional arguments in all cases.  Pass argument
7228         to emit_init_macros.
7229         * target.def: Move initial macro definitions and comments to
7230         target-hooks-macros.h.
7231         (gcc_targetcm): Move to c-family/c-target.def.
7232         * target.h (targetcm): Move declaration to c-family/c-target.h.
7233         * targhooks.c (default_handle_c_option): Move to
7234         c-family/c-opts.c.
7235         * targhooks.h (default_handle_c_option): Move declaration to
7236         c-family/c-common.h.
7237         * target-hooks-macros.h: New file.
7238         * config.gcc (target_has_targetcm): Define and use to add to
7239         c_target_objs and cxx_target_objs.
7240         * config/default-c.c: New file.
7241         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7242         of target.h and target-def.h.
7243         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7244         (darwin_objc_construct_string, darwin_cfstring_ref_p,
7245         darwin_check_cfstring_format_arg): Make static.
7246         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7247         TARGET_STRING_OBJECT_REF_TYPE_P,
7248         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7249         * config/darwin-protos.h (darwin_objc_construct_string,
7250         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7251         declare.
7252         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7253         TARGET_STRING_OBJECT_REF_TYPE_P,
7254         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7255         * config/t-darwin (darwin-c.o): Update dependencies.
7256         * system.h (TARGET_HAS_TARGETCM): Poison.
7257         * Makefile.in (TARGET_H): Update.
7258         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7259         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7260         (default-c.o): New target.
7261         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7262         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7263         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
7264         c-target.def.
7265         (build/genhooks.o): Update dependencies.
7266
7267 2011-04-06  Richard Guenther  <rguenther@suse.de>
7268
7269         * ipa-inline.c (enum inlining_mode): Remove.
7270         (cgraph_flatten): Use some other token.
7271         (cgraph_edge_early_inlinable_p): New function, split out from ...
7272         (cgraph_perform_always_inlining): New function, split out from ...
7273         (cgraph_decide_inlining_incrementally): ... here.
7274         (cgraph_mark_inline_edge): Adjust.
7275         (cgraph_early_inlining): Re-structure.
7276         (pass_early_inline): Require SSA form.
7277
7278 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
7279             Julian Brown  <julian@codesourcery.com>
7280             Mark Shinwell  <shinwell@codesourcery.com>
7281
7282         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7283         LO_REGS only for Thumb-1.
7284         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7285         be used in short instructions when optimising for size on Thumb-2.
7286
7287 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7288
7289         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7290         associated with user returns to be preserved.
7291
7292 2011-04-06  Tristan Gingold  <gingold@adacore.com>
7293
7294         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7295         symbol_queue_size, DBXOUT_DECR_NESTING,
7296         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7297         if XCOFF_DEBUGGING_INFO.
7298
7299 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         * config/i386/i386.md (attribute isa): New.
7302         (attribute enabled): New.
7303         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7304         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7305         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7306         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7307         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7308         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7309         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7310         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7311
7312         * config/i386/sse.md (VF): New mode iterator.
7313         (VF1): Ditto.
7314         (VF2): Ditto.
7315         (VF_128): Ditto.
7316         (SSEMODEF4): Remove.
7317         (attribute sse): Handle V8SF and V4DF modes.
7318         (<absneg:code><mode>2): Use VF mode iterator.
7319         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
7320         mode iterator.
7321         (<plusminus_insn><mode>3): Use VF mode iterator.
7322         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7323         Use VF mode iterator.
7324         (<sse>_vm<plusminus_insn><mode>3): Merge with
7325         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
7326         (mul<mode>3): Use VF mode iterator.
7327         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
7328         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
7329         mode iterator.
7330         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7331         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7332         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
7333         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
7334         mode iterator.
7335         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7336         Use VF1 mode iterator.
7337         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7338         (sqrt<VF2:mode>2): New expander.
7339         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7340         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7341         and sqrtv2df2.  Use VF mode iterator.
7342         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
7343         mode iterator.
7344         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7345         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7346         Use VF1 mode iterator.
7347         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7348         (<smaxmin:code><mode>3): Use VF mode iterator.
7349         (*<smaxmin:code><mode>3_finite): Merge with
7350         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
7351         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7352         (<sse>_vm<smaxmin:code><mode>2): Merge with
7353         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
7354         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
7355         mode iterator.
7356         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
7357         mode iterator.
7358         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7359         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7360         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7361         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7362         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
7363         VF mode iterator.
7364         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7365         Use VF_128 mode iterator.
7366         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
7367         mode iterator.
7368         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
7369         VF_128 mode iterator.
7370         (vcond<mode>): Use VF mode iterator.
7371         * config/i386/predicates.md (sse_comparison_operator): Merge with
7372         avx_comparison_float_operator.  Do not declare as special_predicate.
7373         * config/i386/i386.c (struct builtin_description): Update for renamed
7374         compare patterns.
7375         (ix86_expand_args_builtin): Ditto.
7376         (ix86_expand_sse_compare_mask): Ditto.
7377
7378 2011-04-06  Richard Guenther  <rguenther@suse.de>
7379
7380         * tree-inline.c (estimate_num_insns): For calls simply account
7381         for all passed arguments and a used return value.
7382
7383 2011-04-06  Richard Guenther  <rguenther@suse.de>
7384
7385         PR tree-optimization/47663
7386         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7387         call_stmt_time fields.
7388         (cgraph_edge_inlinable_p): Declare.
7389         (cgraph_edge_recursive_p): New inline function.
7390         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7391         (cgraph_clone_edge): Copy it.
7392         * ipa-inline.c (cgraph_estimate_edge_time): New function.
7393         Account for call stmt time.
7394         (cgraph_estimate_time_after_inlining): Take edge argument.
7395         (cgraph_estimate_edge_growth): Account call stmt size.
7396         (cgraph_estimate_size_after_inlining): Take edge argument.
7397         (cgraph_mark_inline_edge): Adjust.
7398         (cgraph_check_inline_limits): Likewise.
7399         (cgraph_recursive_inlining_p): Remove.
7400         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7401         (cgraph_decide_recursive_inlining): Take edge argument and
7402         adjust.
7403         (cgraph_decide_inlining_of_small_functions): Do not avoid
7404         diags for recursive inlining here.
7405         (cgraph_flatten): Adjust.
7406         (cgraph_decide_inlining_incrementally): Likewise.
7407         (estimate_function_body_sizes): Remove call cost handling.
7408         (compute_inline_parameters): Initialize caller edge call costs.
7409         (cgraph_estimate_edge_growth): New function.
7410         (cgraph_estimate_growth): Use it.
7411         (cgraph_edge_badness): Likewise.
7412         (cgraph_check_inline_limits): Take an edge argument.
7413         (cgraph_decide_inlining_of_small_functions): Adjust.
7414         (cgraph_decide_inlining): Likewise.
7415         * tree-inline.c (estimate_num_insns): Only account for call
7416         return value if it is used.
7417         (expand_call_inline): Avoid diagnostics on recursive inline
7418         functions here.
7419         * lto-cgraph.c (lto_output_edge): Output edge call costs.
7420         (input_edge): Input edge call costs.
7421
7422 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7423
7424         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7425
7426 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7427
7428         * doc/invoke.texi (Spec Files): Fix typo.
7429
7430 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7431
7432         * profile.c (branch_prob): Move declaration of local variable.  Remove
7433         obsolete ??? comment.  Expand the location explicitly instead of using
7434         the LOCATION_FILE and LOCATION_LINE macros.
7435
7436 2011-04-06  Wei Guozhi  <carrot@google.com>
7437
7438         PR target/47855
7439         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7440         (arm_cond_branch): Likewise.
7441         (arm_cond_branch_reversed): Likewise.
7442         (arm_jump): Likewise.
7443         (push_multi): Likewise.
7444         * config/arm/constraints.md (Py): New constraint.
7445
7446 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7447
7448         PR bootstrap/48471
7449         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7450         Move these...
7451         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7452         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7453         #ifdef DBX_DEBUGGING_INFO.
7454
7455 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
7456
7457         PR bootstrap/48403
7458         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7459         if old and new states differ.
7460
7461 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7462
7463         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7464         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7465         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7466         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7467         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7468         mcfv4e): Use Alias.
7469         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7470         ColdFire options to -mcpu= options.
7471
7472 2011-04-05  Jeff Law  <law@redhat.com>
7473
7474         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7475         check if BB is a successor of LOOP->header and return
7476         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7477
7478 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7479
7480         * cprop.c (struct reg_use): Remove.
7481         (reg_use_table): Make an array of RTX.
7482         (find_used_regs, constprop_register, local_cprop_pass,
7483         bypass_block): Simplify users of reg_use_table.
7484         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
7485         on one of the uses found by find_used_regs.
7486
7487 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7488
7489         PR bootstrap/48469
7490         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7491         declaration.
7492
7493 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7494
7495         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7496         as an rtx.
7497         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7498
7499 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7500
7501         PR middle-end/48441
7502         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7503
7504 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7505
7506         * combine.c: Include obstack.h.
7507         (struct insn_link): Define.
7508         (uid_log_links): Adjust type.
7509         (FOR_EACH_LOG_LINK): New macro.
7510         (insn_link_obstack): Declare.
7511         (alloc_insn_link): Define.
7512         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
7513         type of link variables.
7514         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7515         (try_combine, record_promoted_values, distribute_notes): Likewise.
7516         (distribute_links): Likewise.  Tweak prototype.
7517         (clear_log_links): Delete.
7518         (adjust_for_new_dest): Call alloc_insn_link.
7519         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7520
7521 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7522
7523         * gcse.c (modify_mem_list): Convert to an array of VECs.
7524         (canon_modify_mem_list, compute_transp): Tweak formatting.
7525         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
7526         (load_killed_in_block_p): Likewise.
7527         (record_last_mem_set_info): Likewise.
7528         (clear_modify_mem_tables): Likewise.
7529
7530 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7531
7532         PR middle-end/48461
7533         * function.c (emit_use_return_register_into_block): Only define if
7534         HAVE_return.
7535
7536 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
7537
7538         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7539
7540 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7541
7542         * config/rx/rx-opts.h: New.
7543         * config/rx/rx.c (rx_cpu_type): Remove.
7544         (rx_handle_option): Don't assert that global structures are in
7545         use.  Access variables via opts pointer.  Defer most handling of
7546         OPT_mint_register_.  Use error_at.
7547         (rx_option_override): Handle deferred OPT_mint_register_ here.
7548         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7549         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7550         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7551         (rx_cpu_types): New Enum and EnumValue entries.
7552         (mint-register=): Use Defer and use Var accordingly.
7553
7554 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7555
7556         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7557         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7558         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7559         Move these...
7560         (debug_free_queue, debug_nesting, symbol_queue_index):
7561         ...and these...
7562         * dbxout.c: ...to here.  Make static.
7563
7564 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7565
7566         * gcse.c (modify_pair): Define.  Define a VEC of it.
7567         (canon_modify_mem_list): Convert to an array of VECs.
7568         (free_insn_expr_list_list): Delete.
7569         (clear_modify_mem_tables): Call VEC_free instead.
7570         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7571         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7572         (canon_list_insert, compute_transp): Likewise.
7573
7574 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7575
7576         PR target/43920
7577         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7578         for size.
7579
7580 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7581
7582         PR target/43920
7583         * function.c (emit_use_return_register_into_block): New function.
7584         (thread_prologue_and_epilogue_insns): Use
7585         emit_use_return_register_into_block.
7586
7587 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7588
7589         PR target/43920
7590         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7591         insn.
7592
7593 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7594
7595         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7596
7597 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
7598
7599         * config/arm/arm.md (define_constants for unspec): Replace with
7600         define_c_enum.
7601         (define_constants for unspecv): Replace with define_c_enum.
7602         * config/arm/neon.md (define_constants for unspec): Replace with
7603         define_c_enum.
7604
7605 2011-04-04  Richard Henderson  <rth@redhat.com>
7606
7607         PR bootstrap/48400
7608         * dwarf2out.c (output_line_info): Always emit line info from
7609         at least one section.
7610         (dwarf2out_init): Create text_section_line_info here ...
7611         (set_cur_line_info_table): ... not here.
7612
7613 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
7614
7615         PR target/48380
7616         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7617         not called.
7618
7619         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7620
7621 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7622
7623         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7624         (expr_equiv_p): Remove.
7625         (insert_set_in_table): Look at <dest, src> pair instead of expr.
7626         (hash_scan_set): Update call to insert_set_in_table.
7627         (dump_hash_table): Dump <dest, src> pair.
7628         (lookup_set): Simplify.  Lookup <dest, src> pair.
7629         (compute_transp): Remove, fold heavily simplified code into...
7630         (compute_local_properties): ...here.  Expect COMP and TRANSP
7631         unconditionally.
7632         (find_avail_set): Take set directly from struct expr.
7633         (find_bypass-set): Likewise.
7634         (bypass_block): Likewise.
7635         (cprop_insn): Likewise.  Remove redundant INSN_P test.
7636
7637         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7638         checks on form of COND from find_implicit_sets to here.
7639         (find_implicit_sets): Cleanup control flow. Split critical edges
7640         if it exposes implicit sets.  Allocate/resize implicit_sets as
7641         necessary.
7642         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7643         changed something.  Run df_analyze after find_implicit_sets if any
7644         edges were split.  Do not allocate implicit_sets here.
7645
7646         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7647         (gcse_obstack): Renamed to cprop_obstack.
7648         (GNEW, GNEWVEC, GNEWVAR): Remove.
7649         (gmalloc): Remove.
7650         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7651         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7652         (gcse_alloc): Likewise, and rename to cprop_alloc.
7653         (alloc_gcse_men, free_gcse_mem): Remove.
7654         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7655         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7656         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7657
7658         * cprop.c (oprs_not_set_p): Remove.
7659         (mark_set, mark_clobber): Remove.
7660         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7661         (reg_not_set_p): New function.
7662         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7663         (cprop_insn): Likewise.
7664         (cprop_jump): Use FOR_EACH_EDGE.
7665
7666 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7667
7668         PR bootstrap/48403
7669         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7670         (rank_for_schedule): Use scheduled_insns vector instead of
7671         last_scheduled_insn.
7672         (ok_for_early_queue_removal): Likewise.
7673         (queue_to_ready): Search forward in nonscheduled_insns_begin if
7674         we have a dbg_cnt.
7675         (choose_ready): Likewise.
7676         (commit_schedule): Use VEC_iterate.
7677         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
7678         a dbg_cnt, use it and ensure the first insn is in the ready list.
7679         (haifa_sched_init): Allocate scheduled_insns.
7680         (sched_extend_ready_list): Don't allocate it; reserve space.
7681         (haifa_sched_finish): Free it.
7682
7683 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7684
7685         * optc-gen.awk: Always remove type from Variable entry before
7686         recording in var_seen.
7687
7688 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7689
7690         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7691         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7692         call to tidy_fallthru_edges.
7693
7694 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7695
7696         * doc/options.texi (ToLower): Document.
7697         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7698         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7699         * opts.h (cl_option): Add cl_tolower field.
7700         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7701         arguments with lowercase strings.
7702         * config/rx/rx.opt (mcpu=): Add ToLower.
7703         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7704         argument.
7705
7706 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7707
7708         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7709
7710 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7711
7712         * config/vax/vax.c: Include reload.h.
7713
7714 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
7715
7716         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7717         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7718         (sparc_preferred_reload_class): New function.
7719
7720 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
7721
7722         PR debug/48401
7723         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7724         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7725
7726 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
7727
7728         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7729         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7730
7731 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
7732
7733         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7734         (ASM_OUTPUT_ALIGNED_BSS): Define.
7735
7736 2011-04-03  Michael Matz  <matz@suse.de>
7737
7738         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7739         and next_slot members.
7740         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7741         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7742         (lto_streamer_cache_append): Declare.
7743         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7744         unsigned index, remove offset parameter, ensure that we append
7745         or update existing entries.
7746         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7747         parameter, update next_slot for append.
7748         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7749         parameter.
7750         (lto_streamer_cache_insert_at): Likewise.
7751         (lto_streamer_cache_append): New function.
7752         (lto_streamer_cache_lookup): Use unsigned index.
7753         (lto_streamer_cache_get): Likewise.
7754         (lto_record_common_node): Don't test tree_node_can_be_shared.
7755         (preload_common_node): Adjust call to lto_streamer_cache_insert.
7756         (lto_streamer_cache_delete): Don't free offsets member.
7757         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7758         (lto_output_string_with_length): Use lto_output_data_stream.
7759         (lto_output_tree_header): Remove ix parameter, don't write it.
7760         (lto_output_builtin_tree): Likewise.
7761         (lto_write_tree): Adjust callers to above, don't track and write
7762         offset, write unsigned index.
7763         (output_unreferenced_globals): Don't emit all global vars.
7764         (write_global_references): Use unsigned indices.
7765         (lto_output_decl_state_refs): Likewise.
7766         (write_symbol): Likewise.
7767         * lto-streamer-in.c (lto_input_chain): Move earlier.
7768         (input_function): Use unsigned index.
7769         (input_alias_pairs): Don't read and then ignore all global vars.
7770         (lto_materialize_tree): Remove ix_p parameter, don't read index,
7771         don't pass it back, use lto_streamer_cache_append.
7772         (lto_register_var_decl_in_symtab): Use unsigned index.
7773         (lto_register_function_decl_in_symtab): Likewise.
7774         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7775         index.
7776         (lto_get_builtin_tree): Don't read index, use
7777         lto_streamer_cache_append.
7778         (lto_read_tree): Adjust call to lto_materialize_tree.
7779
7780         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7781         don't use function calls in arguments to MIN.
7782
7783         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7784         twice.
7785
7786         * gimple.c (gimple_type_leader_entry): Mark deletable.
7787
7788 2011-04-03  Alan Modra  <amodra@gmail.com>
7789
7790         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7791
7792 2011-04-03  Michael Matz  <matz@suse.de>
7793
7794         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7795         an integer.
7796         * tree.h (tree_decl_non_common.vindex): Adjust comment.
7797
7798 2011-04-03  Michael Matz  <matz@suse.de>
7799
7800         * cgraphbuild.c (record_reference): Canonicalize constructor values.
7801         * gimple-fold.c (canonicalize_constructor_val): Accept being called
7802         without function context.
7803         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7804         current_function_decl and cfun.
7805
7806 2011-04-03  Michael Matz  <matz@suse.de>
7807
7808         * tree.c (decl_init_priority_insert): Don't create entry for
7809         default priority.
7810         (decl_fini_priority_insert): Ditto.
7811         (fields_compatible_p, find_compatible_field): Remove.
7812         * tree.h (fields_compatible_p, find_compatible_field): Remove.
7813         * gimple.c (gimple_compare_field_offset): Adjust block comment.
7814
7815 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7816
7817         * combine.c (try_combine): Remove useless local variable.
7818
7819 2011-04-03  Richard Guenther  <rguenther@suse.de>
7820             Ira Rosen  <ira.rosen@linaro.org>
7821
7822         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7823         non-variable offsets and compare the remaining bases of the two
7824         accesses instead of looking for exact same data-ref.
7825
7826 2011-04-02  Kai Tietz  <ktietz@redhat.com>
7827
7828         PR target/48416
7829         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7830
7831         * i386.c (ix86_is_msabi_thiscall): New helper function.
7832         (ix86_is_type_thiscall): New helper function.
7833         (ix86_comp_type_attributes): Handle thiscall for method-functions
7834         special.
7835         (init_cumulative_args): Likewise.
7836         (find_drap_reg): Likewise.
7837         (ix86_static_chain): Likewise.
7838         (x86_this_parameter): Likewise.
7839         (x86_output_mi_thunk): Likewise.
7840
7841 2011-04-01  Olivier Hainque  <hainque@adacore.com>
7842             Nicolas Setton  <setton@adacore.com>
7843             Eric Botcazou  <ebotcazou@adacore.com>
7844
7845         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7846         (add_gnat_descriptive_type_attribute): New function.
7847         (gen_array_type_die): Call it.
7848         (gen_enumeration_type_die): Likewise.
7849         (gen_struct_or_union_type_die): Likewise.
7850         (modified_type_die): Likewise.
7851         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7852         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7853         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7854
7855 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7856
7857         PR bootstrap/48148
7858         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7859         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7860
7861         Revert:
7862         2011-03-17  Richard Guenther  <rguenther@suse.de>
7863
7864         PR bootstrap/48148
7865         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7866         origin for decls in other ltrans units.
7867         (input_varpool_node): Likewise.
7868
7869 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7870
7871         PR middle-end/48335
7872         * expr.c (expand_assignment): Handle all possibilities
7873         if TO_RTX is CONCAT.
7874         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7875         (store_split_bit_field): If SUBREG_REG (op0) or
7876         op0 itself has smaller mode than word, return it
7877         for offset 0 and const0_rtx for out-of-bounds stores.
7878         If word is const0_rtx, skip it.
7879
7880 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7881
7882         * config/h8300/h8300.c (print_operand_address): Rename to...
7883         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7884         Call h8300_print_operand and h8300_print_operand_address instead of
7885         print_operand and print_operand_address. Declare.
7886         (print_operand): Renake to...
7887         (h8300_print_operand): ...this. Make static. Adjust comments.
7888         Call h8300_print_operand instead of print_operand. Declare.
7889         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7890         (h8300_register_move_cost): Likewise.
7891         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7892         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7893         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7894         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7895         * config/h8300/h8300-protos.h (print_operand): Delete.
7896         (print_operand_address): Delete.
7897
7898 2011-04-01  Richard Henderson  <rth@redhat.com>
7899
7900         PR 48400
7901         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7902         in strict mode before dwarf4.  Re-order tests to early out
7903         before switching sections.
7904
7905 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7906
7907         * config/h8300/constraints.md: New file.
7908         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7909         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7910         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7911         * config/h8300/predicates.md (bit_operand): Likewise.
7912         (incdec_operand): Use satisfies_constraint_M and
7913         satisfies_constraint_O.  Don't use C code block.
7914         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7915         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7916         (compute_mov_length): Use satisfies_constraint_G.
7917         (fix_bit_operand): Use satisfies_constraint_U.
7918         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7919         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7920         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7921         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7922         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7923         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7924         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7925         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7926         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7927         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7928         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7929         (EXTRA_MEMORY_CONSTRAINT): Delete.
7930
7931 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7932             Michael Meissner  <meissner@linux.vnet.ibm.com>
7933
7934         PR target/48262
7935         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7936         operands, as per the specifications.
7937
7938         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7939         (vec_extract_evenv4sf): Ditto.
7940         (vec_extract_evenv8hi): Ditto.
7941         (vec_extract_evenv16qi): Ditto.
7942         (vec_extract_oddv4si): Ditto.
7943
7944 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7945
7946         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7947         high_pc attribute if the CU has no associated code. Only output
7948         DW_AT_entry_pc for CU if not generating strict dwarf and
7949         dwarf_version < 4.
7950
7951 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7952
7953         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7954         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7955         out of ...
7956         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7957         * final.c (final_start_function): Call the new function rather
7958         than using a NULL argument for dwarf2out_frame_debug.
7959
7960         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7961         that contains the prologue.
7962
7963         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7964         changed.  Print it in debugging output.
7965
7966         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7967
7968         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7969         Split most of the code into...
7970         (begin_move_insn): ... here.  New function.
7971         (ebb_sched_info): Add a pointer to it.
7972         * haifa-sched.c (scheduled_insns): New static variable.
7973         (sched_extend_ready_list): Allocate it.
7974         (schedule_block): Use it to record the order of scheduled insns.
7975         Perform RTL changes to move insns only after all scheduling
7976         decisions have been made.
7977         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7978         begin_move_insn field.
7979         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7980         * sched-int.h (struct haifa_sched_info): Remove second argument
7981         from begin_schedule_ready hook.  Add new member begin_move_insn.
7982         * sched-rgn.c (begin_schedule_ready): Remove second argument.
7983         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7984
7985         * haifa-sched.c (prune_ready_list): New function, broken out of
7986         schedule_block.
7987         (schedule_block): Use it.
7988
7989 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7990
7991         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7992
7993 2011-04-01  Kai Tietz  <ktietz@redhat.com>
7994
7995         * config.gcc (*-*-mingw*): Allow as option the
7996         posix threading model.
7997         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
7998         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7999         definition.
8000         (CPP_SPEC): Add pthread/no-pthread handling.
8001         (LIB_SPEC): Likewise.
8002         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8003         (LIB_SPEC): Likewise.
8004         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8005         flag to pass -pthread option for shared libgcc build.
8006         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8007         for shared libgcc build.
8008         * config/i386/t-mingw-pthread: New file.
8009         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8010         New define to enable use of library pthread by default.
8011         * config/i386/mingw.opt (pthread): New driver option.
8012         (no-pthread): New driver option.
8013         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8014         * config/i386/mingw-w64.opt: Likewise.
8015
8016 2011-04-01  Gary Funck  <gary@intrepid.com>
8017
8018         * c-decl.c (grokdeclarator): Fix formatting.
8019
8020 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8021
8022         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8023         instead of n_operands.
8024         (set_storage_via_setmem): Likewise.
8025         * optabs.c (maybe_gen_insn): Likewise.
8026         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8027         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8028         (mips_expand_builtin_direct): Likewise.
8029         * config/spu/spu.c (expand_builtin_args): Likewise.
8030
8031 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8032
8033         * recog.h (insn_data_d): Add n_generator_args.
8034         * genoutput.c (data): Likewise.
8035         (output_insn_data): Print it.
8036         (max_opno, num_dups): Delete.
8037         (scan_operands): Just fill in "d->operand[...]".
8038         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8039
8040 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8041
8042         * gensupport.h (pattern_stats): New structure.
8043         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8044         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8045         (max_operand_1, max_operand_vec): Delete.
8046         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8047
8048 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8049
8050         * emit-rtl.c (emit_pattern_after_setloc): New function.
8051         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8052         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8053         (emit_pattern_after): New function.
8054         (emit_insn_after, emit_jump_insn_after): Call it.
8055         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8056         (emit_pattern_before_setloc): New function.
8057         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8058         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8059         Likewise.
8060         (emit_pattern_before): New function.
8061         (emit_insn_before, emit_jump_insn_before): Call it.
8062         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8063
8064 2011-03-31  Richard Henderson  <rth@redhat.com>
8065
8066         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8067         (dw_separate_line_info_entry): Remove.
8068         (enum dw_line_info_opcode): New.
8069         (dw_line_info_entry): Use it.
8070         (dw_line_info_table, dw_line_info_table_p): New.
8071         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8072         (line_info_table, line_info_label_num): Remove.
8073         (line_info_table_in_use): Remove.
8074         (separate_line_info_table): Remove.
8075         (separate_line_info_table_allocated): Remove.
8076         (separate_line_info_table_in_use): Remove.
8077         (LINE_INFO_TABLE_INCREMENT): Remove.
8078         (line_info_label_num): New.
8079         (cur_line_info_table): New.
8080         (text_section_line_info, cold_text_section_line_info): New.
8081         (separate_line_info): New.
8082         (SEPARATE_LINE_CODE_LABEL): Remove.
8083         (print_dwarf_line_table): Remove.
8084         (debug_dwarf): Don't dump it.
8085         (output_one_line_info_table): New.
8086         (output_line_info): Use it.
8087         (new_line_info_table): New.
8088         (set_cur_line_info_table): New.
8089         (dwarf2out_switch_text_section): Use it.
8090         (dwarf2out_begin_function): Likewise.
8091         (push_dw_line_info_entry): New.
8092         (dwarf2out_source_line): Rewrite for new line info tables.
8093         (dwarf2out_init): Remove dead initailizations.
8094
8095 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8096
8097         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8098         various flags.
8099         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8100         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8101         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8102         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8103         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8104         * opt-functions.awk (flag_init, switch_bit_fields): New.
8105         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8106         generate CL_MISSING_OK or CL_SAVE.
8107         * optc-gen.awk: Update to generate bit-field output as well as
8108         flags field.
8109         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8110         bit-field instead of CL_REJECT_DRIVER flag.
8111         * opts-common.c (generate_canonical_option,
8112         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8113         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8114         instead of CL_REJECT_NEGATIVE flag.
8115         * toplev.c (print_switch_values): Use cl_report bit-field instead
8116         of CL_REPORT flag.
8117
8118 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8119
8120         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8121         a zero minimum index only if it is redundant.
8122
8123 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8124
8125         PR rtl-optimization/48381
8126         * ira-color.c (assign_hard_reg): Use hard reg set intersection
8127         instead of ira_class_hard_reg_index for calculating conflicting
8128         hard registers.
8129
8130 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
8131
8132         * cprop.c: Clean up hash table building.
8133         (reg_avail_info): Remove.
8134         (oprs_available_p): Remove.
8135         (record_last_reg_set_info): Remove.
8136         (record_last_set_info): Remove.
8137         (reg_available_p): New function.
8138         (gcse_constant_p): Do not treat unfolded conditions as constants.
8139         (make_set_regs_unavailable): New function.
8140         (hash_scan_set): Simplify with new reg_available_p.
8141         (compute_hash_table_work): Traverse insns stream only once.
8142         Do not compute reg_avail_info. Traverse insns in reverse order.
8143         Record implicit sets after recording explicit sets from the block.
8144
8145 2011-03-31  Michael Matz  <matz@suse.de>
8146
8147         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8148
8149 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8150
8151         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8152         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8153         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8154         (h8300_mode_dependent_address_p): New function.
8155         (h8300_get_index): Make static.
8156
8157 2011-03-31  Jeff Law  <law@redhat.com>
8158
8159         * reload1.c (elimination_effects): Fix typo in recent change.
8160
8161         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8162         typo potentially leading to null pointer dereference.
8163
8164         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8165         (setup_save_areas): Corresponding changes to avoid useless
8166         assignments.
8167
8168         * jump.c (reversed_comparison_code_parts): Avoid successive return
8169         statements when REVERSE_CONDITION is defined.
8170
8171         * expr.c (expand_assignment): Avoid useless assignments.
8172         (expand_expr_real_1): Likewise.
8173         (expand_expr_real_2): Avoid useless statements.
8174
8175         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8176
8177         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8178
8179         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8180         statements.
8181
8182         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8183
8184 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8185
8186         PR target/47109
8187         * doc/tm.texi.in (TARGET_VERSION): Remove.
8188         * doc/tm.texi: Regenerate.
8189         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8190         * collect2.c (main): Don't use TARGET_VERSION.
8191         * mips-tdump.c (main): Don't use TARGET_VERSION.
8192         * mips-tfile.c (main): Don't use TARGET_VERSION.
8193         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8194         * config/rs6000/vxworksae.h: Remove.
8195         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8196         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8197         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8198         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8199         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8200         * config/arm/arm.h (TARGET_VERSION): Remove.
8201         * config/arm/coff.h (TARGET_VERSION): Remove.
8202         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8203         * config/arm/elf.h (TARGET_VERSION): Remove.
8204         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8205         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8206         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8207         * config/arm/pe.h (TARGET_VERSION): Remove.
8208         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8209         * config/arm/semi.h (TARGET_VERSION): Remove.
8210         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8211         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8212         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8213         * config/avr/avr.h (TARGET_VERSION): Remove.
8214         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8215         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8216         * config/frv/frv.h (TARGET_VERSION): Remove.
8217         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8218         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8219         * config/i386/darwin.h (TARGET_VERSION): Remove.
8220         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8221         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8222         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8223         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8224         * config/i386/gnu.h (TARGET_VERSION): Remove.
8225         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8226         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8227         * config/i386/linux.h (TARGET_VERSION): Remove.
8228         * config/i386/linux64.h (TARGET_VERSION): Remove.
8229         * config/i386/lynx.h (TARGET_VERSION): Remove.
8230         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8231         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8232         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8233         * config/i386/netware.h (TARGET_VERSION): Remove.
8234         * config/i386/nto.h (TARGET_VERSION): Remove.
8235         * config/i386/openbsd.h (TARGET_VERSION): Remove.
8236         * config/i386/vxworks.h (TARGET_VERSION): Remove.
8237         * config/ia64/elf.h (TARGET_VERSION): Remove.
8238         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8239         * config/ia64/hpux.h (TARGET_VERSION): Remove.
8240         * config/ia64/linux.h (TARGET_VERSION): Remove.
8241         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8242         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8243         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8244         * config/lm32/lm32.h (TARGET_VERSION): Remove.
8245         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8246         * config/m32c/m32c.h (TARGET_VERSION): Remove.
8247         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8248         * config/m32r/m32r.h (TARGET_VERSION): Remove.
8249         * config/m68k/linux.h (TARGET_VERSION): Remove.
8250         * config/m68k/m68k.h (TARGET_VERSION): Remove.
8251         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8252         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8253         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8254         * config/mep/mep.h (TARGET_VERSION): Remove.
8255         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8256         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8257         * config/mips/iris6.h (MACHINE_TYPE): Remove.
8258         * config/mips/linux.h (TARGET_VERSION): Remove.
8259         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8260         * config/mips/vxworks.h (TARGET_VERSION): Remove.
8261         * config/mmix/mmix.h (TARGET_VERSION): Remove.
8262         * config/mn10300/linux.h (TARGET_VERSION): Remove.
8263         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8264         * config/pa/pa.h (TARGET_VERSION): Remove.
8265         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8266         * config/picochip/picochip.h (TARGET_VERSION): Remove.
8267         * config/rs6000/aix.h (TARGET_VERSION): Remove.
8268         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8269         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8270         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8271         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8272         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8273         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8274         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8275         * config/rs6000/linux.h (TARGET_VERSION): Remove.
8276         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8277         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8278         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8279         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8280         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8281         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8282         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8283         * config/s390/linux.h (TARGET_VERSION): Remove.
8284         * config/s390/s390.h (TARGET_VERSION): Remove.
8285         * config/s390/tpf.h (TARGET_VERSION): Remove.
8286         * config/score/score.h (TARGET_VERSION): Remove.
8287         * config/sh/linux.h (TARGET_VERSION): Remove.
8288         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8289         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8290         * config/sh/sh.h (TARGET_VERSION): Remove.
8291         * config/sh/sh64.h (TARGET_VERSION): Remove.
8292         * config/sh/superh.h (TARGET_VERSION): Remove.
8293         * config/sh/vxworks.h (TARGET_VERSION): Remove.
8294         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8295         * config/sparc/linux.h (TARGET_VERSION): Remove.
8296         * config/sparc/linux64.h (TARGET_VERSION): Remove.
8297         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8298         TARGET_NAME32, TARGET_NAME): Remove.
8299         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8300         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8301         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8302         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8303         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8304         * config/spu/spu.h (TARGET_VERSION): Remove.
8305         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8306         * config/v850/v850.h (TARGET_VERSION): Remove.
8307         * config/vax/linux.h (TARGET_VERSION): Remove.
8308         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8309         * config/xtensa/elf.h (TARGET_VERSION): Remove.
8310         * config/xtensa/linux.h (TARGET_VERSION): Remove.
8311
8312 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8313
8314         PR target/48142
8315         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8316         frame-related from frame-unrelated adjustments to the stack pointer.
8317
8318 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
8319
8320         * common.opt (fdebug-types-section): Move earlier.
8321         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8322
8323 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
8324
8325         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8326         var.
8327
8328 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
8329
8330         * tree.h (CASE_CHAIN): Define.
8331         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8332         (gimple_redirect_edge_and_branch): Likewise.
8333
8334 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8335
8336         PR middle-end/48367
8337         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8338         calculation.
8339
8340 2011-03-30  Jeff Law  <law@redhat.com>
8341
8342         * PR bootstrap/48371
8343         * reload1.c (reload): Fix botch in last change.
8344
8345         * reload.h (struct reload): Fix typo introduced in last change.
8346
8347 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8348
8349         * config/arm/arm.opt (mhard-float, msoft-float): Mark
8350         Undocumented.  Remove help text.
8351         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8352         -mhard-float.
8353
8354 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8355
8356         * doc/options.texi (NegativeAlias): Document.
8357         (Alias): Mention NegativeAlias.
8358         * opt-functions.awk: Handle NegativeAlias.
8359         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8360         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8361         * opts.h (CL_NEGATIVE_ALIAS): Define.
8362         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8363         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8364         OPT_mspe_.
8365         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8366         Alias entries.
8367         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8368         mno-spe and mno-isel instead of mspe=no and -misel=no.
8369
8370 2011-03-29  Mark Wielaard  <mjw@redhat.com>
8371
8372         * common.opt (fdebug-types-section): New flag.
8373         * doc/invoke.texi: Document new -fno-debug-types-section flag.
8374         * dwarf2out.c (use_debug_types): New define.
8375         (struct die_struct): Mark die_id with GTY desc use_debug_types.
8376         (print_die): Guard output of type unit signatures using
8377         use_debug_types.
8378         (build_abbrev_table): Replace assert of dwarf_version >= 4
8379         with assert on use_debug_types.
8380         (size_of_die): Likewise.
8381         (unmark_dies): Likewise.
8382         (value_format): Decide AT_ref_external form on use_debug_types.
8383         (output_die): Replace dwarf_version version check guard with
8384         use_debug_types where appropriate.
8385         (modified_type_die): Likewise.
8386         (gen_reference_type_die): Likewise.
8387         (dwarf2out_start_source_file): Likewise.
8388         (dwarf2out_end_source_file): Likewise.
8389         (prune_unused_types_walk_attribs): Likewise.
8390         (dwarf2out_finish): Likewise.
8391
8392 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8393
8394         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8395
8396 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8397
8398         PR rtl-optimization/48332
8399         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8400         mode of input operand N and modeN to its actual mode.
8401
8402 2011-03-30  Jeff Law  <law@redhat.com>
8403
8404         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8405         define accessor macro.
8406         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8407         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8408         (reg_equiv_init): Likewise.
8409         (reg_equivs_size): New variable.
8410         (reg_equiv_init_size): Remove.
8411         (allocate_initial_values): Move prototype to here from....
8412         * integrate.h (allocate_initial_values): Remove prototype.
8413         * integrate.c: Include reload.h.
8414         (allocate_initial_values): Corresponding changes.
8415         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8416         (fix_reg_equiv_init, no_equiv): Corresponding changes.
8417         (update_equiv_regs): Corresponding changes.
8418         (ira): Corresponding changes.
8419         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8420         (push_secondary_reload): Corresponding changes.
8421         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8422         (make_memloc, find_reloads_address): Corresponding changes.
8423         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8424         (find_reloads_address_1): Corresponding changes.
8425         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8426         (refers_to_regno_for_reload_p): Corresponding changes.
8427         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8428         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8429         * reload1.c: Include ggc.h.
8430         (grow_reg_equivs): New function.
8431         (replace_pseudos_in, reload): Corresponding changes.
8432         (calculate_needs_all_insns, alter_regs): Corresponding changes.
8433         (eliminate_regs_1, elimination_effects): Corresponding changes.
8434         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8435         (delete_output_reload): Likewise.
8436         * caller-save.c (mark_referenced_regs): Corresponding changes.
8437         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8438         * frv/predicates.md (frv_load_operand): Corresponding changes.
8439         * microblaze/microblaze.c (double_memory_operand): Corresponding
8440         changes.
8441         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8442         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8443         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8444         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8445         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8446         changes.
8447         * pa/pa.c (emit_move_sequence): Corresponding changes.
8448         * vax/vax.c (nonindexed_address_p): Corresponding changes.
8449
8450 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8451
8452         PR target/47551
8453         * config/arm/arm.c (coproc_secondary_reload_class): Handle
8454         structure modes.  Don't check neon_vector_mem_operand for
8455         vector or structure modes.
8456
8457 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8458             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8459
8460         PR target/43590
8461         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8462         operand 1 and reshuffle the operands to match.
8463         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8464
8465 2011-03-30  Christian Schüler  <cschueler@gmx.de>
8466
8467         PR driver/48208
8468         * config/c.opt (F): Added 'Driver' to -F option.
8469
8470         PR driver/48260
8471         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8472           handler function.
8473         * config/darwin.opt: Added '-arch' option.
8474
8475 2011-03-30  Nick Clifton  <nickc@redhat.com>
8476
8477         * config/rx/rx.md: Add peepholes and patterns to combine
8478         extending loads and simple arithmetic instructions.
8479         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8480         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8481         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8482         modes to use pre-decrement and post-increment addressing.
8483         (rx_is_restricted_memory_address): Add range checking of REG+INT
8484         addresses.
8485         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
8486         (rx_memory_move_cost): Adjust cost of stores.
8487         (rx_adjust_insn_length): New function.
8488
8489 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
8490
8491         PR c/48305
8492         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8493         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8494         matching arg00/arg01 types.
8495
8496 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8497
8498         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8499         last_location to UNKNOWN_LOCATION.
8500
8501 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8502
8503         PR target/48349
8504         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8505         FLOAT_SSE_REGS.
8506
8507 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8508             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8509
8510         PR bootstrap/48337
8511         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8512         Init(PROCESSOR_V7).
8513         (sparc_cpu): Likewise.
8514         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8515         PROCESSOR_V7.
8516
8517 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8518
8519         PR target/48336
8520         PR middle-end/48342
8521         PR rtl-optimization/48345
8522         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8523         hard regs for given mode from profitable regs when doing secondary
8524         allocation.
8525
8526 2011-03-29  Jeff Law  <law@redhat.com>
8527
8528         PR bootstrap/48327
8529         * tree-ssa-threadupdate.c (struct redirection_data): Remove
8530         do_not_duplicate field.
8531         (lookup_redirection_data): Corresponding changes.
8532         (create_duplicates): Always create a template block.
8533         (redirect_edges): Remove code which reused the original block
8534         when it was going to become unreachable code.
8535         (thread_block): Don't set do_not_duplicate field.
8536
8537 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
8538
8539         * lto-opts.c (register_user_option_p, lto_register_user_option):
8540         Make type argument unsigned.
8541         * lto-streamer.h (lto_register_user_option): Make type argument
8542         unsigned.
8543         * opth-gen.awk: Make CL_* macros unsigned.
8544         * opts-common.c (find_opt): Make lang_mask argument unsigned.
8545         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8546         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8547         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8548         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8549         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8550         (find_opt): Make lang_mask argument unsigned.
8551
8552 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8553
8554         PR rtl-optimization/48331
8555         PR rtl-optimization/48334
8556         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8557         for any used algorithm.
8558
8559 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8560
8561         * ira-conflicts.c (build_object_conflicts): Add unused attribute
8562         to parent_max.
8563
8564 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
8565
8566         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8567         (alpha_option_override): Don't set alpha_sr_alias_set.
8568         (emit_frame_store_1): Use gen_frame_mem rather than calling
8569         set_mem_alias_set.
8570         (alpha_expand_epilogue): Ditto.
8571
8572 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
8573
8574         PR tree-optimization/48290
8575         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8576         vectorization, check that relevant phis in the basic block after
8577         the inner loop are really inner loop's exit phis.
8578
8579 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
8580
8581         PR debug/48190
8582         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8583         (cached_dw_loc_list_def): New structure.
8584         (cached_dw_loc_list): New typedef.
8585         (cached_dw_loc_list_table): New variable.
8586         (cached_dw_loc_list_table_hash): New function.
8587         (cached_dw_loc_list_table_eq): Likewise.
8588         (add_location_or_const_value_attribute): Take a bool cache_p.
8589         Cache the list when the parameter is true.
8590         (gen_formal_parameter_die): Update caller.
8591         (gen_variable_die): Likewise.
8592         (dwarf2out_finish): Likewise.
8593         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8594         while generating debug info for the decl.
8595         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8596         (dwarf2out_init): Initialize cached_dw_loc_list_table.
8597         (resolve_addr): Cache the result of resolving a chain of
8598         location lists.
8599
8600 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
8601
8602         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8603         conflict object hard regset nodes have intersecting hard reg sets.
8604
8605         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8606         after regstat_init_n_sets_and_refs.
8607
8608         * ira.c: Add more comments at the top.
8609         (setup_stack_reg_pressure_class, setup_pressure_classes):
8610         Add comments how we compute the register pressure classes.
8611         (setup_allocno_and_important_classes): Add more comments.
8612         (setup_class_translate_array, reorder_important_classes)
8613         (setup_reg_class_relations): Add comments.
8614
8615         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
8616         start of the file.
8617
8618         * ira-color.c: Add 2011 to the Copyright line.
8619         (assign_hard_reg):  Add more comments.
8620         (improve_allocation): Ditto.
8621
8622         * ira-costs.c: Add 2011 to the Copyright line.
8623         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8624         comments.
8625         (setup_regno_cost_classes_by_mode): Ditto.
8626
8627         Initial patches from ira-improv branch:
8628
8629         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8630
8631         * ira-build.c (ira_create_object): Remove initialization of
8632         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
8633         (ira_create_allocno): Remove initialization of
8634         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8635         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8636         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8637         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8638         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8639         Initialize ALLOCNO_ADD_DATA.
8640         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8641         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8642         ALLOCNO_REG.
8643         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8644         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8645
8646         * ira.c (ira_reallocate): Remove.
8647         (setup_pressure_classes): Call
8648         ira_init_register_move_cost_if_necessary.  Use
8649         ira_register_move_cost instead of ira_get_register_move_cost.
8650         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8651         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8652
8653         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8654         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8655         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8656         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8657         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8658         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8659         Fix formatting.
8660         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8661         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8662         (struct allocno_color_data): New.
8663         (allocno_color_data_t): New typedef.
8664         (allocno_color_data): New definition.
8665         (ALLOCNO_COLOR_DATA): New macro.
8666         (struct object_color_data): New.
8667         (object_color_data_t): New typedef.
8668         (object_color_data): New definition.
8669         (OBJECT_COLOR_DATA): New macro.
8670         (update_copy_costs, calculate_allocno_spill_cost): Call
8671         ira_init_register_move_cost_if_necessary.  Use
8672         ira_register_move_cost instead of ira_get_register_move_cost.
8673         (move_spill_restore, update_curr_costs): Ditto.
8674         (allocno_spill_priority): Make it inline.
8675         (color_pass): Allocate and free allocno_color_dat and object_color_data.
8676         (struct coalesce_data, coalesce_data_t): New.
8677         (allocno_coalesce_data): New definition.
8678         (ALLOCNO_COALESCE_DATA): New macro.
8679         (merge_allocnos, coalesced_allocno_conflict_p): Use
8680         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8681         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8682         (coalesce_allocnos): Ditto.
8683         (setup_coalesced_allocno_costs_and_nums): Ditto.
8684         (collect_spilled_coalesced_allocnos): Ditto.
8685         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8686         (setup_slot_coalesced_allocno_live_ranges): Ditto.
8687         (coalesce_spill_slots): Ditto.
8688         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
8689         free allocno_coalesce_data.
8690
8691         * ira-conflicts.c: Fix formatting.
8692         (process_regs_for_copy): Call
8693         ira_init_register_move_cost_if_necessary.  Use
8694         ira_register_move_cost instead of ira_get_register_move_cost.
8695         (build_object_conflicts): Optimize.
8696
8697         * ira-costs.c (record_reg_classes): Optimize.  Call
8698         ira_init_register_move_cost_if_necessary.  Use
8699         ira_register_move_cost, ira_may_move_in_cost, and
8700         ira_may_move_out_cost instead of ira_get_register_move_cost and
8701         ira_get_may_move_cost.
8702         (record_address_regs): Ditto.
8703         (scan_one_insn): Optimize.
8704         (find_costs_and_classes): Optimize.
8705         (process_bb_node_for_hard_reg_moves): Call
8706         ira_init_register_move_cost_if_necessary.  Use
8707         ira_register_move_cost instead of ira_get_register_move_cost.
8708
8709         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8710         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8711         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8712         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8713         definitions.
8714         (ira_initiate_emit_data, ira_finish_emit_data)
8715         (create_new_allocno): New functions.
8716         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8717         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8718         Use ira_register_move_cost instead of ira_get_register_move_cost.
8719
8720         * ira-int.h: Fix some comments.
8721         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8722         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8723         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8724         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
8725         add_data.
8726         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
8727         bitfield after mode.  Make hard_regno a short int.  Make
8728         hard_regno short.  Remove first_coalesced_allocno and
8729         next_coalesced_allocno.  Move mem_optimized_dest_p,
8730         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8731         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
8732         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8733         temp, colorable_p.  Add new member add_data.
8734         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8735         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8736         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8737         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8738         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8739         (ALLOCNO_ADD_DATA): New macro.
8740         (ira_emit_data_t): New typedef.
8741         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
8742         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8743         from struct ira_allocno.
8744         (ALLOCNO_EMIT_DATA): New macro.
8745         (ira_allocno_emit_data, allocno_emit_reg): New.
8746         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
8747         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
8748         (OBJECT_ADD_DATA): New macro.
8749         (ira_reallocate): Remove.
8750         (ira_initiate_emit_data, ira_finish_emit_data): New.
8751         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8752         (ira_init_register_move_cost_if_necessary): New.
8753         (ira_object_conflict_iter_next): Merge into
8754         ira_object_conflict_iter_cond.
8755         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
8756
8757         * ira-live.c (process_single_reg_class_operands): Call
8758         ira_init_register_move_cost_if_necessary.  Use
8759         ira_register_move_cost instead of ira_get_register_move_cost.
8760
8761         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8762
8763         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8764
8765         * ira-costs.c: Fix formatting.
8766         (cost_classes, cost_classes_num): Remove.
8767         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8768         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8769         (cost_classes_del, cost_classes_htab): New.
8770         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8771         (initiate_regno_cost_classes, setup_cost_classes): New.
8772         (setup_regno_cost_classes_by_aclass): New.
8773         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
8774         (record_reg_classes): Use regno_cost_classes instead of
8775         cost_classes.  Move checking opposite operand up.
8776         (record_address_regs): Use regno_cost_classes
8777         instead of cost_classes.
8778         (scan_one_insn): Ditto.  Use always general register.
8779         (print_allocno_costs): Use regno_cost_classes instead of
8780         cost_classes.
8781         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
8782         (find_costs_and_classes): Set up cost classes for each registers.
8783         Use also their mode for this.  Use regno_cost_classes instead of
8784         cost_classes.
8785         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8786         cost_classes.
8787         (free_ira_costs, ira_init_costs): Don't use cost_classes.
8788         (ira_costs, ira_set_pseudo_classes): Call
8789         initiate_regno_cost_classes and finish_regno_cost_classes.
8790
8791         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8792
8793         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8794
8795         * target.def (ira_cover_classes): Remove.
8796
8797         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
8798
8799         * doc/tm.texi.in: Ditto.
8800
8801         * ira-conflicts.c: Remove mentioning cover classes from the file.
8802         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
8803         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
8804
8805         * targhooks.c (default_ira_cover_classes): Remove.
8806
8807         * targhooks.h (default_ira_cover_classes): Ditto.
8808
8809         * haifa-sched.c: Remove mentioning cover classes from the file.
8810         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8811         ira_pressure_classes and ira_pressure_classes_num instead of
8812         ira_reg_class_cover_size and ira_reg_class_cover.  Use
8813         sched_regno_pressure_class instead of sched_regno_cover_class.
8814         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8815         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8816
8817         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
8818         classes from the file.
8819         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8820         (struct object_hard_regs, struct object_hard_regs_node): New.
8821         (struct ira_object): New members profitable_hard_regs,
8822         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8823         (struct ira_allocno): Rename cover_class to aclass.  Rename
8824         cover_class_cost and updated_cover_class_cost to class_cost and
8825         updated_class_cost.  Remove splay_removed_p and
8826         left_conflict_size.  Add new members colorable_p.
8827         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8828         (ALLOCNO_COLORABLE_P): New macro.
8829         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8830         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8831         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8832         (OBJECT_...): Rename parameter C to O.
8833         (OBJECT_PROFITABLE_HARD_REGS): New macro.
8834         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8835         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8836         (struct target_ira_int): New members x_ira_max_memory_move_cost,
8837         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8838         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8839         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8840         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
8841         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
8842         x_ira_reg_class_subunion.
8843         (ira_max_memory_move_cost, ira_max_register_move_cost)
8844         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8845         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8846         (ira_important_class_nums, ira_reg_class_superunion): New macros.
8847         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
8848         (ira_reg_class_union): Rename to ira_reg_class_subunion.
8849         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8850         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8851         (ira_tune_allocno_costs_and_cover_classes): Rename to
8852         ira_tune_allocno_costs.
8853         (ira_debug_hard_regs_forest): New.
8854         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8855         (ira_object_conflict_iter_next): Fix comments.
8856         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8857         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8858         cover_class to aclass.
8859         (ira_allocate_and_accumulate_costs): Ditto.
8860         (ira_allocate_and_set_or_copy_costs): Ditto.
8861
8862         * opts.c (decode_options): Remove ira_cover_class check.
8863
8864         * ira-color.c: Remove mentioning cover classes from the file.  Use
8865         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8866         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8867         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8868         (splay-tree.h): Remove include.
8869         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8870         before copy_freq_compare_func.
8871         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8872         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8873         New definitions.
8874         (hard_regs_roots, hard_regs_node_vec): Ditto.
8875         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8876         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8877         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8878         (create_new_object_hard_regs_node): Ditto.
8879         (add_new_object_hard_regs_node_to_forest): Ditto.
8880         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8881         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8882         Ditto.
8883         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8884         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8885         (remove_unused_object_hard_regs_nodes): Ditto.
8886         (enumerate_object_hard_regs_nodes): Ditto.
8887         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8888         (object_hard_regs_subnode_t): Ditto.
8889         (struct object_hard_regs_subnode): Ditto.
8890         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8891         (setup_object_hard_regs_subnode_index): Ditto.
8892         (get_object_hard_regs_subnodes_num): Ditto.
8893         (form_object_hard_regs_nodes_forest): Ditto.
8894         (finish_object_hard_regs_nodes_tree): Ditto.
8895         (finish_object_hard_regs_nodes_forest): Ditto.
8896         (allocnos_have_intersected_live_ranges_p): Rename to
8897         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8898         (pseudos_have_intersected_live_ranges_p): Rename to
8899         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8900         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8901         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8902         (update_copy_costs): Remove assert.  Skip cost update if the hard
8903         reg does not belong the class.
8904         (assign_hard_reg): Process only profitable hard regs.
8905         (uncolorable_allocnos_num): Make it scalar.
8906         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8907         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8908         and ira_reg_class_max_nregs.
8909         (bucket_allocno_compare_func): Check frequency first.
8910         (sort_bucket): Add compare function as a parameter.
8911         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8912         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8913         (push_allocno_to_stack): Rewrite for checking new allocno
8914         colorability.
8915         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8916         (push_only_colorable): Pass new parameter to sort_bucket.
8917         (push_allocno_to_spill): Remove.
8918         (allocno_spill_priority_compare): Make it inline and rewrite.
8919         (splay_tree_allocate, splay_tree_free): Remove.
8920         (allocno_spill_sort_compare): New function.
8921         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8922         build and use splay tree.  Choose first allocno in uncolorable
8923         allocno bucket to spill.  Remove setting spill cost.
8924         (all_conflicting_hard_regs): Remove.
8925         (setup_allocno_available_regs_num): Check only profitable hard
8926         regs.  Print info about hard regs nodes.
8927         (setup_allocno_left_conflicts_size): Remove.
8928         (put_allocno_into_bucket): Don't call
8929         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8930         (improve_allocation): New.
8931         (color_allocnos): Call setup_profitable_hard_regs,
8932         form_object_hard_regs_nodes_forest, improve_allocation,
8933         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8934         (print_loop_title): Use pressure classes.
8935         (color_allocnso): Ditto.
8936         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8937         and allocnos_for_spilling.
8938         (ira_sort_regnos_for_alter_reg): Don't setup members
8939         {first,next}_coalesced_allocno.
8940         (color): Remove allocating and freeing removed_splay_allocno_vec.
8941         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8942         prohibited_class_mode_regs.
8943
8944         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8945         formatting.
8946         (update_allocno_pressure_excess_length): Use pressure classes.
8947         (inc_register_pressure, dec_register_pressure): Check for pressure
8948         class.
8949         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8950         pressure class.  Use ira_reg_class_nregs instead of
8951         ira_reg_class_max_nregs.
8952         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8953         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8954         (single_reg_class): Use ira_reg_class_nregs instead of
8955         ira_reg_class_max_nregs.
8956         (process_bb_node_lives): Use pressure classes.
8957
8958         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8959         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8960         (change_loop): Use pressure classes.
8961         (modify_move_list): Call ira_set_allocno_class instead of
8962         ira_set_allocno_cover_class.
8963
8964         * ira-build.c: Remove mentioning cover classes from the file.  Use
8965         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8966         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8967         ALLOCNO_UPDATED_CLASS_COST instead of
8968         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8969         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8970         (ira_create_allocno): Remove initialization of
8971         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8972         ALLOCNO_COLORABLE_P.
8973         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8974         Update conflict regs for the objects.
8975         (create_cap_allocno): Remove assert.  Don't propagate
8976         ALLOCNO_AVAILABLE_REGS_NUM.
8977         (ira_free_allocno_costs): New function.
8978         (finish_allocno): Change a part of code into call of
8979         ira_free_allocno_costs.
8980         (low_pressure_loop_node_p): Use pressure classes.
8981         (object_range_compare_func): Don't compare classes.
8982         (setup_min_max_conflict_allocno_ids): Ditto.
8983
8984         * loop-invariant.c: Remove mentioning cover classes from the file.
8985         Use ira_pressure_classes and ira_pressure_classes_num instead of
8986         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
8987         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8988         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8989         Use reg_allocno_class instead of reg_cover_class.
8990         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8991         STACK_REG_COVER_CLASS.
8992         (get_regno_cover_class): Rename to get_regno_pressure_class.
8993         (move_loop_invariants): Initialize and finalize regstat.
8994
8995         * ira.c: Remove mentioning cover classes from the file.  Add
8996         comments about coloring without cover classes.  Use ALLOCNO_CLASS
8997         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8998         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8999         setup_class_subset_and_memory_move_costs.
9000         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9001         (setup_cover_and_important_classes): Rename to
9002         setup_allocno_and_important_classes.
9003         (setup_class_translate_array): New.
9004         (setup_class_translate): Call it for allocno and pressure classes.
9005         (cover_class_order): Rename to allocno_class_order.
9006         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9007         of ira_class_translate.
9008         (reorder_important_classes): Set up ira_important_class_nums.
9009         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9010         (print_class_cover): Rename to print_classes.  Add parameter.
9011         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9012         Print pressure classes too.
9013         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9014         setup_reg_subclasses.
9015         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9016         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9017         (setup_prohibited_class_mode_regs): Use
9018         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9019         (clarify_prohibited_class_mode_regs): New function.
9020         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9021         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9022         (ira_init_once): Initialize them.
9023         (free_register_move_costs): Process them.
9024         (ira_init): Move calls of find_reg_classes and
9025         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9026         Call clarify_prohibited_class_mode_regs.
9027         (ira_no_alloc_reg): Remove.
9028         (too_high_register_pressure_p): Use pressure classes.
9029
9030         * sched-deps.c: Remove mentioning cover classes from the file.
9031         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9032         ira_pressure_classes and ira_pressure_classes_num instead of
9033         ira_reg_class_cover_size and ira_reg_class_cover.
9034         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9035         sched_regno_pressure_class instead of sched_regno_cover_class.
9036         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9037         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9038
9039         * ira.h: Add 2010 to Copyright.
9040         (ira_no_alloc_reg): Remove external.
9041         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9042         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9043         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9044         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9045         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9046         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9047         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9048         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9049         x_ira_no_alloc_regs.
9050         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9051         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9052         ira_allocno_classes_num and ira_allocno_classes.
9053         (ira_class_translate): Rename to ira_allocno_class_translate.
9054         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9055         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9056         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9057         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9058         (ira_no_alloc_regs): New.
9059
9060         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9061         classes from the file.  Use ALLOCNO_CLASS instead of
9062         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9063         ALLOCNO_COVER_CLASS_COST.
9064         (regno_cover_class): Rename to regno_aclass.
9065         (record_reg_classes): Use ira_reg_class_subunion instead of
9066         ira_reg_class_union.
9067         (record_address_regs): Check overflow.
9068         (scan_one_insn): Ditto.
9069         (print_allocno_costs): Print total mem cost fore regional allocation.
9070         (print_pseudo_costs): Use REG_N_REFS.
9071         (find_costs_and_classes): Use classes intersected with them on the
9072         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9073         ira_reg_class_union.  Use ira_allocno_class_translate and
9074         regno_aclass instead of ira_class_translate and regno_cover_class.
9075         Modify code for finding regno_aclass.  Setup preferred classes for
9076         the next pass.
9077         (setup_allocno_cover_class_and_costs): Rename to
9078         setup_allocno_class_and_costs.  Use regno_aclass instead of
9079         regno_cover_class.  Use ira_set_allocno_class instead of
9080         ira_set_allocno_cover_class.
9081         (init_costs, finish_costs): Use regno_aclass instead of
9082         regno_cover_class.
9083         (ira_costs): Use setup_allocno_class_and_costs instead of
9084         setup_allocno_cover_class_and_costs.
9085         (ira_tune_allocno_costs_and_cover_classes): Rename to
9086         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9087         by processing objects.  Use ira_reg_class_max_nregs instead of
9088         ira_reg_class_nregs.
9089
9090         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9091
9092         * sched-int.h: Remove mentioning cover classes from the file.
9093         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9094
9095         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9096         classes from the file.
9097         (struct reg_pref): Rename coverclass into allocnoclass.
9098         (reg_cover_class): Rename to reg_allocno_class.
9099
9100         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9101
9102         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9103
9104         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9105
9106         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9107
9108         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9109
9110         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9111
9112         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9113
9114         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9115
9116         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9117
9118         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9119
9120         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9121         (i386_ira_cover_classes): Ditto.
9122
9123         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9124
9125         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9126
9127         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9128
9129         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9130
9131         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9132
9133         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9134
9135         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9136         (mips_ira_cover_classes): Ditto.
9137
9138         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9139
9140         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9141
9142         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9143
9144         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9145
9146         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9147
9148         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9149         (IRA_COVER_CLASSES_VSX): Ditto.
9150
9151         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9152         (rs6000_ira_cover_classes): Ditto.
9153
9154         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9155
9156         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9157
9158         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9159
9160         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9161
9162         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9163
9164         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9165
9166         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9167
9168         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9169
9170         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9171
9172         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9173
9174 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9175
9176         PR debug/48253
9177         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9178         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9179         dw_fde_unlikely_section_end_label, cold_in_std_section,
9180         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9181         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9182         fields.
9183         (output_fde): Use dw_fde_second_{begin,end} if second is
9184         true, otherwise dw_fde_{begin,end}.
9185         (output_call_frame_info): Test dw_fde_second_begin != NULL
9186         instead of dw_fde_switched_sections.
9187         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9188         fields, initialize new fields.  Initialize in_std_section
9189         unconditionally from the first partition.
9190         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9191         dw_fde_second_begin is non-NULL.
9192         (dwarf2out_switch_text_section): Stop initializing removed
9193         dw_fde_struct fields, initialize new fields, initialize
9194         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9195         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9196         (struct var_loc_list_def): Add last_before_switch field.
9197         (arange_table, arange_table_allocated, arange_table_in_use,
9198         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9199         (size_of_aranges): Count !in_std_section and !second_in_std_section
9200         hunks in fdes, instead of looking at arange_table_in_use.
9201         (output_aranges): Add aranges_length argument, don't call
9202         size_of_aranges here.  Instead of using aranges_table*
9203         emit ranges for fdes when !in_std_section resp.
9204         !second_in_std_section.
9205         (dw_loc_list): Break ranges crossing section switch.
9206         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9207         use dw_fde_second_end instead of dw_fde_end as end of last range.
9208         (gen_subprogram_die): Don't call add_arange.  Use
9209         dw_fde_{begin,end} for first partition and if switched
9210         section dw_fde_second_{begin,end} for the second.
9211         (var_location_switch_text_section_1,
9212         var_location_switch_text_section): New functions.
9213         (dwarf2out_begin_function): Initialize cold_text_section even
9214         when function_section () isn't text_section.
9215         (prune_unused_types): Don't walk arange_table.
9216         (dwarf2out_finish): Don't needlessly test
9217         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9218         If info_section_emitted, call size_of_aranges and if it indicates
9219         non-empty .debug_aranges, call output_aranges with the computed
9220         size.  Stop using removed dw_fde_struct fields, use
9221         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9222         for second.
9223
9224         PR debug/48203
9225         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9226         create ENTRY_VALUE if incoming or address of incoming's MEM
9227         is a hard REG.
9228         * dwarf2out.c (mem_loc_descriptor): Don't emit
9229         DW_OP_GNU_entry_value of DW_OP_fbreg.
9230         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9231         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9232         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9233         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9234         ENTRY_VALUE_EXPs.
9235         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9236         is a REG_P or MEM_P with REG_P address, compute hash directly
9237         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9238         (preserve_only_constants): Don't clear VALUES forwaring
9239         ENTRY_VALUE to some other VALUE.
9240
9241 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
9242
9243         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9244         instead of GEN_INT.
9245
9246 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9247
9248         * cfgexpand.c (expand_gimple_cond): Always set the source location and
9249         block before expanding the statement.
9250         (expand_gimple_stmt_1): Likewise.  Set them here...
9251         (expand_gimple_stmt): ...and not here.  Tidy.
9252         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9253         unknown.
9254
9255 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9256
9257         * Makefile.in: New rule for cprop.o.
9258         * gcse.c: Move constant/copy propagation to cprop.c.
9259         (compute_local_properties): Only handle expression tables.
9260         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9261         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9262         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9263         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9264         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9265         compute_cprop_data, find_used_regs, try_replace_reg,
9266         find_avail_set, cprop_jump, constprop_register, cprop_insn,
9267         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9268         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9269         find_bypass_set, reg_killed_on_edge, bypass_block,
9270         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9271         execute_rtl_cprop, pass_rtl_cprop): Move to...
9272         * cprop.c: ...here.  New file, constant/copy propagation for RTL
9273         moved from gcse.c to here with minor cleanups in duplicated code.
9274
9275 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9276
9277         * config/i386/i386.c (flag_opts): Fix a typo in
9278         -mavx256-split-unaligned-store.
9279
9280 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9281
9282         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9283         LIBCALL_VALUE): Remove macros.
9284         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9285         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9286         (h8300_function_value, h8300_libcall_value,
9287         h8300_function_value_regno_p): New functions.
9288
9289 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9290
9291         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9292
9293 2011-03-28  Jeff Law  <law@redhat.com>
9294
9295         * tree-ssa-threadupdate.c (redirect_edges): Call
9296         create_edge_and_update_destination_phis as needed.
9297         (create_edge_and_update_destination_phis): Accept new BB argument.
9298         All callers updated.
9299         (thread_block): Do not update the profile when threading around
9300         intermediate blocks.
9301         (thread_single_edge): Likewise.
9302         (determine_bb_domination_status): If BB is not a successor of the
9303         loop header, return NONDOMINATING.
9304         (register_jump_thread): Note when we register a jump thread around
9305         an intermediate block.
9306         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9307         (thread_across_edge): Use it.
9308
9309 2011-03-28  Tristan Gingold  <gingold@adacore.com>
9310
9311         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9312         when for_return is 2.
9313
9314 2011-03-28  Jeff Law  <law@redhat.com>
9315
9316         * var-tracking.c (canonicalize_values_mark): Delete unused
9317         lhs assignment.
9318         (canonicalize_values_star, set_variable_part): Likewise.
9319         (clobber_variable_part, delete_variable_part): Likewise.
9320
9321 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9322
9323         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9324
9325 2011-03-28  Martin Jambor  <mjambor@suse.cz>
9326
9327         * tree-inline.c (expand_call_inline): Do not check that destination
9328         node is analyzed.
9329         (optimize_inline_calls): Assert that destination node is analyzed.
9330         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9331         not call tree_lowering_passes.
9332         * cgraph.h (cgraph_analyze_function): Declare.
9333         * cgraphunit.c (cgraph_analyze_function): Make public.
9334
9335 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
9336
9337         * config/sparc/sparc-opts.h: New.
9338         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9339         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9340         (sparc_option_override): Store processor_type enumeration rather
9341         than string in cpu_default.  Remove name and enumeration from
9342         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
9343         without using sparc_select.  Use target_flags_explicit instead of
9344         fpu_option_set.
9345         * config/sparc/sparc.h (enum processor_type): Move to
9346         sparc-opts.h.
9347         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9348         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9349         HeaderInclude entry.
9350         (mcpu=, mtune=): Use Var and Enum.
9351         (sparc_processor_type): New Enum and EnumValue entries.
9352
9353 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9354             Iain Sandoe  <iains@gcc.gnu.org>
9355
9356         PR target/48245
9357         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9358
9359 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9360
9361         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9362         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9363         Insert new statements at it in lieu of STMT.
9364         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9365         * tree-vect-stmts.c (vectorizable_store): Likewise.
9366         (vectorizable_load): Likewise.
9367
9368 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9371         (divtf3): Ditto.
9372         (multf3): Ditto.
9373         (subtf3): Ditto.
9374
9375 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9376
9377         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9378         unaligned 256bit load/store.
9379         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9380         (*avx_movdqu<avxmodesuffix>): Likewise.
9381
9382 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9383
9384         PR target/48288
9385         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9386         * config/pa/pa.md (iordi3): Use new predicate in expander.
9387         (iorsi3): Likewise.
9388
9389 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
9390
9391         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9392         FUNCTION_VALUE_REGNO_P): Remove macros.
9393         * config/mips/mips-protos.h (mips_function_value): Remove.
9394         * config/mips/mips.c (mips_function_value): Rename to...
9395         (mips_function_value_1): ... this. Make static.  Handle receiving
9396         the function type in 'fn_decl_or_type' argument.
9397         (mips_function_value, mips_libcall_value,
9398         mips_function_value_regno_p): New function.
9399         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9400         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9401
9402 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9403
9404         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9405         and -mavx256-split-unaligned-store.
9406         (ix86_option_override_internal): Split 32-byte AVX unaligned
9407         load/store by default.
9408         (ix86_avx256_split_vector_move_misalign): New.
9409         (ix86_expand_vector_move_misalign): Use it.
9410
9411         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9412         -mavx256-split-unaligned-store.
9413
9414         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9415         256bit load/store.  Generate unaligned store on misaligned memory
9416         operand.
9417         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9418         256bit load/store.
9419         (*avx_movdqu<avxmodesuffix>): Likewise.
9420
9421         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9422         -mavx256-split-unaligned-store.
9423
9424 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9425
9426         PR target/38598
9427         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9428         Update commentary.
9429
9430 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9431
9432         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9433         opno arguments with an expand_operand.  Use create_input_operand.
9434         (mips_prepare_builtin_target): Delete.
9435         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9436         functions.
9437         (mips_expand_builtin_direct): Use create_output_operand and
9438         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
9439         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
9440         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9441
9442 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
9443
9444         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9445         function.
9446         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9447
9448 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9449
9450         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9451         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
9452         basic blocks and call commit_edge_insertions directly.
9453         (fixup_abnormal_edges): Move from here to...
9454         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
9455         on the edges and return whether some have actually been inserted.
9456         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9457         compensation code.
9458
9459 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
9460
9461         PR rtl-optimization/48144
9462         * sel-sched-ir.c (merge_history_vect): Factor out from ...
9463         (merge_expr_data): ... here.
9464         (av_set_intersect): Rename to av_set_code_motion_filter.
9465         Update all callers.  Call merge_history_vect when an expression
9466         is found in both sets.
9467         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9468
9469 2011-03-26  Alan Modra  <amodra@gmail.com>
9470
9471         * config/rs6000/predicates.md (word_offset_memref_op): Handle
9472         cmodel medium addresses.
9473         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9474         64-bit gpr loads and stores.
9475         (rs6000_secondary_reload_ppc64): New function.
9476         * config/rs6000/rs6000-protos.h: Declare it.
9477         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9478
9479 2011-03-26  Alan Modra  <amodra@gmail.com>
9480
9481         PR target/47487
9482         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9483         GNU Go in traceback table.
9484
9485 2011-03-25  Richard Henderson  <rth@redhat.com>
9486
9487         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9488         if there are exactly 6 operands.
9489         (set_storage_via_setmem): Similarly.
9490
9491 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9492
9493         * collect2.c (write_c_file_stat): Handle backslash
9494         as right-hand directory separator.
9495         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9496         checking just for slash.
9497         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9498         instead of checking for trailing slash.
9499         * gcc.c (record_temp_file): Use filename_cmp instead
9500         of strcmp.
9501         (do_spec_1): Likewise.
9502         (replace_outfile_spec_function): Likewise.
9503         (is_directory): Use filename_ncmp instead of strncmp.
9504         (print_multilib_info): Likewise.
9505         * gcov.c (find_source): Use filename_cmp instead
9506         instead of strcmp.
9507         (make_gcov_file_name): Fix order of slash/backslash
9508         checks.
9509         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9510         (add_standard_paths): Likewise.
9511         * mips-tfile.c (saber_stop): Handle backslash.
9512         * prefix.c (update_path): Use filename_ncmp instead of
9513         strncmp.
9514         * profile.c (output_location): Use filename_cmp instead
9515         of strcmp.
9516         * read-md.c (handle_toplevel_file): Handle backslash.
9517         * tlink.c (frob_extension):  Likewise.
9518         * tree-cfg.c (same_line_p): Use filename_cmp instead of
9519         strcmp.
9520         * tree-dump.c (dequeue_and_dump): Handle backslash.
9521         * tree.c (get_file_function_name): Likewise.
9522         * gengtype.c (read_input_list): Likewise.
9523         (get_file_realbasename): Likewise.
9524         (get_output_file_with_visibility): Use filename_cmp
9525         instead of strcmp.
9526
9527 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
9528
9529         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9530         case to VFPv1.
9531
9532 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9533
9534         * fold-const.c (expr_location_or): New function.
9535         (fold_truth_not_expr): Call it.
9536
9537 2011-03-25  Jeff Law  <law@redhat.com>
9538
9539         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9540         va_end.
9541         * c-family/c-common.c (def_fn_type): Likewise.
9542         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9543         * emit-rtl.c (gen_rtvec): Likewise.
9544         * lto/lto-lang.c (def_fn_type): Likewise.
9545
9546 2011-03-25  Richard Guenther  <rguenther@suse.de>
9547
9548         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9549         also generate copies.
9550         (fini_copy_prop): Handle constant values properly.
9551
9552 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
9553
9554         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9555         mode size instead of bitsize with DWARF2_ADDR_SIZE.
9556         (hash_loc_operands, compare_loc_operands): Handle
9557         DW_OP_GNU_entry_value.
9558
9559 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9560
9561         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9562         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9563         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9564         comment and use macro TARGET_64BIT_MS_ABI instead.
9565         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9566         and change default behavior for 32-bit MS_ABI.
9567         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9568         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9569         32-bit, too.
9570         (ix86_cfun_abi): Likewise.
9571         (ix86_maybe_switch_abi): Adjust comment.
9572         (init_cumulative_args): Check for bit-ness in MS_ABI case.
9573         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9574         instead of checking for SYSV_ABI.
9575         (ix86_nsaved_sseregs): Likewise.
9576         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9577         to 16 bytes.
9578         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9579         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9580         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9581         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9582         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9583
9584 2011-03-25  Richard Guenther  <rguenther@suse.de>
9585
9586         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9587         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9588         (verify_gimple): Remove.
9589         * tree-cfg.c (verify_gimple_call): Merge verification
9590         from verify_stmts.
9591         (verify_gimple_phi): Merge verification from verify_stmts.
9592         (verify_gimple_label): New function.
9593         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9594         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9595         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9596         (verify_stmts): Rename to verify_gimple_in_cfg.
9597         (verify_gimple_in_cfg): New function.
9598         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9599         * tree-ssa.c (verify_ssa): Likewise.
9600         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9601
9602 2011-03-25  Richard Guenther  <rguenther@suse.de>
9603
9604         * passes.c (init_optimization_passes): Add FRE pass after
9605         early SRA.
9606
9607 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
9608             Andrew Stubbs  <ams@codesourcery.com>
9609
9610         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9611         for Cortex-A8.
9612         (arm_movdi_vfp_cortexa8): New pattern.
9613         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9614         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9615         instructions when tuning for Cortex-A8.  Set attribute "arch".
9616         * config/arm/arm.md: Move include arm-tune.md up a bit.
9617         (define_attr "arch"): Add "onlya8" and "nota8" values.
9618         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9619
9620 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9621
9622         PR bootstrap/48282
9623         Revert:
9624         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9625
9626         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9627         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9628         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9629         * passes.c (init_optimization_passes): Move
9630         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9631
9632 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9633
9634         * c-typeck.c (comptypes_internal): Replace target
9635         hook call of comp_type_attributes by version in tree.c file.
9636         * gimple.c (gimple_types_compatible_p_1): Likewise.
9637         * tree-ssa.c (useless_type_conversion_p): Likewise.
9638         * tree.c (build_type_attribute_qual_variant): Likewise.
9639         (attribute_value_equal): New static helper function.
9640         (comp_type_attributes): New function.
9641         (merge_attributes): Use attribute_value_equal for comparison.
9642         (attribute_list_contained): Likewise.
9643         * tree.h (comp_type_attributes): New prototype.
9644
9645 2011-03-25  Richard Guenther  <rguenther@suse.de>
9646
9647         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9648         of complex types at -O0.
9649         (verify_gimple_assign_binary): Likewise.
9650         (verify_gimple_assign_ternary): Likewise.
9651
9652 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9653
9654         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9655         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9656
9657 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9658
9659         PR debug/48041
9660         * dwarf2out.c (output_abbrev_section): Only write table when
9661         abbrev_die_table_in_use > 1.
9662
9663 2011-02-24  Richard Henderson  <rth@redhat.com>
9664
9665         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9666         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9667         (alpha_expand_unaligned_load_words): Use extql.
9668         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9669         (emit_insxl): Handle all modes for consistency.
9670
9671 2011-02-24  Richard Henderson  <rth@redhat.com>
9672
9673         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9674         (alpha_expand_unaligned_load): Likewise.
9675         (alpha_expand_unaligned_store): Likewise.
9676         (alpha_expand_unaligned_load_words): Likewise.
9677         (alpha_expand_unaligned_store_words): Likewise.
9678         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9679         (alpha_split_lock_test_and_set_12): Likewise.
9680         (print_operand, alpha_fold_builtin_extxx): Likewise.
9681         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9682         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9683         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9684         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9685         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9686         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9687         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9688         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9689         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9690         (extwl, extll, extql): Similarly.
9691         (inswh, inslh, insqh): Similarly.
9692         (mskbl, mskwl, mskll, mskql): Similarly.
9693         (mskwh, msklh, mskqh): Similarly.
9694
9695 2011-02-24  Richard Henderson  <rth@redhat.com>
9696
9697         * config/alpha/alpha.md (attribute isa): Add er, ner.
9698         (attribute enabled): Handle them.
9699         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9700
9701 2011-02-24  Richard Henderson  <rth@redhat.com>
9702
9703         * config/alpha/alpha.md (attribute isa): Add vms.
9704         (attribute enabled): Handle it.
9705         (*movsf): Merge *movsf_{nofix,fix,nofp}.
9706         (*movdf): Merge *movdf_{nofix,fix,nofp}.
9707         (*movtf): Rename from *movtf_internal for consistency.
9708         (*movsi): Merge with *movsi_nt_vms.
9709         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9710         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9711         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9712         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9713
9714 2011-02-24  Richard Henderson  <rth@redhat.com>
9715
9716         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9717         (extendqisi2, extendhisi2): Likewise.
9718         (extendqidi2): Simplify BWX/non-BWX expansions.
9719         (extendhidi2): Similarly.
9720
9721 2011-02-24  Richard Henderson  <rth@redhat.com>
9722
9723         * config/alpha/alpha.md (attribute isa): New.
9724         (attribute enabled): New.
9725         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9726         (zero_extendqisi2, zero_extendqidi2): Similarly.
9727         (zero_extendhisi2, zero_extendhidi2): Similarly.
9728         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9729
9730 2011-02-24  Richard Henderson  <rth@redhat.com>
9731
9732         * config/alpha/predicates.md (input_operand): Revert last change;
9733         update comment to mention 32-bit VMS rather than Windows.
9734
9735 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9736
9737         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9738         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9739         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9740         * passes.c (init_optimization_passes): Move
9741         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9742
9743 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9744
9745         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9746
9747 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9748
9749         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9750         correctly.
9751
9752 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
9753
9754         PR debug/48204
9755         * simplify-rtx.c (simplify_const_unary_operation): Call
9756         real_convert when changing mode class with FLOAT_EXTEND.
9757
9758 2011-03-24  Nick Clifton  <nickc@redhat.com>
9759
9760         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9761         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9762         * config/rx/rx.c (rx_option_override): Set align_jumps,
9763         align_loops and align_labels if not set by the user.
9764         (rx_align_for_label): New function.
9765         (rx_max_skip_for_label): New function.
9766         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9767         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9768         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9769         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9770         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9771
9772 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9773
9774         PR rtl-optimization/48263
9775         * optabs.c (expand_binop_directly): Reinstate convert_modes code
9776         and original commutative_p handling.  Use maybe_gen_insn.
9777
9778 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9779
9780         * reload.c (find_reloads_subreg_address): Add address_reloaded
9781         parameter and return true there if the full address has been
9782         reloaded.
9783         (find_reloads_toplev): Pass address_reloaded flag.
9784         (find_reloads_address_1): Don't use address_reloaded parameter.
9785
9786 2011-03-24  Jeff Law  <law@redhat.com>
9787
9788         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9789         unused variable "ann".
9790         (remove_unused_locals): Likewise.
9791
9792         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9793         statement.
9794
9795         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9796         after it is freed.
9797
9798 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9799
9800         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9801         for invalid symbolic addresses.
9802         (s390_secondary_reload): Don't use s390_check_symref_alignment for
9803         larl operands.
9804
9805 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9806
9807         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9808         the argument in calls to fold_truth_not_expr.
9809
9810 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9811
9812         * tree.c (record_node_allocation_statistics): New function.
9813         (make_node_stat, copy_node_stat, build_string): Call it.
9814         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9815         (build1_stat, build_omp_clause): Likewise.
9816
9817 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9818
9819         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9820         last commit.
9821
9822 2011-03-24  Richard Guenther  <rguenther@suse.de>
9823
9824         PR tree-optimization/48271
9825         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9826         blocks that still exist.
9827
9828 2011-03-24  Richard Guenther  <rguenther@suse.de>
9829
9830         PR tree-optimization/48270
9831         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9832         not free datarefs before ddrs.
9833
9834 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9835
9836         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9837         from the address built for a reference with variable offset.
9838
9839 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9840
9841         PR target/48237
9842         * config/i386/i386.md (*movdf_internal_rex64): Do not split
9843         alternatives that can be handled with movq or movabsq insn.
9844         (*movdf_internal): Disable for !TARGET_64BIT.
9845         (*movdf_internal_nointeger): Ditto.
9846         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9847
9848 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9849
9850         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9851         (FUNCTION_ARG_ADVANCE): Likewise.
9852         * tm.texi.in: Change references to them to hook references.
9853         * tm.texi: Regenerate.
9854         * targhooks.c (default_function_arg): Eliminate check for target macro.
9855         (default_function_incoming_arg): Likewise.
9856         (default_function_arg_advance): Likewise.
9857         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9858         (function_arg_advance): Likewise.
9859         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9860
9861 2011-03-24  Richard Guenther  <rguenther@suse.de>
9862
9863         PR middle-end/48269
9864         * tree-object-size.c (addr_object_size): Do not double-account
9865         for MEM_REF offsets.
9866
9867 2011-03-24  Diego Novillo  <dnovillo@google.com>
9868
9869         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9870         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9871         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9872         Update all users.
9873         (lto_input_string): Rename from input_string.  Make extern.
9874         Update all users.
9875         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9876         output_string_with_length.
9877         Output 0 to indicate a non-NULL string.  Update all callers to
9878         not emit 0.
9879         (lto_output_string): Rename from output_string.  Make extern.
9880         Update all users.
9881         (lto_output_decl_state_streams): Make extern.
9882         (lto_output_decl_state_refs): Make extern.
9883         * lto-streamer.h (lto_input_string): Declare.
9884         (lto_input_data_block): Declare.
9885         (lto_output_string): Declare.
9886         (lto_output_string_with_length): Declare.
9887         (lto_output_decl_state_streams): Declare.
9888         (lto_output_decl_state_refs): Declare.
9889
9890 2011-03-24  Richard Guenther  <rguenther@suse.de>
9891
9892         PR tree-optimization/46562
9893         * tree.c (build_invariant_address): New function.
9894         * tree.h (build_invariant_address): Declare.
9895         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9896         a renamed function moved ...
9897         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9898         Take valueization callback parameter.
9899         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9900         * gimple-fold.h: New file.
9901         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9902         (ccp_fold, fold_const_aggregate_ref,
9903         fold_ctor_reference, fold_nonarray_ctor_reference,
9904         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9905         get_base_constructor): Move ...
9906         * gimple-fold.c: ... here.
9907         (gimple_fold_stmt_to_constant_1): New function
9908         split out from ccp_fold.  Take a valueization callback parameter.
9909         Valueize all operands.
9910         (gimple_fold_stmt_to_constant): New wrapper function.
9911         (fold_const_aggregate_ref_1): New function split out from
9912         fold_const_aggregate_ref.  Take a valueization callback parameter.
9913         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9914         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9915         invariant POINTER_PLUS_EXPRs to invariant form.
9916         (vn_valueize): New function.
9917         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9918         * tree-vrp.c (vrp_valueize): New function.
9919         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9920         to fold statements to constants.
9921         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9922         function declarations.
9923         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9924         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9925
9926 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9927
9928         * config/h8300/predicates.md (jump_address_operand): Fix register
9929         mode check.
9930
9931 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9932
9933         * doc/invoke.texi (max-stores-to-sink): Document.
9934         * params.h (MAX_STORES_TO_SINK): Define.
9935         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9936         if either vectorization or if-conversion is disabled.
9937         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9938         tree-vect-data-refs.c vect_equal_offsets.
9939         (dr_equal_offsets_p): New function.
9940         (find_data_references_in_bb): Remove static.
9941         * tree-data-ref.h (find_data_references_in_bb): Declare.
9942         (dr_equal_offsets_p): Likewise.
9943         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9944         (vect_drs_dependent_in_basic_block): Update calls to
9945         vect_equal_offsets.
9946         (vect_check_interleaving): Likewise.
9947         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9948         (cond_if_else_store_replacement): Rename to...
9949         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9950         documentation.
9951         (cond_if_else_store_replacement): New function.
9952         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9953         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9954
9955 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9956
9957         PR target/46934
9958         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9959         to subtract lower bound instead of GEN_INT().
9960
9961 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9962
9963         PR other/48179
9964         PR other/48221
9965         PR other/48234
9966         * doc/extend.texi (Alignment): Move section to match order in TOC.
9967         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9968         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9969
9970 2011-03-23  Jeff Law  <law@redhat.com>
9971
9972         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9973         before removing the edge.
9974
9975         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9976         it may have been freed by redirect_branch_edge or
9977         redirect_edge_succ_nodup.
9978
9979 2011-03-23  Richard Guenther  <rguenther@suse.de>
9980
9981         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
9982         (check_va_list_escapes): Likewise.
9983         (check_all_va_list_escapes): Likewise.
9984
9985 2011-03-23  Richard Guenther  <rguenther@suse.de>
9986
9987         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9988         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9989         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9990         (alias.o): Likewise.
9991         (ipa-type-escape.o): Remove.
9992         (ipa-struct-reorg.o): Likewise.
9993         (GTFILES): Remove ipa-struct-reorg.c.
9994         * alias.c: Do not include ipa-type-escape.h.
9995         * tree-ssa-alias.c: Likewise.
9996         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9997         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9998         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9999         and ipa-type-escape passes.
10000         * tree-pass.h (pass_ipa_type_escape): Remove.
10001         (pass_ipa_struct_reorg): Likewise.
10002         * ipa-struct-reorg.h: Remove.
10003         * ipa-struct-reorg.c: Likewise.
10004         * ipa-type-escape.h: Likewise.
10005         * ipa-type-escape.c: Likewise.
10006         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10007         (--param struct-reorg-cold-struct-ratio): Likewise.
10008         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10009         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10010         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10011
10012 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10013
10014         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10015         cpu attribute value.
10016         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10017         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10018         * config/s390/s390.c (processor_flags_table): New constant array.
10019         (s390_handle_arch_option): Remove.
10020         (s390_handle_option): Remove s390_handle_arch_option invocations
10021         and OPT_mwarn_framesize_ handling.
10022         (s390_option_override): Remove s390_handle_arch_option invocation.
10023         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10024         warnings.
10025         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10026         * config/s390/s390.opt (s390_tune, s390_arch)
10027         (march=): Replace s390_arch_option enum and values with
10028         processor_type.  Set variable name to s390_arch.  Set
10029         initialization value.
10030         (mtune=): Replace s390_arch_option with processor_type.  Set
10031         variable name to s390_tune.  Set initialization value.
10032
10033 2011-03-23  Julian Brown  <julian@codesourcery.com>
10034
10035         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10036         accesses which are not naturally aligned.
10037
10038 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10039
10040         PR target/47553
10041         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10042
10043 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10044
10045         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10046         parameter from "int" to "enum insn_code".
10047         (expand_operand_type): New enum.
10048         (expand_operand): New structure.
10049         (create_expand_operand): New function.
10050         (create_fixed_operand, create_output_operand): Likewise
10051         (create_input_operand, create_convert_operand_to): Likewise.
10052         (create_convert_operand_from, create_address_operand): Likewise.
10053         (create_integer_operand): Likewise.
10054         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10055         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10056         (expand_insn, expand_jump_insn): Likewise.
10057         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10058         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10059         (expand_movstr, expand_builtin___clear_cache): Likewise.
10060         (expand_builtin_lock_release): Likewise.
10061         * explow.c (allocate_dynamic_stack_space): Likewise.
10062         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10063         and use the default handling in that case.
10064         * expmed.c (check_predicate_volatile_ok): Delete.
10065         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10066         (emit_cstore): Likewise.
10067         * expr.c (emit_block_move_via_movmem): Likewise.
10068         (set_storage_via_setmem, expand_assignment): Likewise.
10069         (emit_storent_insn, try_casesi): Likewise.
10070         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10071         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10072         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10073         (expand_twoval_unop, expand_twoval_binop): Likewise.
10074         (expand_unop_direct, emit_indirect_jump): Likewise.
10075         (emit_conditional_move, vector_compare_rtx): Likewise.
10076         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10077         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10078         (expand_sync_lock_test_and_set): Likewise.
10079         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10080         (emit_unop_insn): Likewise.
10081         (expand_copysign_absneg): Change icode to an insn_code.
10082         (create_convert_operand_from_type): New function.
10083         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10084         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10085         (expand_insn, expand_jump_insn): Likewise.
10086         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10087         than const_int_operand for operand 2.
10088
10089 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10090
10091         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10092         if possible.
10093
10094 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10095
10096         * emit-rtl.c (emit_pattern_before_noloc): New function.
10097         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10098         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10099         (emit_pattern_after_noloc): New function.
10100         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10101         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10102
10103 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10104
10105         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10106         (__ffsDI2): Likewise.
10107
10108 2011-03-22  Richard Henderson  <rth@redhat.com>
10109
10110         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10111         of !TARGET_ABI_OPEN_VMS.
10112         (alpha_trampoline_init, alpha_start_function): Likewise.
10113         (alpha_expand_epilogue, alpha_file_start): Likewise.
10114         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10115         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10116         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10117         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10118         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10119
10120 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10121
10122         * config/s390/s390-opts.h: New.
10123         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10124         s390_arch_flags, s390_warn_framesize, s390_stack_size,
10125         s390_stack_guard): Remove.
10126         (s390_handle_arch_option): Return void.  Take enum
10127         s390_arch_option value instead of string and searching array.
10128         (s390_handle_option): Don't assert that global structures are in
10129         use.  Access variables via opts pointer.  Use error_at.  Don't use
10130         sscanf for -mstack-guard= or -mstack-size=.  Update call to
10131         s390_handle_arch_option.
10132         (s390_option_override): Update call to s390_handle_arch_option.
10133         (s390_emit_prologue): Use %d format for s390_stack_size in
10134         diagnostic.  Use %wd for HOST_WIDE_INT.
10135         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10136         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10137         * config/s390/s390.opt (config/s390/s390-opts.h): New
10138         HeaderInclude entry.
10139         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10140         s390_arch_flags, s390_warn_framesize): New Variable entries.
10141         (s390_arch_option): New Enum and EnumValue entries.
10142         (march=): Use Enum instead of Var.
10143         (mstack-guard=, mstack-size=): Use UInteger and Var.
10144         (mtune=): Use Enum.
10145
10146 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10147
10148         * config/score/score.c (score_handle_option): Don't assert that
10149         global structures are in use.  Access target_flags via opts
10150         pointer.  Use value of -march= option to determine target_flags
10151         settings.
10152         * config/score/score.opt (march=): Use Enum.
10153         (score_arch): New Enum and EnumValue entries.
10154
10155 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10156
10157         * config/mep/mep.c (option_mtiny_specified): Remove.
10158         (mep_option_override): Move register handling for -mivc2 from
10159         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10160         instead of option_mtiny_specified.
10161         (mep_handle_option): Access target_flags via opts pointer.  Don't
10162         assert that global structures are in use.  Defer part of -mivc2
10163         handling and move it to mep_option_override.
10164         * config/mep/mep.opt (IVC2): New Mask entry.
10165         (mivc2): Use Var and Defer instead of Mask.
10166
10167 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10168
10169         * config/v850/v850-opts.h: New.
10170         * config/v850/v850.c (small_memory): Replace with
10171         small_memory_physical_max array.  Make that array static const.
10172         (v850_handle_memory_option): Take integer value of argument.  Take
10173         gcc_options pointer, option text and location.  Return void.
10174         Update for changes to small memory structures.
10175         (v850_handle_option): Access target_flags via opts pointer.  Don't
10176         assert that global structures are in use.  Update calls to
10177         v850_handle_memory_option.
10178         (v850_encode_data_area): Update references to small memory settings.
10179         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10180         (enum small_memory_type): Move to v850-opts.h.
10181         * config/v850/v850.opt (config/v850/v850-opts.h): New
10182         HeaderInclude entry.
10183         (small_memory_max): New Variable entry.
10184         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10185         (mtda, mzda): Likewise.
10186
10187 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10188
10189         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10190         pointer.  Don't assert that global structures are in use.
10191
10192 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10193
10194         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10195         via opts pointer.  Don't assert that global structures are in use.
10196
10197 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10198
10199         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10200         (munix=93): Use Var.
10201         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10202         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10203         * config/pa/pa-opts.h: New.
10204         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10205         (pa_handle_option): Don't assert that global structures are in
10206         use.  Access target_flags via opts pointer.  Don't handle
10207         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10208         OPT_munix_98 here.
10209         (pa_option_override): Handle deferred OPT_mfixed_range_.
10210
10211 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10212
10213         * config/mn10300/mn10300-opts.h: New.
10214         * config/mn10300/mn10300.c (mn10300_processor,
10215         mn10300_tune_string): Remove.
10216         (mn10300_handle_option): Don't assert that global structures are
10217         in use.  Access mn10300_processor via opts pointer.  Don't handle
10218         OPT_mtune_ here.
10219         * config/mn10300/mn10300.h (enum processor_type): Move to
10220         mn10300-opts.h.
10221         (mn10300_processor): Remove.
10222         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10223         HeaderInclude entry.
10224         (mn10300_processor): New Variable entry.
10225         (mtune=): Use Var.
10226
10227 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10228
10229         * config/microblaze/microblaze.c: Don't include opts.h.
10230         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10231         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10232         (mno-clearbss): Use Var and Warn.
10233
10234 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10235
10236         * config/m32r/m32r-opts.h: New.
10237         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10238         (m32r_handle_option): Don't assert that global structures are in
10239         use.  Access target_flags and m32r_cache_flush_func via opts
10240         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
10241         OPT_mno_flush_trap here.
10242         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10243         include of m32r-opts.h.
10244         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10245         HeaderInclude entry.
10246         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10247         (mmodel=): Use Enum and Var.
10248         (m32r_model): New Enum and EnumValue entries.
10249         (mno-flush-trap): Use Var.
10250         (msdata=): Use Enum and Var.
10251         (m32r_sdata): New Enum and EnumValue entries.
10252
10253 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10254
10255         * config/m32c/m32c.c: Don't include opts.h.
10256         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10257         m32c_handle_option): Remove.
10258         (m32c_option_override): Check global_options_set.x_target_memregs
10259         instead of target_memregs_set.
10260         * config/m32c/m32c.h (target_memregs): Remove.
10261         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10262         variable.
10263
10264 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10265
10266         * config/iq2000/iq2000-opts.h: New.
10267         * config/iq2000/iq2000.c: Don't include opts.h.
10268         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10269         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10270         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10271         HeaderInclude entry.
10272         (iq2000_tune): New Variable entry.
10273         (march=): Add comment.  Use Enum.
10274         (iq2000_arch): New Enum and EnumValue entries.
10275         (mcpu=): Use Enum and Var.
10276         (iq2000_tune): New Enum and EnumValue entries.
10277
10278 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10279
10280         * config/ia64/ia64-opts.h: New.
10281         * config/ia64/ia64.c (ia64_tune): Remove.
10282         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10283         here.  Use error_at.
10284         (ia64_option_override): Handle deferred OPT_mfixed_range_.
10285         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10286         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10287         HeaderInclude entry.
10288         (ia64_tune): New Variable entry.
10289         (mfixed-range=): Use Defer and Var.
10290         (mtune=): Use Enum and Var.
10291         (ia64_tune): New Enum and EnumValue entries.
10292
10293 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10294
10295         * config/frv/frv-opts.h: New.
10296         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10297         frv-opts.h.
10298         (frv_cpu_type): Remove.
10299         * config/frv/frv.c: Don't include opts.h.
10300         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10301         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10302         (frv_cpu_type): New Variable entry.
10303         (frv_cpu): New Enum and EnumValue entries.
10304
10305 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10306
10307         * config/cris/cris.c (cris_handle_option): Access target_flags via
10308         opts pointer.  Don't assert that global structures are in use.
10309         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10310         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10311
10312 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10313
10314         * config/bfin/bfin-opts.h: New.
10315         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10316         bfin_si_revision, bfin_workarounds): Remove.
10317         (bfin_cpus): Make static const.
10318         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10319         not bfin_lib_id_given.
10320         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
10321         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10322         pointer. Use error_at.  Don't assert that global structures are in use.
10323         * config/bfin/bfin.h: Include bfin-opts.h.
10324         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10325         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10326         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10327         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10328         entries.
10329
10330 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10331
10332         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10333         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10334         or -msoft-float here.
10335         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10336         -msoft-float and -mhard-float.
10337         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10338         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10339         msoft-float.
10340         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10341         -msoft-float.
10342         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10343         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10344         not mhard-float.
10345         (LIBGCC_SPEC): Don't handle -msoft-float.
10346         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10347         -mhard-float.
10348         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10349         msoft-float.
10350         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10351         -mfloat-abi=*, not -msoft-float and -mhard-float.
10352         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10353         -msoft-float.
10354         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10355         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10356         mhard-float and msoft-float.
10357         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10358         mfloat-abi=soft in comments, not mhard-float and msoft-float.
10359         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10360         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10361         mhard-float.
10362         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10363         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10364         msoft-float.
10365         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10366         not mhard-float.
10367         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10368         not msoft-float.
10369
10370 2011-03-22  Richard Henderson  <rth@redhat.com>
10371
10372         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10373         TARGET_ABI_WINDOWS_NT.
10374         (alpha_output_function_end_prologue): Likewise.
10375         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10376         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10377         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10378         (trap, *movsi_nt_vms): Likewise.
10379         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10380         (*tablejump_osf_nt_internal): Remove.
10381         * config/alpha/predicates.md (input_operand): Only test Pmode.
10382
10383 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10384
10385         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10386         via opts pointer.  Use error_at.  Don't assert that global
10387         structures are in use.
10388
10389 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10390
10391         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10392         (ix86_handle_option): Access ix86_isa_flags and
10393         ix86_isa_flags_explicit via opts pointer.  Don't assert that
10394         global structures are in use.
10395         (ix86_function_specific_save, ix86_function_specific_restore):
10396         Update ix86_isa_flags_explicit field name.
10397         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10398         (ix86_isa_flags_explicit): Rename TargetSave entry to
10399         x_ix86_isa_flags_explicit.
10400
10401 2011-03-22  Richard Henderson  <rth@redhat.com>
10402
10403         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10404         (alpha_option_override, direct_return): Likewise.
10405         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10406         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10407         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10408         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10409         (alpha_expand_epilogue, alpha_end_function): Likewise.
10410         (alpha_init_libfuncs): Likewise.
10411         (struct machine_function): Remove unicosmk members.
10412         (print_operand) ['t']: Remove.
10413         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10414         unicosmk_output_module_name, unicosmk_output_common,
10415         current_section_align, unicosmk_output_text_section_asm_op,
10416         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10417         unicosmk_section_type_flags, unicosmk_unique_section,
10418         unicosmk_asm_named_section, unicosmk_insert_attributes,
10419         unicosmk_output_align, unicosmk_defer_case_vector,
10420         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10421         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10422         unicosmk_output_ssib, unicosmk_add_call_info_word,
10423         unicosmk_extern_head, unicosmk_output_default_externs,
10424         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10425         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10426         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10427         * config/alpha/alpha-protos.h: Update.
10428         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10429         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10430         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10431         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10432         (*mulsi_se, mulvsi3): Likewise.
10433         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10434         (*divmodsi_internal, call, call_value, realign): Likewise.
10435         (moddi3, umoddi3): Likewise; remove duplicate expander.
10436         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10437         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10438         (*movdi_nofix): Remove r/U alternative.
10439         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10440         * config/alpha/constraints.md ("U"): Remove.
10441         * config/alpha/predicates.md (call_operand"): Don't test
10442         TARGET_ABI_UNICOSMK.
10443
10444 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10445
10446         * target.def (handle_option): Take gcc_options and
10447         cl_decoded_option pointers and location_t.
10448         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10449         * doc/tm.texi: Regenerate.
10450         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10451         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10452         * lto-opts.c (lto_reissue_options): Generate option structure for
10453         targetm.handle_option call.
10454         * opts.c (target_handle_option): Update call to
10455         targetm.handle_option.  Remove assertions about values now passed
10456         down to hook.
10457         * targhooks.c (default_target_handle_option): New.
10458         * targhooks.h (default_target_handle_option): Declare.
10459         * config/alpha/alpha.c: Include opts.h.
10460         (alpha_handle_option): Update to new hook interface.
10461         * config/arm/arm.c: Include opts.h.
10462         (arm_handle_option): Update to new hook interface.
10463         * config/arm/t-arm (arm.o): Update dependencies.
10464         * config/bfin/bfin.c: Include opts.h.
10465         (bfin_handle_option): Update to new hook interface.
10466         * config/cris/cris.c: Include opts.h.
10467         (cris_handle_option): Update to new hook interface.
10468         * config/frv/frv.c: Include opts.h.
10469         (frv_handle_option): Update to new hook interface.
10470         * config/i386/i386.c: Include opts.h.
10471         (ix86_handle_option): Update to new hook interface.
10472         (ix86_valid_target_attribute_inner_p): Generate option structure
10473         for call to ix86_handle_option.
10474         * config/i386/t-i386 (i386.o): Update dependencies.
10475         * config/ia64/ia64.c: Include opts.h.
10476         (ia64_handle_option): Update to new hook interface.
10477         * config/ia64/t-ia64 (ia64.o): Update dependencies.
10478         * config/iq2000/iq2000.c: Include opts.h.
10479         (iq2000_handle_option): Update to new hook interface.
10480         * config/m32c/m32c.c: Include opts.h.
10481         (m32c_handle_option): Update to new hook interface.
10482         * config/m32r/m32r.c: Include opts.h.
10483         (m32r_handle_option): Update to new hook interface.
10484         * config/m68k/m68k.c: Include opts.h.
10485         (m68k_handle_option): Update to new hook interface.
10486         * config/mep/mep.c: Include opts.h.
10487         (mep_handle_option): Update to new hook interface.
10488         * config/microblaze/microblaze.c: Include opts.h.
10489         (microblaze_handle_option): Update to new hook interface.
10490         * config/mips/mips.c: Include opts.h.
10491         (mips_handle_option): Update to new hook interface.
10492         * config/mn10300/mn10300.c: Include opts.h.
10493         (mn10300_handle_option): Update to new hook interface.
10494         * config/pa/pa.c: Include opts.h.
10495         (pa_handle_option): Update to new hook interface.
10496         * config/pdp11/pdp11.c: Include opts.h.
10497         (pdp11_handle_option): Update to new hook interface.
10498         * config/rs6000/rs6000.c: Include opts.h.
10499         (rs6000_handle_option): Update to new hook interface.
10500         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10501         * config/rx/rx.c: Include opts.h.
10502         (rx_handle_option): Update to new hook interface.
10503         * config/s390/s390.c: Include opts.h.
10504         (s390_handle_option): Update to new hook interface.
10505         * config/score/score.c: Include opts.h.
10506         (score_handle_option): Update to new hook interface.
10507         * config/sh/sh.c: Include opts.h.
10508         (sh_handle_option): Update to new hook interface.
10509         * config/sparc/sparc.c: Include opts.h.
10510         (sparc_handle_option): Update to new hook interface.
10511         * config/v850/v850.c: Include opts.h.
10512         (v850_handle_option): Update to new hook interface.
10513
10514 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10515
10516         * gcc.c (driver_unknown_option_callback): Only permit and save
10517         unknown -Wno- options.
10518         (driver_wrong_lang_callback): Save options directly instead of via
10519         driver_unknown_option_callback.
10520
10521 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10522
10523         * combine.c (simplify_set): Try harder to find the best CC mode when
10524         simplifying a nested COMPARE on the RHS.
10525
10526 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10527
10528         * config/alpha/gnu.h: Remove.
10529         * config/arc: Remove directory.
10530         * config/arm/netbsd.h: Remove.
10531         * config/arm/t-pe: Remove.
10532         * config/crx: Remove directory.
10533         * config/i386/netbsd.h: Remove.
10534         * config/m68hc11: Remove directory.
10535         * config/m68k/uclinux-oldabi.h: Remove.
10536         * config/mcore/mcore-pe.h: Remove.
10537         * config/mcore/t-mcore-pe: Remove.
10538         * config/netbsd-aout.h: Remove.
10539         * config/rs6000/gnu.h: Remove.
10540         * config/sh/sh-symbian.h: Remove.
10541         * config/sh/symbian-base.c: Remove.
10542         * config/sh/symbian-c.c: Remove.
10543         * config/sh/symbian-cxx.c: Remove.
10544         * config/sh/symbian-post.h: Remove.
10545         * config/sh/symbian-pre.h: Remove.
10546         * config/sh/t-symbian: Remove.
10547         * config/svr3.h: Remove.
10548         * config/vax/netbsd.h: Remove.
10549         * config.build: Don't handle i[34567]86-*-pe.
10550         * config.gcc: Remove handling of deprecations for most deprecated
10551         targets.
10552         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10553         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10554         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10555         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10556         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10557         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10558         Remove cases.
10559         * config.host: Don't handle i[34567]86-*-pe.
10560         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10561         (ASM_SPEC32): Don't handle -mcall-gnu.
10562         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10563         -mcall-gnu.
10564         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10565         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10566         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10567         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10568         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10569         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10570         conditional on SYMBIAN.
10571         * configure.ac: Don't handle powerpc*-*-gnu*.
10572         * configure: Regenerate.
10573         * doc/extend.texi (interrupt attribute): Don't mention CRX.
10574         * doc/install-old.texi (m6811, m6812): Don't mention.
10575         * doc/install.texi (arc-*-elf*): Don't document multilib option.
10576         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10577         (m68k-uclinuxoldabi): Don't mention.
10578         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10579         Remove.
10580         (-mcall-gnu): Remove.
10581         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10582         families): Remove constraint documentation.
10583
10584 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
10585
10586         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10587         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10588         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10589
10590 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10591
10592         PR target/48226
10593         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10594         vector when peeking at the next token for vector, don't expand the
10595         keywords.
10596
10597 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
10598
10599         * config/avr/avr-protos.h (expand_epilogue): Change prototype
10600         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10601         * config/avr/avr.c (init_cumulative_args)
10602         (avr_function_arg_advance): Use it.
10603         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10604         sibcall epilogues.
10605         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10606         (avr_function_ok_for_sibcall): ...this new function.
10607         (avr_lookup_function_attribute1): New static Function.
10608         (avr_naked_function_p, interrupt_function_p)
10609         (signal_function_p, avr_OS_task_function_p)
10610         (avr_OS_main_function_p): Use it.
10611         * config/avr/avr.md ("sibcall", "sibcall_value")
10612         ("sibcall_epilogue"): New expander.
10613         ("*call_insn", "*call_value_insn"): New insn.
10614         ("call_insn", "call_value_insn"): Remove
10615         ("call", "call_value", "epilogue"): Change expander to handle
10616         sibling calls.
10617
10618 2011-03-21  Nick Clifton  <nickc@redhat.com>
10619
10620         * doc/invoke.texi (Overall Options): Move closing brace to end of
10621         options list.
10622         (Optimization Options): Add missing @gol.
10623         (Directory Options): Likewise.
10624         (i386 and x86-64 Options): Likewise.
10625         (RS6000 and PowerPC Options): Likewise.
10626         (i386 and x86-64 Windows Options): Likewise.
10627         (V850 Options): Add text missing from descriptions.
10628
10629 2011-03-22  Richard Henderson  <rth@redhat.com>
10630
10631         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10632         (avr_incoming_return_addr_rtx): New.
10633         (emit_push_byte): New.
10634         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
10635         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
10636         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
10637         (emit_pop_byte): New.
10638         (expand_epilogue): Use it.  Pop frame pointer by bytes.
10639         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10640         (INCOMING_RETURN_ADDR_RTX): New.
10641         (INCOMING_FRAME_SP_OFFSET): New.
10642         (ARG_POINTER_CFA_OFFSET): New.
10643         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10644         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10645         (pophi): Remove.
10646
10647         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10648
10649 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10650
10651         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10652         (FUNCTION_ARG_ADVANCE): Likewise.
10653         * tm.texi.in: Change references to them to hook references.
10654         * tm.texi: Regenerate.
10655         * targhooks.c (default_function_arg): Eliminate check for target
10656         macro.
10657         (default_function_incoming_arg): Likewise.
10658         (default_function_arg_advance): Likewise.
10659         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10660         (function_arg_advance): Likewise.
10661         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10662
10663 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10664
10665         * tree.c (build_call_1): New function.
10666         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10667
10668 2011-03-22  Richard Guenther  <rguenther@suse.de>
10669
10670         PR tree-optimization/48228
10671         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10672         for single-arg PHIs.
10673
10674 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
10675
10676         PR rtl-optimization/48143
10677         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10678         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10679         sse2_cvtps2pd): Likewise.
10680
10681 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10682
10683         * recog.c (canonicalize_change_group): Use validate_unshare_change.
10684
10685 2011-03-22  Richard Guenther  <rguenther@suse.de>
10686
10687         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10688         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10689         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10690         and REALIGN_LOAD_EXPR.
10691         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10692         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10693         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10694         DOT_PROD_EXPR case ...
10695         (expand_expr_real_2): ... here.
10696         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10697         and REALIGN_LOAD_EXPR.
10698         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10699         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10700         (vect_create_epilog_for_reduction): Likewise.
10701         (vectorizable_reduction): Likewise.
10702         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10703         * tree-vect-stmts.c (vectorizable_load): Likewise.
10704
10705 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10706
10707         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10708
10709 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10710
10711         * config/s390/s390.c (s390_delegitimize_address): Fix offset
10712         handling for PLTOFF/GOTOFF.
10713
10714 2011-03-22  Nick Clifton  <nickc@redhat.com>
10715
10716         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10717         trailing backslash from the end of the macro definition.
10718
10719 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10720
10721         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10722         and PLT unspecs.
10723
10724 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
10725
10726         * expr.h (prepare_operand): Move to...
10727         * optabs.h (prepare_operand): ...here and change the insn code
10728         parameter from "int" to "enum insn_code".
10729         (insn_operand_matches): Declare.
10730         * expr.c (init_expr_target): Use insn_operand_matches.
10731         (compress_float_constant): Likewise.
10732         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10733         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10734         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10735         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10736         Likewise.
10737         (gen_cond_trap): Likewise.
10738         (prepare_operand): Likewise.  Change icode to an insn_code.
10739         (insn_operand_matches): New function.
10740         * reload.c (find_reloads_address_1): Use insn_operand_matches.
10741         * reload1.c (gen_reload): Likewise.
10742         * targhooks.c (default_secondary_reload): Likewise.
10743
10744 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10745
10746         * config/alpha/alpha.md (unspec): New define_c_enum.
10747         (unspecv): Ditto.
10748
10749 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10750
10751         PR debug/48214
10752         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10753         between a call and its CALL_ARG_LOCATION note.
10754
10755 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
10756
10757         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10758
10759 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR c/42544
10762         PR c/48197
10763         * c-common.c (shorten_compare): If primopN is first sign-extended
10764         to opN and then zero-extended to result type, set primopN to opN.
10765
10766 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
10767
10768         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10769         for barrier handlers.
10770
10771 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10772
10773         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10774         UNSPEC constants to be in the unspec enumeration, and redefine
10775         all UNSPECV constants to be in the unspecv enumeration, so that
10776         dumps print which unspec/unspec_volatile this is.
10777         * config/rs6000/vector.md (UNSPEC_*): Ditto.
10778         * config/rs6000/paired.md (UNSPEC_*): Ditto.
10779         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10780         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10781         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10782
10783         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10784         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10785         UNSPECV_LWSYNC, since these are used as unspec_volatile.
10786         * config/rs6000/sync.md (isync, lwsync): Ditto.
10787
10788 2011-03-21  Richard Guenther  <rguenther@suse.de>
10789
10790         * params.def (lto-min-partition): Fix typo.
10791
10792 2011-03-21  Richard Guenther  <rguenther@suse.de>
10793
10794         PR c/47939
10795         * c-decl.c (grokdeclarator): Drop to the main variant only
10796         for array types.  Drop flag_gen_aux_info check.
10797
10798 2011-03-21  Richard Guenther  <rguenther@suse.de>
10799
10800         PR translation/47911
10801         * params.def (lto-partitions): Fix typo.
10802         (lto-min-partition): Fix wording.
10803
10804 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
10805
10806         * config/rs6000/t-freebsd: Remove duplication from file.
10807
10808 2011-03-21  Richard Guenther  <rguenther@suse.de>
10809
10810         PR middle-end/47661
10811         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10812
10813 2011-03-21  Richard Guenther  <rguenther@suse.de>
10814
10815         PR lto/48210
10816         * params.def (lto-partitions): Require at least 1 partition.
10817
10818 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10819
10820         * gthr-solaris.h: Remove.
10821         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10822         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10823         (LIB_SPEC): Likewise.
10824         * config/sol2.opt (threads): Remove.
10825         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
10826         (sparc*-*-solaris2*): Likewise.
10827         * configure.ac (enable_threads): Enable solaris support.
10828         * configure: Regenerate.
10829         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
10830         * doc/install.texi (Configuration, --enable-threads=lib): Remove
10831         solaris.
10832
10833 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10834
10835         * config.gcc: Obsolete *-*-solaris2.8*.
10836         * doc/install.texi (Specific, *-*-solaris2*): Document it.
10837
10838 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10839
10840         PR bootstrap/48135
10841         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10842         reference.  Solaris 8 perl works.
10843
10844 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10845
10846         PR bootstrap/48135
10847         * doc/install.texi (Prerequisites): Move jar etc. up.
10848         Explain support library version requirements.
10849
10850 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10851
10852         PR bootstrap/48135
10853         * doc/install.texi (Prerequisites): Move Perl to build
10854         requirements.  Always necessary on Solaris 2 with Sun ld.
10855
10856 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10857
10858         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10859         binutils 2.21.
10860         (Specific, i?86-*-solaris2.[89]): Likewise.
10861         (Specific, i?86-*-solaris2.10): Likewise.
10862         (Specific, mips-sgi-irix6): Likewise.
10863         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10864         Update for binutils 2.21.
10865
10866 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10867
10868         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10869         Allow -fuse-linker-plugin for non-default plugin linker.
10870         * configure: Regenerate.
10871
10872 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10873
10874         PR bootstrap/48167
10875         * gengtype.c (files_rules): Added rule for cp/parser.h.
10876
10877 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10878
10879         PR target/48213
10880         * config/s390/s390.c (s390_delegitimize_address): Don't call
10881         lowpart_subreg if orig_x has BLKmode.
10882
10883 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10884
10885         PR target/12171
10886         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10887         * tree.h (attribute_spec): Add new member affects_type_identity.
10888         * attribs.c (empty_attribute_table): Adjust attribute_spec
10889         initializers.
10890         * config/alpha/alpha.c: Likewise.
10891         * config/arc/arc.c: Likewise.
10892         * config/arm/arm.c: Likewise.
10893         * config/avr/avr.c: Likewise.
10894         * config/bfin/bfin.c: Likewise.
10895         * config/crx/crx.c: Likewise.
10896         * config/darwin.h: Likewise.
10897         * config/h8300/h8300.c: Likewise.
10898         * config/i386/cygming.h: Likewise.
10899         * config/i386/i386.c: Likewise.
10900         * config/ia64/ia64.c: Likewise.
10901         * config/m32c/m32c.c: Likewise.
10902         * config/m32r/m32r.c: Likewise.
10903         * config/m68hc11/m68hc11.c: Likewise.
10904         * config/m68k/m68k.c: Likewise.
10905         * config/mcore/mcore.c: Likewise.
10906         * config/mep/mep.c: Likewise.
10907         * config/microblaze/microblaze.c: Likewise.
10908         * config/mips/mips.c: Likewise.
10909         * config/rs6000/rs6000.c: Likewise.
10910         * config/rx/rx.c: Likewise.
10911         * config/sh/sh.c: Likewise.
10912         * config/sol2.h: Likewise.
10913         * config/sparc/sparc.c: Likewise.
10914         * config/spu/spu.c: Likewise.
10915         * config/stormy16/stormy16.c: Likewise.
10916         * config/v850/v850.c: Likewise.
10917
10918 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10919
10920         * simplify-rtx.c (simplify_binary_operation_1): Handle
10921         (xor (and A B) C) case when B and C are both constants.
10922
10923 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10924
10925         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10926
10927 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10928
10929         PR bootstrap/48168
10930         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10931
10932 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10933
10934         PR rtl-optimization/48156
10935         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10936         assume df and df_lr are not NULL.
10937
10938 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10939
10940         PR debug/48023
10941         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10942         between a call and its CALL_ARG_LOCATION note.
10943
10944 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10945
10946         PR debug/48178
10947         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10948         between a call and its corresponding CALL_ARG_LOCATION note.
10949
10950 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10951
10952         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10953         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10954         * haifa-sched.c (setup_ref_regs): Ditto.
10955         * caller-save.c (add_used_regs_1): Ditto.
10956         * dse.c (look_for_hardregs): Ditto.
10957         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10958         * sched-rgn.c (check_live_1): Ditto.
10959
10960 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10961
10962         * c-decl.c (diagnose_mismatched_decls): Give an error for
10963         redefining a typedef with variably modified type.
10964
10965 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10966
10967         * c-decl.c (grokfield): Don't allow typedefs for structures or
10968         unions with no tag by default.
10969         * doc/extend.texi (Unnamed Fields): Update.
10970
10971 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10972
10973         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10974         Rewrite using indirect functions.
10975         (lwp_slwpcb): Ditto.
10976         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10977         (avx_vinsertf128<mode>): Ditto.
10978
10979 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10980
10981         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10982         unspecs.
10983
10984 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10985
10986         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
10987         splitting between a call and its corresponding CALL_ARG_LOCATION note.
10988
10989 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10990
10991         PR rtl-optimization/48170
10992         * gcse.c (hoist_code): Remove bogus asserts.
10993
10994 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
10995
10996         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10997         computation for prologue/epilogue.
10998
10999 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11000
11001         * Makefile.in (check-consistency): Remove.
11002
11003 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11004
11005         PR debug/48176
11006         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11007         arange_table_in_use is 0, but either text_section_used or
11008         cold_text_section_used is true.  Don't call it if
11009         !info_section_emitted.
11010
11011 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11012
11013         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11014         FUNCTION_VALUE_REGNO_P): Remove.
11015         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11016         Remove.
11017         * config/avr/avr.c (avr_ret_register): Make static inline.
11018         (avr_function_value_regno_p): New function.
11019         (avr_libcall_value): Make static. Add 'func' argument.
11020         (avr_function_value): Make static. Rename 'func' argument to
11021         'fn_decl_or_type', forward it to avr_libcall_value. Call
11022         avr_ret_register function instead of RET_REGISTER macro.
11023         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11024
11025 2011-03-18  Jason Merrill  <jason@redhat.com>
11026
11027         PR c++/23372
11028         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11029
11030 2011-03-18  Richard Guenther  <rguenther@suse.de>
11031
11032         * doc/install.texi (--enable-gold): Remove.
11033         (--with-plugin-ld): Document.
11034         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11035
11036 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11037
11038         PR middle-end/47790
11039         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11040         again after expansion changes.
11041
11042 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11043
11044         * combine.c (try_combine): Do simplification only call of
11045         subst() on i2 even when i1 is present. Update comments.
11046
11047 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11048
11049         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11050         and UNSPEC_PCREL_SYMOFF.
11051
11052 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11053
11054         * config/s390/s390.md: Use define_c_enum for the unspec constant
11055         definitions.
11056
11057 2011-03-18  Richard Henderson  <rth@redhat.com>
11058             Jakub Jelinek  <jakub@redhat.com>
11059
11060         PR bootstrap/48161
11061         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11062         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11063
11064 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11065
11066         PR middle-end/47725
11067         * combine.c (cant_combine_insn_p): Don't check zero/sign
11068         extended hard registers.
11069
11070 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11071
11072         PR middle-end/47725
11073         * combine.c (cant_combine_insn_p): Check zero/sign extended
11074         hard registers.
11075
11076 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11077
11078         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11079         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11080         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11081         Change return type to bool.
11082         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11083
11084 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11085
11086         PR debug/48163
11087         * var-tracking.c (prepare_call_arguments): If CALL target
11088         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11089         pc instead of looking it up using cselib_lookup and use
11090         Pmode for it if x has VOIDmode.
11091         * dwarf2out.c (gen_subprogram_die): If also both first and
11092         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11093
11094         PR debug/48163
11095         * function.c (assign_parms): For data.passed_pointer parms
11096         use MEM of data.entry_parm instead of data.entry_parm itself
11097         as DECL_INCOMING_RTL.
11098         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11099         also when passed and declared mode is the same, DECL_RTL
11100         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11101         a MEM too.
11102
11103 2011-03-16  Jeff Law  <law@redhat.com>
11104
11105         PR rtl-optimization/37273
11106         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11107         handle them like argument loads from stack slots.  Do not double
11108         count memory for memory constants and argument loads from stack slots.
11109
11110 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11111
11112         PR debug/48160
11113         * var-tracking.c (prepare_call_arguments): Check SUBREG.
11114
11115 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11116
11117         PR target/48171
11118         * config/i386/i386.opt: Add Save to -mavx and -mfma.
11119
11120 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11121
11122         PR bootstrap/48153
11123         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11124         if dwarf_strict.
11125         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11126         Clear call_arg_locations and call_arg_loc_last always.
11127
11128         PR middle-end/48152
11129         * var-tracking.c (prepare_call_arguments): If argument needs to be
11130         passed by reference, adjust argtype and mode.
11131
11132 2011-03-17  Richard Guenther  <rguenther@suse.de>
11133
11134         PR middle-end/48134
11135         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11136         a value make sure to fold the statement.
11137
11138 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11139
11140         PR target/43872
11141         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11142         return condition with !cfun->calls_alloca.
11143
11144 2011-03-17  Richard Guenther  <rguenther@suse.de>
11145
11146         PR bootstrap/48148
11147         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11148         origin for decls in other ltrans units.
11149         (input_varpool_node): Likewise.
11150
11151 2011-03-17  Richard Guenther  <rguenther@suse.de>
11152
11153         PR middle-end/48165
11154         * tree-object-size.c (compute_object_offset): Properly return
11155         the offset operand of MEM_REFs as sizetype.
11156
11157 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11158
11159         PR rtl-optimization/48141
11160         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11161         * dse.c: Include params.h.
11162         (active_local_stores_len): New variable.
11163         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11164         to NULL.
11165         (record_store, check_mem_read_rtx): Decrease it when removing
11166         from the chain.
11167         (scan_insn): Likewise.  Increase it when adding to chain, if it
11168         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11169         set active_local_stores to NULL before the addition.
11170         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11171
11172         PR rtl-optimization/48141
11173         * dse.c (record_store): If no positions are needed in an insn
11174         that cannot be deleted, at least unchain it from active_local_stores.
11175
11176 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11177
11178         PR debug/47510
11179         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11180         (lookup_type_die_strip_naming_typedef): ... here.
11181         (get_context_die): Use it.
11182         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11183         the anonymous struct named by the naming typedef.
11184
11185 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11186
11187         PR target/48154
11188         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11189         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11190
11191 2011-03-16  Jeff Law  <law@redhat.com>
11192
11193         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11194         check for operands of conditional.  Allow type to be a pointer.
11195
11196 2011-03-16  Richard Guenther  <rguenther@suse.de>
11197
11198         PR tree-optimization/48149
11199         * fold-const.c (fold_binary_loc): Fold
11200         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11201
11202 2011-03-16  Richard Guenther  <rguenther@suse.de>
11203
11204         PR tree-optimization/26134
11205         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11206         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11207         (non_rewritable_mem_ref_base): Handle complex type component
11208         accesses, constrain offsets for vector and complex extracts
11209         more properly.
11210
11211 2011-03-16  Richard Guenther  <rguenther@suse.de>
11212
11213         PR tree-optimization/48146
11214         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11215         operands avoiding the need for renaming.
11216
11217 2011-03-16  Richard Guenther  <rguenther@suse.de>
11218
11219         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11220         constant folding.  Move MEM_REF canonicalization first.
11221         Rely on fold_const_aggregate_ref for initializer folding.
11222         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11223
11224 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11225
11226         PR middle-end/48136
11227         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11228         arg0/arg1 or their arguments are always fold converted to matching
11229         types.
11230
11231         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11232         to nargs.
11233
11234 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11235
11236         PR lto/46944
11237         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11238         Handle in-tree gold.
11239         (ld_vers): Extract binutils version for gold.
11240         (gcc_cv_ld_hidden): Handle gold here.
11241         (gcc_cv_lto_plugin): Determine level of linker plugin support.
11242         * configure: Regenerate.
11243         * config.in: Regenerate.
11244         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11245         -fuse-linker-plugin otherwise.
11246         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
11247         (LINK_COMMAND_SPEC): Use it.
11248         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11249
11250 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11251
11252         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11253         * calls.c: Remove debug.h include.
11254         (emit_call_1): Don't call virtual_call_token debug hook.
11255         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11256         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11257         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11258         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11259         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11260         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11261         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11262         dwarf2out_virtual_call): Remove.
11263         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11264         copy_call_info and virtual_call hooks.
11265         (dwarf2out_init): Don't initialize vcall_insn_table,
11266         debug_dcall_section and debug_vcall_section.
11267         (prune_unused_types): Don't mark nodes from dcall_table.
11268         (dwarf2out_finish): Don't output dcall or vcall tables.
11269         * final.c (final_scan_insn): Don't call direct_call or
11270         virtual_call debug hooks.
11271         * debug.h (struct gcc_debug_hooks): Remove direct_call,
11272         virtual_call_token, copy_call_info and virtual_call hooks.
11273         (debug_nothing_uid): Remove prototype.
11274         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11275         copy_call_info and virtual_call hooks.
11276         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11277         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11278         * debug.c (do_nothing_debug_hooks): Likewise.
11279         (debug_nothing_uid): Remove.
11280         * doc/invoke.texi (-fenable-icf-debug): Remove.
11281         * common.opt (-fenable-icf-debug): Likewise.
11282
11283         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11284         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11285         call's MEM.  Handle functions returning aggregate through a hidden
11286         first pointer.  For virtual calls add clobbered pc to call arguments
11287         chain.
11288         * dwarf2out.c (gen_subprogram_die): Emit
11289         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11290         can't be emitted.
11291
11292         PR debug/45882
11293         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11294         * rtl.h (ENTRY_VALUE_EXP): Define.
11295         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11296         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11297         * print-rtl.c (print_rtx): Likewise.
11298         * gengtype.c (adjust_field_rtx_def): Likewise.
11299         * var-tracking.c (vt_add_function_parameter): Adjust
11300         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11301         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11302         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11303         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11304         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11305
11306         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11307         Call var_location debug hook even on CALL_INSNs.
11308         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11309         * rtl.def (ENTRY_VALUE): New.
11310         * dwarf2out.c: Include cfglayout.h.
11311         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11312         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11313         (struct call_arg_loc_node): New type.
11314         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11315         tail_call_site_count): New variables.
11316         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11317         DW_TAG_GNU_call_site_parameter.
11318         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11319         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11320         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11321         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11322         and DW_AT_GNU_all_source_call_sites.
11323         (mem_loc_descriptor): Handle ENTRY_VALUE.
11324         (add_src_coords_attributes): Don't add enything if
11325         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11326         (dwarf2out_abstract_function): Save and clear call_arg_location,
11327         call_site_count and tail_call_site_count around dwarf2out_decl call.
11328         (gen_call_site_die): New function.
11329         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11330         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11331         (dwarf2out_function_decl): Clear call_arg_locations,
11332         call_arg_loc_last, set call_site_count and tail_call_site_count
11333         to -1 and free block_map.
11334         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11335         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
11336         followed by any real instructions.
11337         (dwarf2out_begin_function): Set call_site_count and
11338         tail_call_site_count to 0.
11339         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11340         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11341         attempt to force a DIE for it and worst case remove the attribute.
11342         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11343         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11344         the decl itself.
11345         * var-tracking.c: Include tm_p.h.
11346         (vt_stack_adjustments): For calls call note_register_arguments.
11347         (argument_reg_set): New variable.
11348         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11349         ensure the VALUE is resolved.
11350         (call_arguments): New variable.
11351         (prepare_call_arguments): New function.
11352         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11353         (struct expand_loc_callback_data): Add ignore_cur_loc field.
11354         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11355         always use the best expression.
11356         (vt_expand_loc): Add ignore_cur_loc argument.
11357         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11358         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11359         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11360         note for all calls.
11361         (vt_add_function_parameter): Use cselib_lookup_from_insn.
11362         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11363         argument.  Don't call cselib_preserve_only_values and
11364         cselib_reset_table.
11365         (note_register_arguments): New function.
11366         (vt_initialize): Compute argument_reg_set.  Call
11367         vt_add_function_parameters before processing basic blocks instead of
11368         afterwards.  For calls call prepare_call_arguments before calling
11369         cselib_process_insn.
11370         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11371         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11372         (var-tracking.o): Depend on $(TM_P_H).
11373         * cfglayout.h (insn_scope): New prototype.
11374         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11375         * cfglayout.c (insn_scope): No longer static.
11376         * insn-notes.def (CALL_ARG_LOCATION): New.
11377         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11378         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11379         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11380         nothing for DECL_EXTERNAL BLOCK_VARS.
11381
11382 2011-03-16  Alan Modra  <amodra@gmail.com>
11383
11384         PR target/45844
11385         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11386         create invalid offset address for vsx splat insn.
11387         * config/rs6000/predicates.md (splat_input_operand): New.
11388         * config/rs6000/vsx.md (vsx_splat_*): Use it.
11389
11390 2011-03-15  Xinliang David Li  <davidxl@google.com>
11391
11392         PR c/47837
11393         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11394         (normalize_preds): New function.
11395         (is_use_properly_guarded): Normalize def predicates.
11396
11397 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11398
11399         PR target/46788
11400         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11401         in the output template.
11402
11403 2011-03-15  Richard Guenther  <rguenther@suse.de>
11404
11405         PR middle-end/47650
11406         * tree-pretty-print.c (dump_function_declaration): Properly
11407         dump unprototyped and varargs function types.
11408
11409 2011-03-15  Richard Guenther  <rguenther@suse.de>
11410
11411         PR tree-optimization/13954
11412         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11413         and friends.
11414
11415 2011-03-15  Richard Guenther  <rguenther@suse.de>
11416
11417         PR tree-optimization/48037
11418         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11419         selects into BIT_FIELD_REFs.
11420         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11421         vector select.
11422
11423 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
11424
11425         PR tree-optimization/48129
11426         * builtins.c (fold_builtin_snprintf): Convert to type of
11427         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11428         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11429
11430 2011-03-15  Richard Guenther  <rguenther@suse.de>
11431
11432         PR tree-optimization/41490
11433         * tree-ssa-dce.c (propagate_necessity): Handle returns without
11434         value but with VUSE.
11435         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11436         return statements.
11437         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11438         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11439         * tree-tailcall.c (find_tail_calls): Ignore returns.
11440
11441 2011-03-15  Richard Guenther  <rguenther@suse.de>
11442
11443         PR middle-end/48031
11444         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11445         or variable-indexed array accesses when in gimple form.
11446
11447 2011-03-15  Richard Guenther  <rguenther@suse.de>
11448
11449         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11450
11451 2011-03-15  Alan Modra  <amodra@gmail.com>
11452
11453         PR target/48032
11454         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11455         presume symbol_refs without a symbol_ref_decl are suitably
11456         aligned, nor other trees we may see here.  Handle anchor symbols.
11457         (legitimate_constant_pool_address_p): Comment.  Add mode param.
11458         Check cmodel=medium addresses.  Adjust all calls.
11459         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11460         creating cmodel=medium optimized access to locals.
11461         * config/rs6000/constraints.md (R): Pass QImode to
11462         legitimate_constant_pool_address_p.
11463         * config/rs6000/predicates.md (input_operand): Pass mode to
11464         legitimate_constant_pool_address_p.
11465         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11466         Update prototype.
11467
11468 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11469
11470         PR target/48053
11471         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11472         64-bit constants being loaded into registers other than GPRs such
11473         as loading 0 into a VSX register.
11474
11475 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11476
11477         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11478
11479 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11480
11481         PR middle-end/47917
11482         * builtins.c (fold_builtin_snprintf): New function.
11483         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11484         (fold_builtin_4): Likewise.
11485
11486         PR middle-end/38878
11487         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11488         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
11489         and C - X == X also strip nops from +/-/p+ operand.
11490         When optimizing -X == C, fold C to arg0's type.
11491
11492         PR debug/47946
11493         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11494         emit it as add_AT_int instead of add_AT_unsigned.
11495
11496 2011-03-14  Tom Tromey  <tromey@redhat.com>
11497
11498         * unwind-dw2.c: Include sys/sdt.h if it exists.
11499         (_Unwind_DebugHook): Use STAP_PROBE2.
11500         * config.in, configure: Rebuild.
11501         * configure.ac: Check for sys/sdt.h.
11502
11503 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
11504
11505         * config/i386/i386.md (ROUND_FLOOR): New constant.
11506         (ROUND_CEIL): Ditto.
11507         (ROUND_TRUNC): Ditto.
11508         (ROUND_MXCSR): Ditto.
11509         (ROUND_NO_EXC): Ditto.
11510         (rint<mode>2): Use new defines instead of numerical constants.
11511         (floor<mode>2): Ditto.
11512         (ceil<mode>2): Ditto.
11513         (btrunc<mode>2): Ditto.
11514         * config/i386/i386-builtin-types.def: Define ROUND function type
11515         aliases.
11516         * config/i386/i386.c (enum ix86_builtins): Add
11517         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11518         (struct builtin_description): Add
11519         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11520         (ix86_expand_sse_round): New static function.
11521         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11522         function types.
11523         (ix86_builtin_vectorized_function): Handle
11524         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11525
11526 2011-03-14  Tom Tromey  <tromey@redhat.com>
11527
11528         * c-parser.c (c_parser_asm_string_literal): Clear
11529         warn_overlength_strings.
11530
11531 2011-03-14  Tom Tromey  <tromey@redhat.com>
11532
11533         * c-parser.c (disable_extension_diagnostics): Save
11534         warn_overlength_strings.
11535         (restore_extension_diagnostics): Restore warn_overlength_strings.
11536
11537 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11538
11539         * BASE-VER: Change to 4.7.0.
11540
11541 2011-03-14  Richard Guenther  <rguenther@suse.de>
11542
11543         PR middle-end/48098
11544         * tree.c (build_vector_from_val): Adjust assert to requirements
11545         and reality.
11546
11547 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11548
11549         PR bootstrap/48102
11550         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11551
11552 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
11553
11554         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11555         terms of target_flags_explicit. Adjust copyright year.
11556
11557         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11558         * config/rs6000/t-freebsd: New file. Add override for
11559         LIB2FUNCS_EXTRA.
11560
11561 2011-03-13  Chris Demetriou  <cgd@google.com>
11562
11563         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11564         (-fno-diagnostics-show-option): this, to reflect current default.
11565         (-Werror=): Update text about -fno-diagnostics-show-option.
11566
11567 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
11568
11569         PR target/48053
11570         * config/rs6000/predicates.md (easy_vector_constant_add_self,
11571         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11572         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11573         mode is not V2DImode or V2DFmode.
11574         (vspltis_constant): Do not handle V2DImode and V2DFmode.
11575         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11576         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11577         registers to 0.
11578         (movdi_internal64): Likewise.
11579
11580 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
11581
11582         PR tree-optimization/47127
11583         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11584         parameter.
11585         (set_cloog_options): Same.
11586         (scop_to_clast): Same.
11587         (print_clast_stmt): Do not call cloog_state_malloc and
11588         cloog_state_free.
11589         (print_generated_program): Same.
11590         (gloog): Same.
11591         * graphite-clast-to-gimple.h (cloog_state): Declared.
11592         (scop_to_clast): Adjust declaration.
11593         * graphite.c (cloog_state): Defined here.
11594         (graphite_initialize): Call cloog_state_malloc.
11595         (graphite_finalize): Call cloog_state_free.
11596
11597 2011-03-11  Jason Merrill  <jason@redhat.com>
11598
11599         * attribs.c (lookup_attribute_spec): Take const_tree.
11600         * tree.h: Adjust.
11601
11602 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
11603
11604         * config/sparc/sparc.c (sparc_option_override): Use
11605         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11606
11607 2011-03-11  Richard Guenther  <rguenther@suse.de>
11608
11609         PR tree-optimization/48067
11610         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11611         multiplication result will be only used once on the target
11612         stmt.
11613
11614 2011-03-11  Richard Guenther  <rguenther@suse.de>
11615
11616         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11617
11618 2011-03-11  Richard Guenther  <rguenther@suse.de>
11619
11620         PR lto/48073
11621         * tree.c (find_decls_types_r): Do not walk types only reachable
11622         from IDENTIFIER_NODEs.
11623
11624 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11625
11626         PR middle-end/48044
11627         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11628         all vnode->force_output nodes as needed.
11629
11630 2011-03-11  Jason Merrill  <jason@redhat.com>
11631
11632         PR c++/48069
11633         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11634         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11635
11636 2011-03-11  Martin Jambor  <mjambor@suse.cz>
11637
11638         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11639         cgraph_node.
11640
11641 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11642
11643         PR tree-optimization/48063
11644         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11645         inline functions called once if !tree_can_inline_p (node->callers).
11646
11647 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11648
11649         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11650         extra_objs.
11651         * config/score/score3.c: Delete.
11652         * config/score/score3.h: Delete.
11653         * config/score/mul-div.S: Delete.
11654         * config/score/sfp-machine.h: Add new file.
11655         * config/score/constraints.md: Add new file.
11656         * config/score/t-score-softfp: Add new file.
11657         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11658         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11659         (score7_extra_constraint): Delete.
11660         (score7_option_override): Remove unused code.
11661         * config/score/score.c: Remove score3 and score5 define and code.
11662         * config/score/score.h: Remove score3 and score5 define and code.
11663         * config/score/score.md: Remove score3 template and unusual insn.
11664         * config/score/score.opt: Remove score3 and score5 options.
11665
11666 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11667
11668         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11669         when _HPUX_SOURCE is defined.
11670         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11671
11672 2011-03-10  Jason Merrill  <jason@redhat.com>
11673
11674         PR c++/48029
11675         * stor-layout.c (layout_type): Don't set structural equality
11676         on arrays of incomplete type.
11677         * tree.c (type_hash_eq): Handle comparing them properly.
11678
11679 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
11680
11681         PR debug/48043
11682         * config/s390/s390.c (s390_delegitimize_address): Make sure the
11683         result mode matches original rtl mode.
11684
11685 2011-03-10  Nick Clifton  <nickc@redhat.com>
11686
11687         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11688         (andsi3, andsi3_flags): Fix timings for three operand alternative.
11689
11690 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
11691
11692         PR rtl-optimization/47866
11693         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11694         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11695         if target wasn't scalar.
11696         * function.c (assign_stack_temp_for_type): Assert that neither
11697         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11698         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11699         macro.
11700         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11701
11702 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11703
11704         * config/s390/s390-protos.h (s390_label_align): New prototype.
11705         * config/s390/s390.c (s390_label_align): New function.
11706         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11707
11708 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11709
11710         PR target/47755
11711         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11712         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
11713         (output_vec_const_move): Ditto.
11714
11715 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
11716
11717         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11718         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11719         * config/mips/mips.c (mips_preferred_reload_class): Make static.
11720         Change 'rclass' argument and result type to reg_class_t.
11721         (TARGET_PREFERRED_RELOAD_CLASS): Define.
11722
11723 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
11724
11725         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11726         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11727         (TARGET_MEMORY_MOVE_COST): Define.
11728         (avr_register_move_cost, avr_memory_move_cost): New Functions.
11729
11730 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
11731
11732         PR debug/47881
11733         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11734         removed anything.
11735
11736         PR tree-optimization/48022
11737         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11738         for EQ/NE_EXPR.
11739
11740 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
11741
11742         PR debug/47991
11743         * var-tracking.c (find_use_val): Return NULL for
11744         cui->sets && cui->store_p BLKmode MEMs.
11745
11746 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
11747
11748         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11749         Remove.
11750         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11751         xstormy16_print_operand_address): Remove.
11752         * config/stormy16/stormy16.c (xstormy16_print_operand,
11753         xstormy16_print_operand_address): Make static.
11754         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11755
11756 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
11757
11758         PR target/47862
11759         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11760         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11761         before definition.
11762
11763 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
11764
11765         PR bootstrap/48000
11766         * cfgloopmanip.c (fix_bb_placements): Return immediately
11767         if FROM is BASE_LOOP's header.
11768
11769 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
11770
11771         * gimplify.c (gimplify_function_tree): Fix building calls
11772         to __builtin_return_address.
11773
11774 2011-03-07  Alan Modra  <amodra@gmail.com>
11775
11776         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11777         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11778         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11779         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11780         return_mode args.
11781         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11782         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11783         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11784         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11785         * config/rs6000/rs6000.c
11786         (rs6000_elf_end_indicate_exec_stack): Rename to..
11787         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
11788         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
11789         (rs6000_file_start): ..here.
11790         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11791         file scope variables.
11792         (call_ABI_of_interest): New function.
11793         (init_cumulative_args): Set above vars when function return value
11794         is a float, vector, or small struct.
11795         (rs6000_function_arg_advance_1): Likewise for function args.
11796         (rs6000_va_start): Set rs6000_passes_float if variable arg function
11797         references float args.
11798
11799 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
11800
11801         * doc/cfg.texi: Remove "See" before @ref.
11802         * doc/invoke.texi: Likewise.
11803
11804 2011-03-05  Jason Merrill  <jason@redhat.com>
11805
11806         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11807
11808 2011-03-05  Anthony Green  <green@moxielogic.com>
11809
11810         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11811
11812 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
11813
11814         PR rtl-optimization/47899
11815         * cfgloopmanip.c (fix_bb_placements): Fix first argument
11816         to flow_loop_nested_p when moving the loop upward.
11817
11818 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
11819
11820         PR target/47719
11821         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
11822
11823 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
11824
11825         PR tree-optimization/47967
11826         * ipa-cp.c (build_const_val): Return NULL instead of creating
11827         VIEW_CONVERT_EXPR for mismatching sizes.
11828         (ipcp_create_replace_map): Return NULL if build_const_val failed.
11829         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11830         give up on versioning.
11831
11832 2011-03-05  Alan Modra  <amodra@gmail.com>
11833
11834         PR target/47986
11835         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11836         full cmodel medium/large lo_sum + high addresses.
11837
11838 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11839
11840         * config/s390/s390.c (s390_decompose_address): Reject non-literal
11841         pool references in UNSPEC_LTREL_OFFSET.
11842
11843 2011-03-04  Jan Hubicka  <jh@suse.cz>
11844
11845         PR lto/47497
11846         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11847         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
11848         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11849         Add node pointers.
11850         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11851         cgraph_add_thunk): Add node pointers.
11852         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11853         associated to right node.
11854         (input_node): Update use of cgraph_same_body_alias
11855         and cgraph_add_thunk.
11856
11857 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11858
11859         * config/i386/i386.opt (mprefer-avx128): New flag.
11860         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11861         modes when the flag -mprefer-avx128 is on.
11862
11863 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11864
11865         * dwarf2out.c (compare_loc_operands): Fix address handling.
11866
11867 2011-03-04  Alan Modra  <amodra@gmail.com>
11868
11869         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11870
11871 2011-03-04  Richard Guenther  <rguenther@suse.de>
11872
11873         PR middle-end/47968
11874         * expmed.c (extract_bit_field_1): Prefer vector modes that
11875         vec_extract patterns can handle.
11876
11877 2011-03-04  Richard Guenther  <rguenther@suse.de>
11878
11879         PR middle-end/47975
11880         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11881
11882 2011-03-04  Richard Henderson  <rth@redhat.com>
11883
11884         * explow.c (emit_stack_save): Remove 'after' parameter.
11885         (emit_stack_restore): Likewise.
11886         * expr.h: Update to match.
11887         * builtins.c, calls.c, stmt.c: Likewise.
11888         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11889         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11890         * function.c (expand_function_end): Insert the emit_stack_save
11891         sequence before parm_birth_insn instead of after.
11892
11893 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11894
11895         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11896         (ssse3_pmaddubsw128): Ditto.
11897         (ssse3_pmaddubsw): Ditto.
11898
11899 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11900
11901         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11902
11903 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11904
11905         PR c/47963
11906         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11907         on TYPE_SIZE_UNIT if it is a DECL.
11908
11909         PR debug/47283
11910         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11911         first operand is not is_gimple_mem_ref_addr, try to fold it.
11912         If the operand still isn't is_gimple_mem_ref_addr, clear
11913         MEM_EXPR on op0.
11914
11915 2011-03-03  Richard Guenther  <rguenther@suse.de>
11916
11917         PR middle-end/47283
11918         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11919         match comment.
11920         (refs_may_alias_p_1): For release branches return true if
11921         we are confused by our input.
11922
11923 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11924
11925         * config/s390/s390.c (s390_function_value): Rename to ...
11926         (s390_function_and_libcall_value): ... this.
11927         (s390_function_value): New function.
11928         (s390_libcall_value): New function.
11929         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11930         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11931         target macro definitions.
11932         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11933
11934 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11935
11936         * config/i386/freebsd64.h (CC1_SPEC): Define.
11937         * config/i386/linux64.h (CC1_SPEC): Define.
11938         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11939
11940 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11941
11942         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11943         Remove.
11944         * config/stormy16/stormy16.c: Include reload.h.
11945         (xstormy16_memory_move_cost): New function.
11946         (TARGET_MEMORY_MOVE_COST): Define.
11947
11948 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11949
11950         PR rtl-optimization/47925
11951         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11952         with side effects.  Remove the more-specific check for volatile asms.
11953
11954 2011-03-02  Alan Modra  <amodra@gmail.com>
11955
11956         PR target/47935
11957         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11958         toc relative addresses for valid offsets.
11959
11960 2011-03-01  Richard Guenther  <rguenther@suse.de>
11961
11962         PR tree-optimization/47890
11963         * tree-vect-loop.c (get_initial_def_for_induction): Set
11964         related stmt properly.
11965
11966 2011-03-01  Richard Guenther  <rguenther@suse.de>
11967
11968         PR lto/47924
11969         * lto-streamer.c (lto_record_common_node): Also register
11970         the canonical type.
11971
11972 2011-03-01  Richard Guenther  <rguenther@suse.de>
11973
11974         PR lto/46911
11975         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11976         Do not stream DECL_ABSTRACT_ORIGIN.
11977         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11978         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11979         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11980         Do not stream DECL_ABSTRACT_ORIGIN.
11981         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11982         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11983
11984 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
11985
11986         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11987         FUNCTION_VALUE_REGNO_P): Remove.
11988         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
11989         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11990         Add 'outgoing' argument.
11991         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11992         function.
11993         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11994         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11995
11996 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
11997
11998         PR debug/28047
11999         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12000         (lookup_filename): Likewise.
12001         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12002
12003 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12004             Jakub Jelinek  <jakub@redhat.com>
12005
12006         PR middle-end/47893
12007         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12008         (assign_stack_local_1): Change last argument type to int.
12009         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12010         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12011         don't record padding space into frame_space_list nor use those areas.
12012         (assign_stack_local): Adjust caller.
12013         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12014         of assign_stack_local, pass 0 as last argument.
12015         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12016         callers.
12017
12018 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12019
12020         PR debug/47283
12021         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12022         Use target address_mode and pointer_mode hooks instead of hardcoded
12023         Pmode and ptr_mode.  Handle some simple cases of extending if
12024         POINTERS_EXTEND_UNSIGNED < 0.
12025         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12026         Call convert_debug_memory_address.
12027         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12028         convert_debug_memory_address.
12029
12030         PR middle-end/46790
12031         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12032         * configure: Regenerated.
12033         * config.in: Regenerated.
12034         * varasm.c (default_function_section): Return NULL
12035         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12036
12037 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12038
12039         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12040         the description to match the printed values.
12041
12042 2011-02-28  Richard Guenther  <rguenther@suse.de>
12043
12044         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12045         of the copied scope tree.
12046
12047 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12048
12049         * doc/extend.texi (Function Attributes): Avoid deeply (and
12050         wrongly) nested tables.
12051
12052 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12053
12054         PR middle-end/47903
12055         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12056         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12057         r isn't op0 nor op1.
12058
12059 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12060
12061         * config/avr/avr.md: Remove magic comment for emacs.
12062
12063 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12064
12065         PR target/45261
12066         * config/avr/avr.c (avr_option_override): Use error on bad options.
12067         (avr_help): New function.
12068         (TARGET_HELP): Define.
12069
12070 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12071
12072         PR target/42240
12073         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12074         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12075
12076 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12077
12078         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12079         (ARM Options): Ditto.
12080         (i386 and x86-64 Options): Ditto.
12081         (RX Options): Ditto.
12082         (SPARC Options): Ditto.
12083
12084 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12085
12086         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12087         FreeBSD 6 and later.  Generally use cpu generic.
12088
12089 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12090
12091         * doc/cpp.texi: Update copyright years.
12092
12093 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12094
12095         PR target/46898
12096         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12097
12098 2011-02-25  Jon Beniston  <jon@beniston.com>
12099
12100         PR target/46898
12101         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12102         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12103         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12104         (lm32_block_move_inline): Add type cast to remove warning.
12105         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12106         (gen_int_relational): Move declarations to start of function.
12107
12108 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12109
12110         PR tree-optimization/45470
12111         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12112         can throw internally only.
12113         * tree-vect-stmts.c (vectorizable_call): Likewise.
12114
12115 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
12116
12117         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12118         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12119         * config/stormy16/stormy16-protos.h
12120         (xstormy16_preferred_reload_class): Remove.
12121         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12122         static. Change 'rclass' argument and return type to reg_class_t.
12123         (TARGET_PREFERRED_RELOAD_CLASS,
12124         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12125
12126 2011-02-24  Richard Guenther  <rguenther@suse.de>
12127
12128         * lto-streamer-in.c (input_bb): Do not find referenced vars
12129         in debug statements.
12130
12131 2011-02-23  Jason Merrill  <jason@redhat.com>
12132
12133         * common.opt (fabi-version): Document v5 and v6.
12134
12135 2011-02-23  Richard Guenther  <rguenther@suse.de>
12136
12137         PR tree-optimization/47849
12138         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12139
12140 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12141
12142         * opts-common.c (decode_cmdline_option): Print empty string
12143         argument as "" in decoded->orig_option_with_args_text.
12144         * gcc.c (execute): Print empty string argument as ""
12145         in the verbose output.
12146         (do_spec_1): Keep empty string argument.
12147
12148 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12149
12150         * config.gcc: Declare score-* and crx-* obsolete.
12151
12152 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12153
12154         PR rtl-optimization/47763
12155         * web.c (web_main): Ignore naked clobber when replacing register.
12156
12157 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12158
12159         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12160         Remove.
12161
12162 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12163
12164         PR doc/47848
12165         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12166
12167 2011-02-22  Mike Stump  <mikestump@comcast.net>
12168
12169         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12170         assembler.
12171         * configure: Regenerate.
12172
12173 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12174
12175         PR rtl-optimization/46002
12176         * ira-color.c (update_copy_costs): Change class intersection
12177         test to reg_class_contents[] test of 'hard_regno'.
12178
12179 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12180
12181         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12182         than Driver option.
12183         * config/hpux11.opt (mt): Likewise.
12184         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12185         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12186         * config/vax/elf.opt (mno-asm-pic): Likewise.
12187         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12188
12189 2011-02-21  Mike Stump  <mikestump@comcast.net>
12190
12191         PR target/47822
12192         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12193         tree so we can get save the type.
12194         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12195         for CFString instead of trying to use past the end of the builtins.
12196         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12197         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12198         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12199         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12200         Rename to darwin_builtin_cfstring.
12201         (darwin_init_cfstring_builtins): Return the built type.
12202
12203 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12204
12205         PR target/47840
12206         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12207         (_mm256_insert_epi64): Use _mm_insert_epi64.
12208
12209 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12210
12211         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12212         * config/stormy16/stormy16-protos.h
12213         (xstormy16_mode_dependent_address_p): Remove.
12214         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12215         Make static. Change return type to bool. Change argument type to
12216         const_rtx. Remove dead code.
12217         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12218
12219 2011-02-21  Richard Guenther  <rguenther@suse.de>
12220
12221         PR lto/47820
12222         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12223         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12224         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12225         TUs context.
12226         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12227         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12228
12229 2011-02-20  Richard Guenther  <rguenther@suse.de>
12230
12231         PR lto/47822
12232         * tree.c (free_lang_data_in_decl): Clean builtins from
12233         the TU decl BLOCK_VARS.
12234
12235 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
12236
12237         PR debug/47620
12238         PR debug/47630
12239         * haifa-sched.c (fix_tick_ready): Skip tick computation
12240         for debug insns.
12241
12242 2011-02-19  Richard Guenther  <rguenther@suse.de>
12243
12244         PR lto/47647
12245         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12246         Remove lazy BLOCK_VARS streaming.
12247         (lto_input_ts_block_tree_pointers): Likewise.
12248         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12249
12250 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12251
12252         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12253
12254 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12255
12256         * config/i386/biarch32.h, config/i386/mach.h,
12257         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12258
12259 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
12260
12261         PR target/47800
12262         * config/i386/i386.md (peephole2 for shift and plus): Use
12263         operands[1] original mode in the first insn.
12264
12265 2011-02-18  Mike Stump  <mikestump@comcast.net>
12266
12267         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12268
12269 2011-02-18  Jan Hubicka  <jh@suse.cz>
12270
12271         PR middle-end/47788
12272         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12273         to zero when the function is not inlinable at all.
12274
12275 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12276
12277         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12278         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12279         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12280         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12281         * config/pa/t-pa64: Likewise.
12282         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12283
12284 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12285
12286         PR driver/47787
12287         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12288
12289 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12290
12291         PR target/47792
12292         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12293
12294 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
12295
12296         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12297         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12298         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12299         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12300         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12301         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12302         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12303         m32r_load_postinc_p, m32r_store_preinc_predec_p,
12304         m32r_legitimate_address_p): New functions.
12305         * config/m32r/constraints.md (constraint "S"): Don't use
12306         STORE_PREINC_PREDEC_P.
12307         (constraint "U"): Don't use LOAD_POSTINC_P.
12308
12309 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
12310
12311         PR rtl-optimization/46178
12312         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12313         compute ira_hard_regno_cover_class[].
12314
12315 2011-02-18  Richard Guenther  <rguenther@suse.de>
12316
12317         PR lto/47798
12318         * lto-streamer.h (lto_global_var_decls): Declare.
12319         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12320         statics for global var processing.
12321
12322 2011-02-18  Richard Guenther  <rguenther@suse.de>
12323
12324         PR tree-optimization/47737
12325         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12326         edge dominance check.
12327
12328 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12329
12330         PR debug/47780
12331         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12332         avoid invalid rtx sharing.
12333
12334 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
12335
12336         * doc/cpp.texi (Obsolete Features): Add background on the
12337         origin of assertions.
12338
12339 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
12340
12341         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12342         objc_abi == 2.
12343         * config/darwin.c (output_objc_section_asm_op): Added support for
12344         ABI v1 and v2.
12345         (is_objc_metadata): New.
12346         (darwin_objc2_section): New.
12347         (darwin_objc1_section): New.
12348         (machopic_select_section): Added support for ABI v1 and v2.
12349         (darwin_emit_objc_zeroed): New.
12350         (darwin_output_aligned_bss): Detect objc metadata and treat it
12351         appropriately.
12352         (darwin_asm_output_aligned_decl_common): Same.
12353         (darwin_asm_output_aligned_decl_local): Same.
12354         * config/darwin-sections.def: Updated for ABI v1 and v2.
12355         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12356         compiling Objective-C code for the NeXT runtime, default to using
12357         ABI version 0 for 32-bit, and version 2 for 64-bit.
12358
12359 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12360
12361         * common.opt (optimize_fast): New Variable.
12362         * opts.c (default_options_optimization): Use opts->x_optimize_fast
12363         instead of local variable ofast.
12364
12365 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
12366
12367         * doc/invoke.texi (fobjc-abi-version): Documented.
12368         (fobjc-nilcheck): Documented.
12369         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12370         version.
12371
12372 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12373
12374         PR driver/47390
12375         * common.opt (export-dynamic): New Driver option.
12376         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12377
12378 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12379
12380         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12381
12382 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
12383             Jan Hubicka  <jh@suse.cz>
12384
12385         PR debug/47106
12386         PR debug/47402
12387         * cfgexpand.c (account_used_vars_for_block): Remove.
12388         (estimated_stack_frame_size): Use referenced vars.
12389         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12390         that were referenced in the original function.  Test src_fn
12391         rather than cfun.  Drop redundant get_var_ann.
12392         (setup_one_parameter): Drop redundant get_var_ann.
12393         (declare_return_variable): Likewise.
12394         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12395         (copy_arguments_for_versioning): Drop redundant get_var_ann.
12396         * ipa-inline.c (compute_inline_parameters): Do not compute
12397         disregard_inline_limits here.
12398         (compute_inlinable_for_current, pass_inlinable): New.
12399         (pass_inline_parameters): Require PROP_referenced_vars.
12400         * cgraphunit.c (cgraph_process_new_functions): Don't run
12401         compute_inline_parameters explicitly unless function is in SSA form.
12402         (cgraph_analyze_function): Set .disregard_inline_limits.
12403         * tree-sra.c (convert_callers): Compute inliner parameters
12404         only for functions already in SSA form.
12405
12406 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12407
12408         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12409         -mlittle-endian-data.
12410
12411 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12412
12413         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12414         -mno-fpu, not -fpu and -no-fpu.
12415         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12416         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12417
12418 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
12419
12420         PR target/43653
12421         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12422         input reload with PLUS RTX.
12423
12424 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12425
12426         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12427         of InverseVar(MDMX).
12428
12429 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12430
12431         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12432         --m4-340.
12433
12434 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12435
12436         * config/mn10300/mn10300.opt (mno-crt0): New.
12437
12438 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12439
12440         * config/m68k/uclinux.opt (static-libc): New Driver option.
12441
12442 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12443
12444         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12445
12446 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12447
12448         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12449         %{muser-extend-enabled}.
12450
12451 2011-02-16  Richard Guenther  <rguenther@suse.de>
12452
12453         PR tree-optimization/47738
12454         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12455         the TODO from tree_predictive_commoning.
12456
12457 2011-02-15  Jeff Law  <law@redhat.com>
12458
12459         Revert
12460         2011-01-25  Jeff Law  <law@redhat.com>
12461
12462         PR rtl-optimization/37273
12463         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12464         handle them like argument loads from stack slots.  Do not double
12465         count memory for memory constants and argument loads from stack slots.
12466
12467 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12468
12469         PR middle-end/47725
12470         * combine.c (cant_combine_insn_p): Revert the last change.
12471
12472 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
12473
12474         PR target/47755
12475         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12476         mode for vector constants.  Remove code that checks for TImode.
12477
12478 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12479
12480         PR debug/47106
12481         PR debug/47402
12482         * cgraph.h (compute_inline_parameters): Return void.
12483         * ipa-inline.c (compute_inline_parameters): Adjust.
12484
12485 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12486
12487         PR debug/47106
12488         PR debug/47402
12489         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12490         rather than decl.
12491         * cfgexpand.c (estimated_stack_frame_size): Likewise.
12492         * ipa-inline.c (compute_inline_parameters): Adjust.
12493
12494 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12495
12496         PR debug/47106
12497         PR debug/47402
12498         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12499         Adjust all users.  Pass FN to...
12500         * tree-flow-inline.h (first_referenced_var): ... this.  Add
12501         fn argument.
12502         * ipa-struct-reorg.c: Adjust.
12503         * tree-dfa.c: Adjust.
12504         * tree-into-ssa.c: Adjust.
12505         * tree-sra.c: Adjust.
12506         * tree-ssa-alias.c: Adjust.
12507         * tree-ssa-live.c: Adjust.
12508         * tree-ssa.c: Adjust.
12509         * tree-ssanames.c: Adjust.
12510         * tree-tailcall.c: Adjust.
12511
12512 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12513
12514         PR debug/47106
12515         PR debug/47402
12516         * tree-flow.h (referenced_var_lookup): Add fn parameter.
12517         Adjust all callers.
12518         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12519         * tree-flow-inline.h: Adjust.
12520         * gimple-pretty-print.c: Adjust.
12521         * tree-into-ssa.c: Adjust.
12522         * tree-ssa.c: Adjust.
12523         * cfgexpand.c: Adjust.
12524
12525 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12526
12527         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12528         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12529         (EXTRA_CONSTRAINT): Delete.
12530         * config/iq2000/constraints.md: New file.
12531         * config/iq2000/iq2000.md: Include it.
12532         (define_insn ""): Delete.
12533         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12534         unsupported constraint letters from patterns.
12535         (call_value, call_value_internal1): Likewise.
12536         (call_value_multiple_internal1): Likewise.
12537
12538 2011-02-15  Nick Clifton  <nickc@redhat.com>
12539
12540         * config/mn10300/mn10300.c: Include tm-constrs.h.
12541         (struct liw_data): New data structure describing an LIW candidate
12542         instruction.
12543         (extract_bundle): Use struct liw_data.  Allow small integer
12544         operands for some instructions.
12545         (check_liw_constraints): Use struct liw_data.  Remove swapped
12546         parameter.  Add comments describing the checks.  Fix bug when
12547         assigning the source of liw1 to the source of liw2.
12548         (liw_candidate): Delete.  Code moved into extract_bundle.
12549         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
12550         before swapping.
12551         * config/mn10300/predicates.md (liw_operand): New predicate.
12552         Allows registers and small integer constants.
12553         * config/mn10300/constraints.md (O): New constraint.  Accetps
12554         integers in the range -8 to +7 inclusive.
12555         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12556         for moving a small integer into a register.  Give this alternative
12557         LIW attributes.
12558         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12559         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12560         using the J,K,L and M constraints,
12561         (liw): Remove SI mode on second operands to allow for HI and QI
12562         mode values.
12563         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
12564         instruction.
12565
12566 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12567
12568         PR middle-end/47725
12569         * combine.c (cant_combine_insn_p): Check zero/sign extended
12570         hard registers.
12571
12572 2011-02-15  Richard Guenther  <rguenther@suse.de>
12573
12574         PR tree-optimization/47743
12575         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12576         for a non-type-compatible VN lookup bail out.
12577
12578 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12579
12580         * config/fr30/constraints.md: New file.
12581         * config/fr30/fr30.md: Include it.
12582         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12583         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12584         (EXTRA_CONSTRAINT): Delete.
12585
12586 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12587
12588         * config/frv/constraints.md: New file.
12589         * config/frv/predicates.md: Include it.
12590         * config/frv/frv.c (reg_class_from_letter): Delete.
12591         (frv_option_override): Don't initialize it.
12592         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12593         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12594         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12595         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12596         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12597         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12598         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12599         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12600         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12601         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12602         (REG_CLASS_FROM_CONSTRAINT): Delete.
12603
12604 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
12605
12606         PR middle-end/47581
12607         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12608         if frame size is 0 in a leaf function.
12609
12610 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12611
12612         PR pch/14940
12613         * config/alpha/host-osf.c: New file.
12614         * config/alpha/x-osf: New file.
12615         * config.host (alpha*-dec-osf*): Use it.
12616
12617 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12618
12619         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12620         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12621         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12622         (rx_mode_dependent_address_p): ...this. Make static. Change argument
12623         type to const_rtx.
12624         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12625
12626 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12627
12628         * config/stormy16/constraints.md: New file.
12629         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12630         Use satisfies_constraint_Q and satisfies_constraint_R.
12631         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12632         Delete.
12633         (xstormy16_legitiamte_address_p): Declare.
12634         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12635         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12636         (EXTRA_CONSTRAINT): Delete.
12637         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12638         Un-staticize.
12639         (xstormy16_extra_constraint_p): Delete.
12640
12641 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12642
12643         PR tree-optimization/46494
12644         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12645         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12646         (pass_rtl_loop_done): Add TODO_verify_flow.
12647         * fwprop.c (pass_rtl_fwprop): Likewise.
12648         * modulo-sched.c (pass_sms): Likewise.
12649         * tree-ssa-dom.c (pass_dominator): Likewise.
12650         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12651         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12652         (pass_tree_loop_done): Likewise.
12653         * tree-ssa-pre.c (execute_pre): Likewise.
12654         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12655         * tree-ssa-sink.c (pass_sink_code): Likewise.
12656         * tree-vrp.c (pass_vrp): Likewise.
12657
12658 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12659
12660         * config/v850/constraints.md: New file.
12661         * config/v850/v850.md: Include it.
12662         * config/v850/predicates.md (reg_or_0_operand): Use
12663         satisfies_constraint_G.
12664         (special_symbolref_operand): Use satisfies_constraint_K.
12665         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12666         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12667         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12668         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12669         (EXTRA_CONSTRAINT): Delete.
12670         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12671         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12672         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12673
12674 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12675
12676         PR target/47696
12677         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12678         description.
12679
12680 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12681
12682         * config/mcore/constraints.md: New file.
12683         * config/mcore/mcore.md: Include it.
12684         * config/mcore/mcore.c (reg_class_from_letter): Delete.
12685         * config/mcore/mcore.h (reg_class_from_letter): Delete.
12686         (REG_CLASS_FROM_LETTER): Delete.
12687         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12688         insn_const_int_ok_for_constraint.
12689         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12690         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12691         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12692         (EXTRA_CONSTRAINT): Delete.
12693
12694 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12695
12696         PR ada/41929
12697         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12698         (IS_SIGHANDLER): Define.
12699         (sparc64_is_sighandler): New function, split off from
12700         sparc64_fallback_frame_state.
12701         (sparc_is_sighandler): New function, split off from
12702         sparc_fallback_frame_state.
12703         (sparc64_fallback_frame_state): Merge with ...
12704         (sparc_fallback_frame_state): ... this into ...
12705         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12706         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
12707         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
12708         stack instead of hardcoded offsets.
12709
12710 2011-02-14  Andriy Gapon  <avg@freebsd.org>
12711
12712         PR target/45808
12713         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12714
12715 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12716
12717         * configure: Regenerate.
12718
12719 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
12720
12721         PR driver/45731
12722         * gcc.c (asm_options): Correct spec matching --target-help.
12723
12724 2011-02-12  Martin Jambor  <mjambor@suse.cz>
12725
12726         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12727         to gimple call error.
12728
12729 2011-02-12  Mike Stump  <mikestump@comcast.net>
12730
12731         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12732         comments in backslash regions.
12733
12734 2011-02-12  Mike Stump  <mikestump@comcast.net>
12735             Jakub Jelinek  <jakub@redhat.com>
12736             Iain Sandoe  <iains@gcc.gnu.org>
12737
12738         PR target/47324
12739         * dwarf2out.c (output_cfa_loc): When required, apply the
12740         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12741         (output_loc_sequence): Likewise.
12742         (output_loc_operands_raw): Likewise.
12743         (output_loc_sequence_raw): Likewise.
12744         (output_cfa_loc): Likewise.
12745         (output_loc_list): Suppress register number adjustment when
12746         calling output_loc_sequence()
12747         (output_die): Likewise.
12748
12749 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
12750
12751         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12752         Remove macros.
12753         * config/xtensa/xtensa.c (xtensa_register_move_cost,
12754         xtensa_memory_move_cost): New functions.
12755         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12756
12757 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
12758
12759         PR lto/47225
12760         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12761         in the current directory.
12762         * configure: Rebuilt.
12763
12764 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12765
12766         * config/darwin.c (darwin_override_options): Add a hunk missed
12767         from the commit of r168571.  Trim comment line lengths and
12768         correct indents of the preceding block.
12769
12770 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12771
12772         * gcc.c (driver_handle_option): Concatenate the argument to -F with
12773         the switch.
12774
12775 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12776
12777         * common.opt (nostartfiles): New Driver option.
12778
12779 2011-02-11  Xinliang David Li  <davidxl@google.com>
12780
12781         PR tree-optimization/47707
12782         * tree-chrec.c (convert_affine_scev): Keep type precision.
12783
12784 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12785
12786         PR tree-optimization/47420
12787         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12788
12789 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
12790
12791         PR rtl-optimization/47614
12792         * rtl.h (check_for_inc_dec): Declare.
12793         * dse.c (check_for_inc_dec): Externalize...
12794         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12795         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12796
12797 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12798
12799         PR driver/47678
12800         * gcc.c (main): Do not compile inputs if there were errors in
12801         option handling.
12802         * opts-common.c (read_cmdline_option): Check for wrong language
12803         after other error checks.
12804
12805 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
12806
12807         * cgraph.c: Fix comment typos.
12808         * cgraph.h: Likewise.
12809         * cgraphunit.c: Likewise.
12810         * ipa-cp.c: Likewise.
12811         * ipa-inline.c: Likewise.
12812         * ipa-prop.c: Likewise.
12813         * ipa-pure-const.c: Likewise.
12814         * ipa-ref.c: Likewise.
12815         * ipa-reference.c: Likewise.
12816
12817 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
12818
12819         PR debug/47684
12820         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
12821
12822 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12823
12824         PR testsuite/47400
12825         * doc/sourcebuild.texi (Require Support): Document
12826         dg-require-ascii-locale.
12827
12828 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
12829
12830         * doc/lto.texi (Write summary): Fix missing parentheses.
12831
12832 2011-02-10  DJ Delorie  <dj@redhat.com>
12833
12834         * config/m32c/m32c.c (m32c_option_override): Disable
12835         -fcombine-stack-adjustments until flag value tracking and compare
12836         optimization can be rewritten.
12837
12838 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
12839
12840         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12841         PROCESSOR_POWER7.
12842         (PROCESSOR_DEFAULT64): Likewise.
12843
12844 2011-02-10  Richard Henderson  <rth@redhat.com>
12845
12846         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12847         change from 2011-02-03.
12848         * config/rx/rx.c (flags_from_code): Likewise.
12849         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12850         is valid, n/pz otherwise.
12851         (rx_select_cc_mode): Return CCmode if Y is not zero.
12852
12853 2011-02-10  Richard Guenther  <rguenther@suse.de>
12854
12855         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
12856
12857 2011-02-10  Richard Guenther  <rguenther@suse.de>
12858
12859         PR tree-optimization/47677
12860         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12861
12862 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12863
12864         PR target/47665
12865         * combine.c (make_compound_operation): Only change shifts into
12866         multiplication for SCALAR_INT_MODE_P.
12867
12868 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12869
12870         PR testsuite/47622
12871         Revert
12872         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12873         PR debug/42631
12874         * web.c (entry_register): Don't clobber the number of the
12875         first uninitialized reference in used[].
12876
12877 2011-02-09  Richard Guenther  <rguenther@suse.de>
12878
12879         PR tree-optimization/47664
12880         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12881         all edges again.
12882
12883 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12884
12885         PR target/46481
12886         PR target/47032
12887         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12888         PROCESSOR_POWER7.
12889         (PROCESSOR_DEFAULT64): Same.
12890         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12891
12892 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12893
12894         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12895
12896 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12897
12898         PR middle-end/45505
12899         * tree-sra.c (struct access): New flags grp_scalar_read and
12900         grp_scalar_write.  Changed description of assignment read and write
12901         flags.
12902         (dump_access): Dump new flags, reorder all of them.
12903         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12904         to detect multiple scalar reads.
12905         (analyze_access_subtree): Use the new scalar read write flags instead
12906         of the old flags.  Adjusted comments.
12907
12908 2011-02-08  DJ Delorie  <dj@redhat.com>
12909
12910         PR target/47548
12911         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12912         patterns.
12913
12914 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12915
12916         * config/m68k/uclinux.opt: New.
12917         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12918
12919 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12920
12921         * config/cris/elf.opt (sim): New Driver option.
12922
12923 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12924
12925         * config/xtensa/elf.opt: New.
12926         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12927
12928 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12929
12930         * config/vax/elf.opt: New.
12931         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12932
12933 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12934
12935         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12936
12937 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12938
12939         * config/gnu-user.opt: New.
12940         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12941         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12942         *-*-uclinux*): Use gnu-user.opt.
12943
12944 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12945
12946         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12947         * config/i386/gnu.h (CPP_SPEC): Likewise.
12948
12949 2011-02-08  Ian Lance Taylor  <iant@google.com>
12950
12951         * common.opt (fcx-limited-range): Add SetByCombined flag.
12952         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12953         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12954         (fassociative-math, freciprocal-math): Likewise.
12955         (funsafe-math-optimizations): Likewise.
12956         * opth-gen.awk: Handle SetByCombined.
12957         * optc-gen.awk: Likewise.
12958         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12959         (set_unsafe_math_optimizations_flags): Likewise.
12960         * doc/options.texi (Option properties): Document SetByCombined.
12961
12962 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12963
12964         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12965         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12966         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12967         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12968         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12969
12970 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12971
12972         PR tree-optimization/46834
12973         PR tree-optimization/46994
12974         PR tree-optimization/46995
12975         * graphite-sese-to-poly.c (used_outside_reduction): New.
12976         (detect_commutative_reduction): Call used_outside_reduction.
12977         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12978         translate_scalar_reduction_to_array only when at least one
12979         loop-phi/close-phi tuple has been detected.
12980
12981 2011-02-08  Richard Guenther  <rguenther@suse.de>
12982
12983         PR middle-end/47639
12984         * tree-vect-generic.c (expand_vector_operations_1): Update
12985         stmts here ...
12986         (expand_vector_operations): ... not here.  Cleanup EH info
12987         and the CFG if required.
12988
12989 2011-02-08  Richard Guenther  <rguenther@suse.de>
12990
12991         PR tree-optimization/47641
12992         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12993         require type compatibility.
12994
12995 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12996
12997         * gimple-low.c (lower_function_body): Don't remove the location of
12998         the return statement here.
12999         (lower_gimple_return): Do it here instead but only if the return
13000         statement is actually used twice.
13001
13002 2011-02-08  Richard Guenther  <rguenther@suse.de>
13003
13004         PR tree-optimization/47632
13005         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13006         unused up_to_stmt parameter, return whether cfg-cleanup is
13007         necessary, remove EH info properly.
13008         (forward_propagate_into_gimple_cond): Adjust caller.
13009         (forward_propagate_into_cond): Likewise.
13010         (forward_propagate_comparison): Likewise.
13011         (tree_ssa_forward_propagate_single_use_vars): Make
13012         forward_propagate_comparison case similar to the two others.
13013
13014 2011-02-08  Nick Clifton  <nickc@redhat.com>
13015
13016         * config/mn10300/mn10300.opt (mliw): New command line option.
13017         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13018         (liw_bundling): New automaton.
13019         (liw): New attribute.
13020         (liw_op): New attribute.
13021         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13022         (movsi_internal): Add LIW attributes.
13023         (andsi3): Likewise.
13024         (iorsi3): Likewise.
13025         (xorsi3): Likewise.
13026         (addsi3): Separate register and immediate alternatives.
13027         Add LIW attributes.
13028         (subsi3): Likewise.
13029         (cmpsi): Likewise.
13030         (aslsi3): Likewise.
13031         (lshrsi3): Likewise.
13032         (ashrsi3): Likewise.
13033         (liw): New pattern.
13034         * config/mn10300/mn10300.c (liw_op_names): New
13035         (mn10300_print_operand): Handle 'W' operand descriptor.
13036         (extract_bundle): New function.
13037         (check_liw_constraints): New function.
13038         (liw_candidate): New function.
13039         (mn10300_bundle_liw): New function.
13040         (mn10300_reorg): New function.
13041         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13042         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13043         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13044         __LIW__ or __NO_LIW__.
13045         * doc/invoke.texi: Describe the -mliw command line option.
13046
13047 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13048
13049         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13050         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13051         pthread_mutex_unlock): Remove.
13052         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13053         * config/pa/t-pa64: Likewise.
13054         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13055         shared libc if not linking against libpthread.
13056         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13057
13058 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13059
13060         PR target/47558
13061         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13062         on 10.6 and later to ensure that we always use the unwinder from
13063         the system.  Only add -no_compact_unwind when tarteting darwin
13064         10.6 or later.
13065
13066 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13067
13068         PR target/46997
13069         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13070         (vec_interleave_lowv2sf): Ditto.
13071         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13072         (vec_extract_oddv2sf): Ditto.
13073
13074 2011-02-07  Mike Stump  <mikestump@comcast.net>
13075
13076         PR target/42333
13077         Add __ieee_divdc3 entry point.
13078         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13079         entry point.
13080         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13081         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13082         * config/darwin.c (darwin_rename_builtins): Add.
13083         * config/darwin-protos.h (darwin_rename_builtins): Add.
13084
13085 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13086
13087         PR target/47636
13088         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13089         for the condition.
13090
13091 2011-02-07  Mike Stump  <mikestump@comcast.net>
13092
13093         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13094
13095 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13096
13097         PR target/47534
13098         * config/avr/libgcc.S (exit): Move .endfunc
13099
13100 2011-02-07  Richard Guenther  <rguenther@suse.de>
13101
13102         PR tree-optimization/47615
13103         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13104         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13105         (run_scc_vn): Initialize it.
13106         (visit_reference_op_load): Use it.
13107         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13108
13109 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13110
13111         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13112         DImode trapping arithmetic libfuncs.
13113
13114 2011-02-07  Richard Guenther  <rguenther@suse.de>
13115
13116         PR tree-optimization/47621
13117         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13118         two duplicates ...
13119         (execute_update_addresses_taken): ... here.  Make it more
13120         conservative in what we accept.
13121
13122 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13123
13124         * config/sparc/freebsd.h (ASM_SPEC): Define.
13125         * config/sparc/vxworks.h (ASM_SPEC): Define.
13126
13127 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13128
13129         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13130
13131 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
13132
13133         * doc/invoke.texi: Remove reference to compiler internals from
13134         user documentation.
13135
13136         * reg-notes.def: Remove REG_VALUE_PROFILE.
13137         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13138
13139 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13140
13141         PR middle-end/47610
13142         * varasm.c (default_section_type_flags): If decl is NULL,
13143         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13144
13145 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13146
13147         PR debug/42631
13148         * web.c (entry_register): Don't clobber the number of the
13149         first uninitialized reference in used[].
13150
13151 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13152
13153         PR tree-optimization/46194
13154         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13155         (build_classic_dist_vector_1): Do not represent classic distance
13156         vectors when the access functions are variating in different loops.
13157
13158 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13159
13160         * config/mips/iris6.opt: New.
13161         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13162
13163 2011-02-04  Richard Henderson  <rth@redhat.com>
13164             Steve Ellcey  <sje@cup.hp.com>
13165
13166         PR target/46997
13167         * config/ia64/predicates.md (mux1_brcst_element): New.
13168         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13169         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13170         (ia64_unpack_sign): New.
13171         (ia64_expand_unpack): Rewrite using new routines.
13172         (ia64_expand_widen_sum): Ditto.
13173         (ia64_expand_dot_prod_v8qi): Ditto.
13174         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13175         routines, add endian check.
13176         (pmpy2_even): Rename from pmpy2_r, add endian check.
13177         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13178         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13179         (vec_widen_smult_hi_v4hi): Ditto.
13180         (vec_widen_umult_lo_v4hi): Ditto.
13181         (vec_widen_umult_hi_v4hi): Ditto.
13182         (mulv2si3): Change endian checks.
13183         (sdot_prodv4hi): Rewrite with new calls.
13184         (udot_prodv4hi): New.
13185         (vec_pack_ssat_v4hi): Add endian check.
13186         (vec_pack_usat_v4hi): Ditto.
13187         (vec_pack_ssat_v2si): Ditto.
13188         (max1_even): Rename from max1_r, add endian check.
13189         (max1_odd): Rename from max1_l, add endian check.
13190         (*mux1_rev): Format change.
13191         (*mux1_mix): Ditto.
13192         (*mux1_shuf): Ditto.
13193         (*mux1_alt): Ditto.
13194         (*mux1_brcst_v8qi): Use new predicate.
13195         (vec_extract_evenv8qi): Remove endian check.
13196         (vec_extract_oddv8qi): Ditto.
13197         (vec_interleave_lowv4hi): Format change.
13198         (vec_interleave_highv4hi): Ditto.
13199         (mix2_even): Rename from mix2_r, add endian check.
13200         (mix2_odd): Rename from mux2_l, add endian check.
13201         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13202         (vec_extract_evenodd_helper): Format change.
13203         (vec_extract_evenv4hi): Remove endian check.
13204         (vec_extract_oddv4hi): Remove endian check.
13205         (vec_interleave_lowv2si): Format change.
13206         (vec_interleave_highv2si): Format change.
13207         (vec_initv2si): Remove endian check.
13208         (vecinit_v2si): Add endian check.
13209         (reduc_splus_v2sf): Add endian check.
13210         (reduc_smax_v2sf): Ditto.
13211         (reduc_smin_v2sf): Ditto.
13212         (vec_initv2sf): Remove endian check.
13213         (fpack): Add endian check.
13214         (fswap): Add endian check.
13215         (vec_interleave_highv2sf): Add endian check.
13216         (vec_interleave_lowv2sf): Add endian check.
13217         (fmix_lr): Add endian check.
13218         (vec_setv2sf): Format change.
13219         (*vec_extractv2sf_0_be): Use shift to extract operand.
13220         (*vec_extractv2sf_1_be): New.
13221         (vec_pack_trunc_v4hi): Add endian check.
13222         (vec_pack_trunc_v2si): Format change.
13223
13224 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13225
13226         PR inline-asm/23200
13227         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13228         do bb, locus and block comparison and disallow loads if it is not set.
13229         (stmt_is_replaceable_p): New function.
13230         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13231         callers.
13232         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13233         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13234         SSA_NAME_DEF_STMT.
13235         * tree-flow.h (stmt_is_replaceable_p): New prototype.
13236
13237 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13238
13239         * config/rs6000/xilinx.opt: New.
13240         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13241
13242 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13243
13244         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13245
13246 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
13247
13248         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13249         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13250         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13251         secondary_reload_info, xtensa_secondary_reload): Remove.
13252         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13253         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13254         (xtensa_preferred_reload_class): Make static. Change return and
13255         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13256         Use CONST_DOUBLE_P predicate.
13257         (xtensa_preferred_output_reload_class): New function.
13258         (xtensa_secondary_reload): Make static.
13259
13260 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
13261
13262         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13263         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13264         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13265
13266 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13267
13268         PR middle-end/31490
13269         * output.h (SECTION_RELRO): Define.
13270         (SECTION_MACH_DEP): Adjust.
13271         (get_variable_section): New prototype.
13272         * varpool.c (varpool_finalize_named_section_flags): New function.
13273         (varpool_assemble_pending_decls): Call it.
13274         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13275         * cgraphunit.c (cgraph_output_in_order): Call
13276         varpool_finalize_named_section_flags.
13277         * varasm.c (get_section): Allow section flags conflicts between
13278         relro and read-only sections if the section hasn't been declared yet.
13279         Set SECTION_OVERRIDE after diagnosing section type conflict.
13280         (get_variable_section): No longer static.
13281         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13282         readonly sections that need relocations.
13283         (decl_readonly_section_1): New function.
13284         (decl_readonly_section): Use it.
13285
13286         Revert:
13287         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
13288                     Steve Ellcey  <sje@cup.hp.com>
13289
13290         PR middle-end/31490
13291         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13292         if section attribute used.
13293
13294 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13295
13296         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13297         * config/darwin.c (SECTION_NO_ANCHOR): Define.
13298         (darwin_init_sections): Remove assertion.
13299
13300 2011-02-03  Nick Clifton  <nickc@redhat.com>
13301
13302         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13303         lt and ge.
13304         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13305         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13306         instead of "n" and "pz".
13307         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13308         CC_FLAG_S.
13309
13310 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13311
13312         PR target/47312
13313         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13314         fma, expand FMA_EXPR as fma{,f,l} call.
13315
13316         PR lto/47274
13317         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13318         copy them into a unsigned char variable and pass address of it to
13319         lto_output_data_stream.
13320
13321         PR target/47564
13322         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13323         around backend_init_target and lang_dependent_init_target calls.
13324         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13325         (verify_cgraph_node): Don't call set_cfun here.  Use
13326         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13327         Set error_found for incorrectly represented calls to thunks.
13328
13329 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13330
13331         PR debug/43092
13332         PR rtl-optimization/43494
13333         * rtl.h (for_each_inc_dec_fn): New type.
13334         (for_each_inc_dec): Declare.
13335         * rtlanal.c (struct for_each_inc_dec_ops): New type.
13336         (for_each_inc_dec_find_inc_dec): New fn.
13337         (for_each_inc_dec_find_mem): New fn.
13338         (for_each_inc_dec): New fn.
13339         * dse.c (struct insn_size): Remove.
13340         (replace_inc_dec, replace_inc_dec_mem): Remove.
13341         (emit_inc_dec_insn_before): New fn.
13342         (check_for_inc_dec): Use it, along with for_each_inc_dec.
13343         (canon_address): Pass mem modes to cselib_lookup.
13344         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
13345         (cselib_lookup_from_insn): Likewise.
13346         (cselib_subst_to_values): Likewise.
13347         * cselib.c (find_slot_memmode): New var.
13348         (cselib_find_slot): New fn.  Use it instead of
13349         htab_find_slot_with_hash everywhere.
13350         (entry_and_rtx_equal_p): Use find_slot_memmode.
13351         (autoinc_split): New fn.
13352         (rtx_equal_for_cselib_p): Rename and implement in terms of...
13353         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
13354         Deal with autoinc.  Special-case recursion into MEMs.
13355         (cselib_hash_rtx): Likewise.
13356         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
13357         address and MEM modes.
13358         (cselib_subst_to_values): Add memmode, pass it on.
13359         Deal with autoinc.
13360         (cselib_lookup): Add memmode argument, pass it on.
13361         (cselib_lookup_from_insn): Add memmode.
13362         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13363         (struct cselib_record_autoinc_data): New.
13364         (cselib_record_autoinc_cb): New fn.
13365         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
13366         mode to cselib_lookup.  Reset autoinced REGs here instead of...
13367         (cselib_process_insn): ... here.
13368         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13369         to cselib_lookup.
13370         (add_uses): Likewise, also to cselib_subst_to_values.
13371         (add_stores): Likewise.
13372         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
13373         cselib_subst_to_values.
13374         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
13375         * gcse.c (do_local_cprop): Adjusted.
13376         * postreload.c (reload_cse_simplify_set): Adjusted.
13377         (reload_cse_simplify_operands): Adjusted.
13378         * sel-sched-dump (debug_mem_addr_value): Pass mode.
13379
13380 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13381
13382         PR tree-optimization/45122
13383         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13384         unsafe assumptions when there's more than one loop exit.
13385
13386 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13387
13388         PR target/47272
13389         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13390         Document using vector double with the load/store builtins, and
13391         that the load/store builtins always use Altivec instructions.
13392
13393         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13394         to use altivec memory instructions, even on VSX.
13395         (vector_altivec_store_<mode>): Ditto.
13396
13397         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13398         function.
13399
13400         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13401         V2DF, V2DI support to load/store overloaded builtins.
13402
13403         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13404         altivec load/store builtins for V2DF/V2DI types.
13405
13406         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13407         set avoid indexed addresses on power6 if -maltivec.
13408         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13409         vector_altivec_load/vector_altivec_store builtins.
13410         (altivec_expand_st_builtin): Ditto.
13411         (altivec_expand_builtin): Add VSX memory builtins.
13412         (rs6000_init_builtins): Add V2DI types to internal types.
13413         (altivec_init_builtins): Add support for V2DF/V2DI altivec
13414         load/store builtins.
13415         (rs6000_address_for_altivec): Insure memory address is appropriate
13416         for Altivec.
13417
13418         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13419         vec_vsx_ld and vec_vsx_st.
13420         (vsx_store_<mode>): Ditto.
13421
13422         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13423         variables to hold long long types for VSX vector memory builtins.
13424         (RS6000_BTI_unsigned_long_long): Ditto.
13425         (long_long_integer_type_internal_node): Ditti.
13426         (long_long_unsigned_type_internal_node): Ditti.
13427
13428         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13429         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13430         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13431
13432         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13433         short cuts.
13434         (vec_vsx_st): Ditto.
13435
13436 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13437
13438         * config/pa/pa-hpux10.opt: New.
13439         * config/hpux11.opt (pthread): New Driver option.
13440         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13441         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13442
13443 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13444
13445         * config/ia64/vms.opt: New.
13446         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13447
13448 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13449
13450         PR target/47580
13451         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13452         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13453         generator functions.
13454         (vsx_floatuns<VSi><mode>2): Ditto.
13455         (vsx_fix_trunc<mode><VSi>2): Ditto.
13456         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13457
13458 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13459
13460         * config/i386/djgpp.opt (posix): New Driver option.
13461
13462 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13463
13464         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13465         Move to the unsupported targets list.
13466
13467 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
13468
13469         PR rtl-optimization/47525
13470         * df-scan.c: Update copyright years.
13471         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13472         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13473
13474 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13475
13476         * config/i386/sysv4.h (TARGET_VERSION): Remove.
13477         (SUBTARGET_RETURN_IN_MEMORY): Remove.
13478         (ASM_OUTPUT_ASCII): Remove.
13479         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13480
13481 2011-02-02  Jeff Law  <law@redhat.com>
13482
13483         PR middle-end/47543
13484         * reload.c (find_reloads_address): Handle reg+d address where both
13485         components are invalid by reloading the entire address.
13486
13487 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13488             Richard Guenther  <rguenther@suse.de>
13489
13490         PR tree-optimization/40979
13491         PR bootstrap/47044
13492         * passes.c (init_optimization_passes): After LIM call copy_prop
13493         and DCE to clean up.
13494         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13495
13496 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13497
13498         PR tree-optimization/47576
13499         PR tree-optimization/47555
13500         * doc/invoke.texi (scev-max-expr-complexity): Documented.
13501         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13502         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13503         * tree-scalar-evolution.c (follow_ssa_edge): Use
13504         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13505
13506 2011-02-02  Richard Guenther  <rguenther@suse.de>
13507
13508         PR tree-optimization/47566
13509         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13510
13511 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13512
13513         PR debug/47106
13514         PR debug/47402
13515         * tree-inline.c (declare_return_variable): Remove unused caller
13516         variable.
13517
13518         PR debug/47106
13519         PR debug/47402
13520         * tree-flow-inline.h (clear_is_used, is_used_p): New.
13521         * cfgexpand.c (account_used_vars_for_block): Use them.
13522         * tree-nrv.c (tree_nrv): Likewise.
13523         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13524         (dump_scope_block): Likewise.
13525         (remove_unused_locals): Likewise.
13526
13527         PR debug/47106
13528         PR debug/47402
13529         * tree-inline.c (declare_return_variable): Add result decl to
13530         local decls only once.
13531         * gimple-low.c (record_vars_into): Mark newly-created variables
13532         as referenced.
13533
13534 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13535
13536         PR debug/47498
13537         PR debug/47501
13538         PR debug/45136
13539         PR debug/45130
13540         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13541         debug insns.
13542         (no_real_insns_p, schedule_block, set_priorities): Drop special
13543         treatment of boundary debug insns.
13544         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13545         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13546         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13547         (BOUNDARY_DEBUG_INSN_P): Likewise.
13548         (SCHEDULE_DEBUG_INSN_P): Likewise.
13549         * sched-rgn.c (init_ready_list): Drop special treatment of
13550         boundary debug insns.
13551         * final.c (rest_of_clean_state): Clear notes' BB.
13552
13553 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13554
13555         * config/openbsd.opt (assert=): New Driver option.
13556
13557 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13558
13559         * config/i386/nto.opt: New.
13560         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13561
13562 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13563
13564         * config/i386/netware.opt: New.
13565         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13566
13567 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13568
13569         * config/interix.opt (posix): New Driver option.
13570
13571 2011-02-01  DJ Delorie  <dj@redhat.com>
13572
13573         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13574
13575         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13576         class for A0/A1.
13577
13578 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
13579
13580         PR tree-optimization/47561
13581         * toplev.c (process_options): Print the Graphite flags.  Add
13582         flag_loop_flatten to the list of options requiring Graphite.
13583
13584 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13585
13586         * config/i386/cygming.opt (posix): New Driver option.
13587
13588 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13589
13590         * config/arm/vxworks.opt: New.
13591         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13592
13593 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13594
13595         * config/alpha/elf.opt: New.
13596         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13597         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13598
13599 2011-02-01  Richard Guenther  <rguenther@suse.de>
13600
13601         PR tree-optimization/47559
13602         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13603         store-motion on references that can throw.
13604
13605 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
13606
13607         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13608         * tree-pass.h (TDF_CSELIB): New macro.
13609         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13610         cselib_lookup): Check for it rather than for TDF_DETAILS.
13611
13612 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
13613
13614         PR driver/47547
13615         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13616         is HOST_BIT_BUCKET.
13617
13618         * opts.c (finish_options): Don't add x_aux_base_name if it is
13619         HOST_BIT_BUCKET.
13620
13621 2011-02-01  Richard Guenther  <rguenther@suse.de>
13622
13623         PR tree-optimization/47555
13624         Revert
13625         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
13626
13627         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13628
13629 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
13630
13631         PR gcc/46692
13632         * config/lm32/t-lm32: Add multilib for all CPU options.
13633
13634 2011-02-01  Richard Guenther  <rguenther@suse.de>
13635
13636         PR tree-optimization/47541
13637         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13638         sure to have a field at offset zero.
13639
13640 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13641
13642         * config/arc/arc.opt (EB, EL): New Driver options.
13643
13644 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13645
13646         * config/alpha/osf5.opt: New.
13647         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13648
13649 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13650
13651         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13652
13653 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13654
13655         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13656         -floop-interchange.
13657         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13658         is an alias of -floop-interchange and that it requires the
13659         Graphite infrastructure.
13660         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13661         flag_loop_interchange based on the value of flag_tree_loop_linear.
13662
13663 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13664             Richard Guenther  <rguenther@suse.de>
13665
13666         PR tree-optimization/47538
13667         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13668         type instead of r1type, except for comparisons.  For right
13669         shifts and comparisons punt if there are mismatches in
13670         sizetype vs. non-sizetype types.
13671
13672 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13673
13674         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13675         avx_runtime.
13676
13677 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13678
13679         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13680         version number.
13681         * configure: Regenerate.
13682
13683 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13684
13685         * configure.ac (gcc_cv_ld_static_option): Define.
13686         (gcc_cv_ld_dynamic_option): Define.
13687         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13688         instead.
13689         (HAVE_LD_STATIC_DYNAMIC): Update message.
13690         (LD_STATIC_OPTION): Define.
13691         (LD_DYNAMIC_OPTION): Define.
13692         * configure: Regenerate.
13693         * config.in: Regenerate.
13694         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13695         HAVE_LD_STATIC_DYNAMIC]: Use them.
13696
13697 2011-01-31  Nick Clifton  <nickc@redhat.com>
13698
13699         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13700         registers inside interrupt handlers if the handler is not a leaf
13701         function.
13702
13703 2011-01-31  Nick Clifton  <nickc@redhat.com>
13704
13705         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13706         reg_renumber returning an INVALID_REGNUM.
13707
13708 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13709
13710         PR libgcj/44341
13711         * doc/install.texi: Document host options discarded when cross
13712         configuring target libraries.
13713
13714 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13715
13716         Reverted:
13717         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13718         PR debug/45136
13719         PR debug/45130
13720         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13721         debug insns.
13722         (no_real_insns_p, schedule_block, set_priorities): Drop special
13723         treatment of boundary debug insns.
13724         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13725         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13726         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13727         (BOUNDARY_DEBUG_INSN_P): Likewise.
13728         (SCHEDULE_DEBUG_INSN_P): Likewise.
13729         * sched-rgn.c (init_ready_list): Drop special treatment of
13730         boundary debug insns.
13731         * final.c (rest_of_clean-state): Clear notes' BB.
13732
13733 2011-01-31  Alan Modra  <amodra@gmail.com>
13734
13735         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13736         toc relative expressions as we do in print_operand_address.
13737
13738 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
13739
13740         * doc/extend.texi: Follow spelling conventions.
13741         * doc/invoke.texi: Fix a typo.
13742
13743 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
13744
13745         * config/hpux11.opt: New.
13746         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13747         ia64*-*-hpux*): Use hpux11.opt.
13748
13749 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
13750
13751         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13752         to tmake_file.
13753
13754 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13755
13756         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13757         support sites.
13758
13759 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13760
13761         * doc/install.texi (Binaries): Remove outdated reference for
13762         Motorola 68HC11/68HC12 downloads.
13763
13764 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13765
13766         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13767         Drepper's paper.
13768
13769 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
13770
13771         PR bootstrap/47147
13772         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13773         used by NetBSD.
13774
13775 2011-01-28  Ahmad Sharif  <asharif@google.com>
13776
13777         * value-prof.c (check_counter): Corrected error message.
13778
13779 2011-01-29  Jie Zhang  <jie@codesourcery.com>
13780
13781         * config/arm/arm.c (arm_legitimize_reload_address): New.
13782         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13783         arm_legitimize_reload_address.
13784         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
13785
13786 2011-01-28  Ian Lance Taylor  <iant@google.com>
13787
13788         * godump.c (go_define): Ignore macros whose definitions include
13789         two adjacent operands.
13790
13791 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
13792
13793         PR target/42894
13794         * varasm.c (force_const_mem): Store copy of x in desc->constant
13795         instead of x itself.
13796         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13797         itself into REG_EQUAL note.
13798
13799 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
13800
13801         * config/freebsd.opt (posix, rdynamic): New Driver options.
13802
13803 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13804
13805         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13806         -Bstatic/-Bdynamic.
13807         * configure: Regenerate.
13808
13809 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
13810
13811         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13812         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13813
13814 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
13815
13816         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13817         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13818         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13819         (s390_preferred_reload_class): Make static. Change return and
13820         'rclass' argument type to reg_class_t.
13821
13822 2011-01-27  Jan Hubicka  <jh@suse.cz>
13823
13824         PR middle-end/46949
13825         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13826         (process_function_and_variable_attributes): Check defined weakrefs.
13827
13828 2011-01-27  Martin Jambor  <mjambor@suse.cz>
13829
13830         PR tree-optimization/47228
13831         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13832         build_ref_for_offset.
13833
13834 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13835
13836         * config/spu/spu-elf.h (ASM_SPEC): Remove.
13837
13838 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
13839
13840         PR rtl-optimization/46856
13841         * postreload.c (reload_combine_recognize_const_pattern): Do not
13842         separate cc0 setter and user on cc0 targets.
13843
13844 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
13845
13846         PR c/43082
13847         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13848         passed a VOID_TYPE expression, immediately emit an error and
13849         return error_mark_node.
13850
13851 2011-01-26  Jeff Law  <law@redhat.com>
13852
13853         PR rtl-optimization/47464
13854         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13855         rather than may_trap_p as needed.
13856
13857 2011-01-26  DJ Delorie  <dj@redhat.com>
13858
13859         PR rtl-optimization/46878
13860         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13861         setter/user dependency as well.
13862
13863 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13864
13865         PR rtl-optimization/44469
13866         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13867         after removing trivially dead basic blocks.
13868
13869 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13870
13871         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13872         * config/frv/frv.h (LINK_SPEC): Likewise.
13873         * config/i386/netware.h (LINK_SPEC): Likewise.
13874         * config/m68k/linux.h (ASM_SPEC): Likewise.
13875         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13876         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13877         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13878         * config/sparc/linux.h (ASM_SPEC): Likewise.
13879         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13880         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13881
13882 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13883
13884         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13885         * config/frv/frv.h (ASM_SPEC): Likewise.
13886         * config/m68k/linux.h (ASM_SPEC): Likewise.
13887         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13888         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13889         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13890         * config/sparc/linux.h (ASM_SPEC): Likewise.
13891         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13892         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13893
13894 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13895
13896         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13897         * config/frv/frv.h (LINK_SPEC): Likewise.
13898         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13899
13900 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13901
13902         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13903         * config/frv/frv.h (ASM_SPEC): Likewise.
13904         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13905         * config/m68k/linux.h (ASM_SPEC): Likewise.
13906         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13907         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13908         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13909         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13910         * config/sparc/linux.h (ASM_SPEC): Likewise.
13911         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13912         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13913         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13914
13915 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13916
13917         PR target/46997
13918         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13919         (*mux2): Ditto.
13920         (vec_extract_evenodd_help): Ditto.
13921         (vec_extract_evenv4hi): Ditto.
13922         (vec_extract_oddv4hi): Ditto.
13923         (vec_interleave_lowv2si): Ditto.
13924         (vec_interleave_highv2si): Ditto.
13925         (vec_extract_evenv2si): Ditto.
13926         (vec_extract_oddv2si: Ditto.
13927         (vec_pack_trunc_v2si): Ditto.
13928
13929 2011-01-22  Jan Hubicka  <jh@suse.cz>
13930
13931         PR target/47237
13932         * cgraph.h (cgraph_local_info): New field can_change_signature.
13933         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13934         signature can change.
13935         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13936         can change.
13937         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13938         (cgraph_function_versioning): We can not change signature of functions
13939         that don't allow that.
13940         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13941         (lto_input_node): Likewise.
13942         * ipa-inline.c (compute_inline_parameters): Compute
13943         local.can_change_signature.
13944         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13945         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13946         functions that can not change signature.
13947         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13948         init_cumulative_args): Do not use local calling conventions
13949         for functions that can not change signature.
13950
13951 2011-01-22  Jan Hubicka  <jh@suse.cz>
13952
13953         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13954
13955 2011-01-26  Richard Guenther  <rguenther@suse.de>
13956
13957         PR tree-optimization/47190
13958         * cgraphunit.c (process_common_attributes): New function.
13959         (process_function_and_variable_attributes): Use it.
13960
13961 2011-01-26  Richard Guenther  <rguenther@suse.de>
13962
13963         PR lto/47423
13964         * cgraphbuild.c (record_eh_tables): Record reference to personality
13965         function.
13966
13967 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13968
13969         PR debug/45454
13970         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13971         non-debug insns from moving up.
13972
13973 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13974
13975         PR target/40125
13976         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13977         t-dlldir{,-x} fragment for build and add it to tmake_file.
13978         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13979         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13980         * config/i386/t-dlldir: New file.
13981         (SHLIB_DLLDIR): Define.
13982         * config/i386/t-dlldir-x: New file.
13983         (SHLIB_DLLDIR): Define.
13984         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13985         (SHLIB_INSTALL): Use it.
13986
13987 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
13988
13989         PR target/47246
13990         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13991         lower bound of the allowed Thumb-2 coprocessor load/store
13992         index range to -256. Add explaining comment.
13993
13994 2011-01-25  Ian Lance Taylor  <iant@google.com>
13995
13996         * godump.c (go_define): Improve lexing of macro expansion to only
13997         accept expressions which match Go spec.
13998
13999 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14000
14001         PR c++/43601
14002         * tree.c (handle_dll_attribute): Handle it.
14003         * doc/extend.texi (@item dllexport): Mention it.
14004         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14005
14006 2011-01-25  Ian Lance Taylor  <iant@google.com>
14007
14008         PR tree-optimization/26854
14009         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14010         (decl_jump_unsafe): Move higher in file, with no other change.
14011         (bind): Set has_jump_unsafe_decl if appropriate.
14012         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14013         (check_earlier_gotos): Likewise.
14014         (c_check_switch_jump_warnings): Likewise.
14015
14016 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14017
14018         * doc/invoke.texi (Warning Options): Add missing hyphen.
14019         (-fprofile-dir): Minor grammatical fixes.
14020         (-fbranch-probabilities): Likewise.
14021
14022 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14023
14024         PR debug/45136
14025         PR debug/45130
14026         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14027         debug insns.
14028         (no_real_insns_p, schedule_block, set_priorities): Drop special
14029         treatment of boundary debug insns.
14030         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14031         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14032         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14033         (BOUNDARY_DEBUG_INSN_P): Likewise.
14034         (SCHEDULE_DEBUG_INSN_P): Likewise.
14035         * sched-rgn.c (init_ready_list): Drop special treatment of
14036         boundary debug insns.
14037         * final.c (rest_of_clean-state): Clear notes' BB.
14038
14039 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14040
14041         * Makefile.in (LAMBDA_H): Removed.
14042         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14043         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14044         lambda-trans.o, and tree-loop-linear.o.
14045         (lto-symtab.o): Remove dependence on LAMBDA_H.
14046         (tree-loop-linear.o): Remove rule.
14047         (lambda-mat.o): Same.
14048         (lambda-trans.o): Same.
14049         (lambda-code.o): Same.
14050         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14051         (tree-vect-slp.o): Same.
14052         * hwint.h (gcd): Moved here.
14053         (least_common_multiple): Same.
14054         * lambda-code.c: Removed.
14055         * lambda-mat.c: Removed.
14056         * lambda-trans.c: Removed.
14057         * lambda.h: Removed.
14058         * tree-loop-linear.c: Removed.
14059         * lto-symtab.c: Do not include lambda.h.
14060         * omega.c (gcd): Removed.
14061         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14062         * tree-data-ref.c (print_lambda_vector): Moved here.
14063         (lambda_vector_copy): Same.
14064         (lambda_matrix_copy): Same.
14065         (lambda_matrix_id): Same.
14066         (lambda_vector_first_nz): Same.
14067         (lambda_matrix_row_add): Same.
14068         (lambda_matrix_row_exchange): Same.
14069         (lambda_vector_mult_const): Same.
14070         (lambda_vector_negate): Same.
14071         (lambda_matrix_row_negate): Same.
14072         (lambda_vector_equal): Same.
14073         (lambda_matrix_right_hermite): Same.
14074         * tree-data-ref.h: Do not include lambda.h.
14075         (lambda_vector): Moved here.
14076         (lambda_matrix): Same.
14077         (dependence_level): Same.
14078         (lambda_transform_legal_p): Removed declaration.
14079         (lambda_collect_parameters): Same.
14080         (lambda_compute_access_matrices): Same.
14081         (lambda_vector_gcd): Same.
14082         (lambda_vector_new): Same.
14083         (lambda_vector_clear): Same.
14084         (lambda_vector_lexico_pos): Same.
14085         (lambda_vector_zerop): Same.
14086         (lambda_matrix_new): Same.
14087         * tree-flow.h (least_common_multiple): Removed declaration.
14088         * tree-parloops.c (lambda_trans_matrix): Moved here.
14089         (LTM_MATRIX): Same.
14090         (LTM_ROWSIZE): Same.
14091         (LTM_COLSIZE): Same.
14092         (LTM_DENOMINATOR): Same.
14093         (lambda_trans_matrix_new): Same.
14094         (lambda_matrix_vector_mult): Same.
14095         (lambda_transform_legal_p): Same.
14096         * tree-pass.h (pass_linear_transform): Removed declaration.
14097         * tree-ssa-loop.c (tree_linear_transform): Removed.
14098         (gate_tree_linear_transform): Removed.
14099         (pass_linear_transform): Removed.
14100         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14101         flag_loop_interchange.
14102
14103 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14104
14105         PR tree-optimization/47265
14106         PR tree-optimization/47443
14107         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14108         if name still has some uses.
14109
14110 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14111
14112         PR tree-optimization/47382
14113         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14114         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14115
14116 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
14117
14118         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14119         sjlj_except_unwind_info.
14120
14121 2011-01-25  Richard Guenther  <rguenther@suse.de>
14122
14123         PR tree-optimization/47426
14124         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14125         visible functions results escape.
14126
14127 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14128
14129         PR target/45701
14130         * config/arm/arm.c (any_sibcall_uses_r3): New function.
14131         (arm_get_frame_offsets): Use it.
14132
14133 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14134             Jakub Jelinek  <jakub@redhat.com>
14135
14136         PR tree-optimization/47271
14137         * tree-if-conv.c (bb_postdominates_preds): New.
14138         (if_convertible_bb_p): Call bb_postdominates_preds.
14139         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14140         (predicate_scalar_phi): Call bb_postdominates_preds.
14141
14142 2011-01-25  Nick Clifton  <nickc@redhat.com>
14143
14144         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14145         * config/rx/rx.c (rx_function_value): Likewise.
14146         (rx_promote_function_mode): Likewise.
14147         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14148         in order to make it legitimate.
14149         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14150         make sure that the first operand is the same as the result register.
14151         (addsi3_unspec): Delete.
14152         (subdi3): Do not accept immediate operands.
14153         (subdi3_internal): Likewise.
14154
14155 2011-01-25  Jeff Law  <law@redhat.com>
14156
14157         PR rtl-optimization/37273
14158         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14159         handle them like argument loads from stack slots.  Do not double
14160         count memory for memory constants and argument loads from stack slots.
14161
14162 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14163
14164         PR tree-optimization/47427
14165         PR tree-optimization/47428
14166         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14167         coalesce if the new root var would be TREE_READONLY.
14168
14169 2011-01-25  Richard Guenther  <rguenther@suse.de>
14170
14171         PR middle-end/47414
14172         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14173         correct type for TBAA.
14174
14175 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14176
14177         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14178         (close_phi_written_to_memory): Call for_each_index with
14179         dr_indices_valid_in_loop.
14180
14181 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14182
14183         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14184         when it is initialized.
14185
14186 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14187
14188         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14189         call to graphite_find_data_references_in_stmt.
14190         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14191         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14192         call to graphite_find_data_references_in_stmt.
14193         (analyze_drs_in_stmts): Same.
14194         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14195         in which the scalar analysis of indices is performed.
14196         (create_data_ref): Same.  Update call to dr_analyze_indices.
14197         (find_data_references_in_stmt): Update call to create_data_ref.
14198         (graphite_find_data_references_in_stmt): Same.
14199         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14200         declaration.
14201         (create_data_ref): Same.
14202         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14203         call to create_data_ref.
14204
14205 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14206
14207         * graphite-sese-to-poly.c (build_poly_scop): Move
14208         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14209
14210 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14211
14212         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14213         VAR_DECL, PARM_DECL, and RESULT_DECL.
14214
14215 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14216
14217         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14218         in a reduction PBB.
14219         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14220         that have already been marked as PBB_IS_REDUCTION.
14221
14222 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14223
14224         * graphite-scop-detection.c (same_close_phi_node): New.
14225         (remove_duplicate_close_phi): New.
14226         (make_close_phi_nodes_unique): New.
14227         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14228
14229 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14230
14231         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14232         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14233         of both data references to be the same.
14234
14235 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14236
14237         * graphite-dependences.c (build_lexicographical_constraint): Remove
14238         the gdim parameter.
14239         (build_lexicographical_constraint): Adjust call to
14240         ppl_powerset_is_empty.
14241         (dependence_polyhedron): Same.
14242         (graphite_legal_transform_dr): Same.
14243         (graphite_carried_dependence_level_k): Same.
14244         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14245         parameter.
14246         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14247
14248 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14249
14250         * graphite-sese-to-poly.c
14251         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14252         (close_phi_written_to_memory): New.
14253         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14254         and unshare_expr.
14255
14256 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14257
14258         * doc/install.texi: Update the expected version number of PPL to 0.11.
14259         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14260         #if PPL_VERSION_MINOR < 11.
14261
14262 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14263
14264         * graphite-dependences.c: Include graphite-cloog-util.h.
14265         (new_poly_ddr): Inlined into dependence_polyhedron.
14266         (free_poly_ddr): Moved close by new_poly_ddr.
14267         (dependence_polyhedron_1): Renamed dependence_polyhedron.
14268         Early return NULL when ppl_powerset_is_empty returns true.
14269         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
14270         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
14271         (graphite_legal_transform_dr): Call new_poly_ddr.
14272         (graphite_carried_dependence_level_k): Same.
14273         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
14274         (dot_transformed_deps_stmt_1): Removed.
14275         (dot_deps_stmt_1): Call dot_deps_stmt_2.
14276         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
14277         (dot_deps_1): Call dot_deps_2.
14278         * Makefile.in (graphite-dependences.o): Add missing dependence on
14279         graphite-cloog-util.h.
14280
14281 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14282
14283         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14284         (build_lexicographical_constraint): Same.
14285         (dependence_polyhedron_1): Same.
14286         (graphite_legal_transform_dr): Same.
14287         (graphite_carried_dependence_level_k): Same.
14288         * graphite-ppl.c (ppl_powerset_is_empty): New.
14289         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14290         * tree-data-ref.c (dump_data_reference): Print the basic block index.
14291
14292 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14293
14294         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14295         the "a followed by b" relation and document it.
14296
14297 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14298
14299         * graphite-dependences.c (build_lexicographical_constraint): Stop the
14300         iteration when the bag of constraints is empty.
14301
14302 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14303
14304         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14305
14306 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14307
14308         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14309         nest and two loop depths as parameters.
14310         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14311         lst_perfect_nestify.
14312
14313 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14314
14315         * graphite-dependences.c (print_pddr): Call
14316         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14317
14318 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14319
14320         * graphite-ppl.c (debug_gmp_value): New.
14321         * graphite-ppl.h (debug_gmp_value): Declared.
14322
14323 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
14324
14325         * doc/install.texi: Document availability of cloog-0.16.
14326
14327 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
14328
14329         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14330         invalid postdominance info.
14331
14332 2011-01-24  Jan Hubicka  <jh@suse.cz>
14333
14334         PR c/21659
14335         * doc/extend.texi (weak pragma): Drop claim that it must
14336         appear before definition.
14337         * varasm.c (merge_weak, declare_weak): Only sanity check
14338         that DECL is not output at a time it is declared weak.
14339
14340 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
14341
14342         * machmode.def: Fixed comments.
14343
14344 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
14345
14346         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14347
14348 2011-01-24  Paul Koning  <ni1d@arrl.net>
14349
14350         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14351         WORDS_BIG_ENDIAN.
14352
14353 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14354
14355         PR target/46519
14356         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14357         (block_info): Add scanned and prev.
14358         (move_or_delete_vzeroupper_2): Return if the basic block
14359         has been scanned and the upper 128bit state is unchanged
14360         from the last scan.
14361         (move_or_delete_vzeroupper_1): Return true if the exit
14362         state is changed.
14363         (move_or_delete_vzeroupper): Visit basic blocks using the
14364         work-list based algorithm based on vt_find_locations in
14365         var-tracking.c.
14366
14367         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14368
14369 2011-01-24  Nick Clifton  <nickc@redhat.com>
14370
14371         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14372         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14373         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
14374         then define __v850e1__.
14375         * doc/invoke.texi: Document -mv850es.
14376
14377 2011-01-24  Richard Henderson  <rth@redhat.com>
14378
14379         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14380         compound unordered comparisons.
14381         * config/rx/rx.c (rx_split_fp_compare): Remove.
14382         * config/rx/rx-protos.h: Update.
14383         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14384         (cbranchsf4): Don't call rx_split_fp_compare.
14385         (*cbranchsf4): Use rx_split_cbranch.
14386         (*cmpsf): Don't accept "i" constraint.
14387         (*conditional_branch): Only valid after reload.
14388         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
14389
14390 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14391
14392         PR target/47385
14393         * config/rs6000/altivec.md (vector constant splitters): Add
14394         support for creating vector single precision constants if -mvsx is
14395         used and we would create the constant using Altivec primitives.
14396
14397 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
14398             Richard Sandiford  <rdsandiford@googlemail.com>
14399
14400         PR rtl-optimization/47166
14401         * reload1.c (emit_reload_insns): Disable the spill_reg_store
14402         mechanism for PRE_MODIFY and POST_MODIFY.
14403         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14404         reloadreg.
14405
14406 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
14407
14408         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14409
14410 2011-01-22  Jan Hubicka  <jh@suse.cz>
14411
14412         PR lto/47333
14413         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14414
14415 2011-01-22  Jan Hubicka  <jh@suse.cz>
14416
14417         PR tree-optimization/43884
14418         PR lto/44334
14419         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14420         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14421
14422 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
14423
14424         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14425         * config/s390/s390.c (s390_register_move_cost,
14426         s390_memory_move_cost): New.
14427         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14428
14429 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14430
14431         PR middle-end/47401
14432         * except.c (sjlj_assign_call_site_values): Move setting the
14433         crtl->uses_eh_lsda flag to ...
14434         (sjlj_mark_call_sites): ... here.
14435         (sjlj_emit_function_enter): Support NULL dispatch label.
14436         (sjlj_build_landing_pads): In a function with no landing pads
14437         that still has must-not-throw regions, generate code to register
14438         a personality function with empty LSDA.
14439
14440 2011-01-21  Richard Henderson  <rth@redhat.com>
14441
14442         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14443
14444         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14445
14446         * compare-elim.c: New file.
14447         * Makefile.in (OBJS-common): Add it.
14448         (compare-elim.o): New.
14449         * common.opt (fcompare-elim): New.
14450         * opts.c (default_options_table): Add OPT_fcompare_elim.
14451         * tree-pass.h (pass_compare_elim_after_reload): New.
14452         * passes.c (init_optimization_passes): Add it.
14453         * recog.h: Protect against re-inclusion.
14454         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14455         * doc/invoke.texi (-fcompare-elim): Document it.
14456         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14457         * doc/tm.texi: Rebuild.
14458
14459 2011-01-22  Nick Clifton  <nickc@redhat.com>
14460
14461         * config/rx/rx.md (cstoresf4): Pass comparison operator to
14462         rx_split_fp_compare.
14463
14464 2011-01-22  Nick Clifton  <nickc@redhat.com>
14465
14466         * config/rx/rx.md (UNSPEC_CONST): New.
14467         (deallocate_and_return): Wrap the amount popped off the stack in
14468         an UNSPEC_CONST in order to stop it being rejected by
14469         -mmax-constant-size.
14470         (pop_and_return): Add a "(return)" rtx.
14471         (call): Drop the immediate operand.
14472         (call_internal): Likewise.
14473         (call_value): Likewise.
14474         (call_value_internal): Likewise.
14475         (sibcall_internal): Likewise.
14476         (sibcall_value_internal): Likewise.
14477         (sibcall): Likewise.  Generate an explicit call using
14478         sibcall_internal.
14479         (sibcall_value): Likewise.
14480         (mov<>): FAIL if a constant operand is not legitimate.
14481         (addsi3_unpsec): New pattern.
14482
14483         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14484         (ok_for_max_constant): New function.
14485         (gen_safe_add): New function.
14486         (rx_expand_prologue): Use gen_safe_add.
14487         (rx_expand_epilogue): Likewise.
14488         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
14489         UNSPEC CONSTs.
14490
14491 2011-01-21  Jeff Law  <law@redhat.com>
14492
14493         PR tree-optimization/47053
14494         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14495         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14496         statements are deleted.
14497         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
14498         is nonempty, then purge dead edges and cleanup the CFG.
14499
14500 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14501
14502         PR debug/47402
14503         Temporarily revert:
14504         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14505         PR debug/47106
14506         * tree-dfa.c (create_var_ann): Mark variable as used.
14507
14508 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14509
14510         PR middle-end/45566
14511         * except.c (convert_to_eh_region_ranges): Emit queued no-region
14512         notes from other section in hot/cold partitioning even if
14513         last_action is -3.  Increment call_site_base.
14514
14515         PR rtl-optimization/47366
14516         * fwprop.c (forward_propagate_into): Return bool.  If
14517         any changes are made, -fnon-call-exceptions is used and
14518         REG_EH_REGION note is present, call purge_dead_edges
14519         and return true if it purged anything.
14520         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14521         any EH edges were purged.
14522
14523 2011-01-21  Jeff Law  <law@redhat.com>
14524
14525         PR rtl-optimization/41619
14526         * caller-save.c (setup_save_areas): Break out code to determine
14527         which hard regs are live across calls by examining the reload chains
14528         so that it is always used.
14529         Eliminate code which checked REG_N_CALLS_CROSSED.
14530
14531 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14532
14533         PR tree-optimization/47355
14534         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14535         NOP has non-debug uses beyond PHIs in new_bb.
14536
14537 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14538
14539         PR debug/47106
14540         * cfgexpand.c (account_used_vars_for_block): Only account vars
14541         that are annotated as used.
14542         (estimated_stack_frame_size): Don't set TREE_USED.
14543         * tree-dfa.c (create_var_ann): Mark variable as used.
14544
14545 2011-01-21  Richard Guenther  <rguenther@suse.de>
14546
14547         PR middle-end/47395
14548         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14549
14550 2011-01-21  Richard Guenther  <rguenther@suse.de>
14551
14552         PR tree-optimization/47365
14553         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14554         (vn_reference_lookup_pieces): Adjust.
14555         (vn_reference_lookup): Likewise.
14556         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14557         (vn_reference_lookup_3): Only look through kills if in
14558         VN_WALKREWRITE mode.
14559         (vn_reference_lookup_pieces): Adjust.
14560         (vn_reference_lookup): Likewise.
14561         (visit_reference_op_load): Likewise.
14562         (visit_reference_op_store): Likewise.
14563         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14564         (compute_avail): Likewise.
14565         (eliminate): Likewise.
14566
14567 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14568
14569         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14570         DECL_IGNORED_P non-reg vars if they are used.
14571
14572         PR tree-optimization/47391
14573         * varpool.c (const_value_known_p): Return false if
14574         decl is volatile.
14575
14576 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
14577
14578         PR bootstrap/47215
14579         * config/i386/i386.c (ix86_local_alignment): Handle
14580         case for va_list_type_node is nil.
14581         (ix86_canonical_va_list_type): Likewise.
14582
14583 2011-01-21  Alan Modra  <amodra@gmail.com>
14584
14585         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14586         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14587
14588 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14589
14590         * config/arm/arm.md (define_attr type): Rename f_load
14591         and f_store to f_fpa_load and f_fpa_store. Update.
14592         (write_conflict): Deal with rename fallout.
14593         (*push_fp_multi): Likewise.
14594         * config/arm/fpa.md (f_load): Use f_fpa_load.
14595         (f_store): Use f_fpa_store.
14596         (*movsf_fpa): Likewise.
14597         (*movdf_fpa): Likewise.
14598         (*movxf_fpa): Likewise.
14599         (*thumb2_movsf_fpa): Likewise.
14600         (*thumb2_movdf_fpa): Likewise.
14601         (*thumb2_movxf_fpa): Likewise.
14602         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14603         f_loadd and f_stored.
14604         (*thumb2_movdi_vfp): Likewise.
14605         (*thumb2_movsf_vfp): Fix attribute to f_loads.
14606         (*thumb2_movsi_vfp): Likewise.
14607         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14608         Use f_loads instead of f_load.
14609         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14610
14611 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
14612
14613         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14614         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14615         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14616         (xtensa_mode_dependent_address_p): New function.
14617         (constantpool_address_p): Make static. Change return type to bool.
14618         Change argument type to const_rtx. Use CONST_INT_P predicate.
14619
14620 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
14621
14622         PR debug/46583
14623         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14624
14625 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14626
14627         PR debug/47283
14628         * cfgexpand.c (expand_debug_expr): Instead of generating
14629         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14630         etc. handling.
14631
14632 2011-01-20  Richard Guenther  <rguenther@suse.de>
14633
14634         PR middle-end/47370
14635         * tree-inline.c (remap_gimple_op_r): Recurse manually for
14636         the pointer operand of MEM_REFs.
14637
14638 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14639
14640         PR tree-optimization/46130
14641         * ipa-split.c (consider_split): If return_bb contains non-virtual
14642         PHIs other than for retval or if split_function would not adjust it,
14643         refuse to split.
14644
14645 2011-01-20  Richard Guenther  <rguenther@suse.de>
14646
14647         PR tree-optimization/47167
14648         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14649         Revert previous change, only avoid enumeral type changes.
14650
14651 2011-01-19  Mike Stump  <mikestump@comcast.net>
14652
14653         * doc/tm.texi.in (BRANCH_COST): Englishify.
14654         * doc/tm.texi (BRANCH_COST): Likewise.
14655
14656 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14657
14658         PR c++/47291
14659         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14660         (gen_scheduled_generic_parms_dies): New functions.
14661         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14662         generation for the end of CU compilation.
14663         (dwarf2out_finish): Generate template parameters DIEs here.
14664
14665 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14666
14667         PR debug/46240
14668         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14669         debug bind stmt on merge edges.
14670
14671 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14672
14673         PR debug/47079
14674         PR debug/46724
14675         * function.c (instantiate_expr): Instantiate incoming rtl of
14676         implicit arguments, and recurse on VALUE_EXPRs.
14677         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14678         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14679
14680 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14681
14682         * c-parser.c (c_parser_for_statement): Initialize
14683         collection_expression.
14684
14685 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14686
14687         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14688
14689 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14690
14691         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14692         (LINK_SHLIB_SPEC): Don't use %(link_path).
14693         (SUBTARGET_EXTRA_SPECS): Remove link_path.
14694
14695 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14696
14697         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14698         (NO_SHARED_LIB_SUPPORT): Remove.
14699         (LINK_SHLIB_SPEC): Remove one conditional definition.
14700
14701 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14702
14703         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14704         %{call_shared}.
14705         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14706         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14707         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14708         %{call_shared} and conditionals on these options not being passed.
14709         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14710         %{call_shared}.
14711
14712 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14713
14714         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14715         simplify.
14716
14717         * ipa-split.c: Spelling fixes.
14718
14719 2011-01-19  Richard Henderson  <rth@redhat.com>
14720
14721         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14722         (*mulsi3): Likewise.
14723
14724         * longlong.h [__mn10300__] (count_leading_zeros): New.
14725         [__mn10300__] (umul_ppmm, smul_ppmm): New.
14726         [__mn10300__] (add_ssaaaa, subddmmss): New.
14727         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14728         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14729
14730 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14731
14732         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14733
14734 2011-01-19  Richard Henderson  <rth@redhat.com>
14735
14736         * config/mn10300/mn10300.md (addsi3_flags): New.
14737         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14738         (subsi3_flags, subc_internal, subdi3): New.
14739         (subdi3_internal, *subdi3_degenerate): New.
14740         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14741
14742         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14743         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14744         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
14745         * config/mn10300/mn10300-protos.h: Update.
14746         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14747         (return_ret): Likewise.  Rename from return_internal_regs.
14748         (return_internal): Remove.
14749
14750         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14751         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14752         (mn10300_legitimate_constant_p): Likewise.
14753         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14754         (mn10300_frame_size): New.
14755         (mn10300_expand_prologue): Use it.
14756         (mn10300_expand_epilogue): Likewise.
14757         (mn10300_initial_offset): Likewise.
14758         * config/mn10300/mn10300-protos.h: Update.
14759         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14760         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14761         (prologue, epilogue, return_internal): Tidy output code.
14762         (mn10300_store_multiple_operation, return): Likewise.
14763         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14764         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14765         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14766         (load_pic, am33_load_pic): New.
14767         (mn10300_load_pic0, mn10300_load_pic1): New.
14768
14769         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14770         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14771         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14772         (cc_flags_for_mode, cc_flags_for_code): New.
14773         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14774         overflow flag is not valid.  Validate that the flags we need
14775         for the comparison are valid.
14776         (mn10300_output_cmp): Remove.
14777         (mn10300_output_add): New.
14778         (mn10300_select_cc_mode): Use cc_flags_for_code.
14779         (mn10300_split_cbranch): New.
14780         (mn10300_match_ccmode): New.
14781         (mn10300_split_and_operand_count): New.
14782         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14783         to the function.
14784         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14785         (addsi3): ... here.  Use mn10300_output_add.
14786         (*addsi3_flags): New.
14787         (*am33_subsi3, *mn10300_subsi3): Merge...
14788         (subsi3): ... here.  Use attribute isa.
14789         (*subsi3_flags): New.
14790         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
14791         when possible.
14792         (*am33_andsi3, *mn10300_andsi3): Merge...
14793         (andsi3): ... here.
14794         (*andsi3_flags): New.
14795         (andsi3 splitters): New.
14796         (*am33_iorsi3, *mn10300_iorsi3): Merge...
14797         (iorsi3): ... here.
14798         (*iorsi3_flags): New.
14799         (*am33_xorsi3, *mn10300_xorsi3): Merge...
14800         (xorsi3): ... here.
14801         (*xorsi3_flags): New.
14802         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14803         (one_cmplsi2): ... here.
14804         (*one_cmplsi2_flags): New.
14805         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
14806         instead of "dax" in constraints.  Use mn10300_split_cbranch.
14807         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
14808         use matching constraints to eliminate a self-comparison.
14809         (*integer_conditional_branch): Rename from integer_conditional_branch.
14810         Use int_mode_flags to match CC_REG.
14811         (*cbranchsi4_btst, *btstsi): New.
14812         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
14813         mn10300_split_cbranch.
14814         (*am33_cmpsf): Rename from am33_cmpsf.
14815         (*float_conditional_branch): Rename from float_conditional_branch.
14816         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14817         (zero_extendqisi2): ... here.
14818         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14819         (zero_extendhisi2): ... here.
14820         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14821         (extendqisi2): ... here.
14822         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14823         (extendhisi2): ... here.
14824         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14825         (ashlsi3): ... here.
14826         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14827         (lshrsi3): ... here.
14828         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14829         (ashrsi3): ... here.
14830         (consecutive add peephole): Remove.
14831         * config/mn10300/predicates.md (label_ref_operand): New.
14832         (int_mode_flags): New.
14833         (CCZN_comparison_operator): New.
14834
14835         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14836         (throughput_42_latency_43): New reservation.
14837         (mulsidi3, umulsidi3): New expanders.
14838         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
14839         the MDR register to allocation; separately allocate the low and
14840         high parts of the DImode result.
14841         (umulsidi3_internal): Similarly.
14842         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14843         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
14844         (udivsi3, umodsi3): Remove.
14845         (udivmodsi4, divmodsi4): New expanders.
14846         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
14847         (*divmodsi4): Simiarly.
14848         (ext_internal): New.
14849
14850         * config/mn10300/constraints.md ("z"): New constraint.
14851         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14852         (FIXED_REGISTERS): Don't fix MDR.
14853         (CALL_USED_REGSITERS): Reformat nicely.
14854         (REG_ALLOC_ORDER): Add MDR.
14855         (enum regclass): Add MDR_REGS.
14856         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14857         (IRA_COVER_CLASSES): Add MDR_REGS.
14858         (REGNO_REG_CLASS): Handle MDR_REG.
14859         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14860         (mn10300_register_move_cost): Likewise.
14861         * config/mn10300/mn10300.md (MDR_REG): New.
14862         (*movsi_internal): Handle moves to/from MDR_REGS.
14863
14864         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14865         POST_MODIFY.
14866         (mn10300_secondary_reload): Tidy combination reload classes.
14867         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14868         addresses for AM33.  Allow symbolic offsets for reg+imm.
14869         (mn10300_regno_in_class_p): New.
14870         (mn10300_legitimize_reload_address): New.
14871         * config/mn10300/mn10300.h (enum reg_class): Remove
14872         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14873         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14874         SP_OR_GENERAL_REGS.
14875         (REG_CLASS_NAMES): Update to match.
14876         (REG_CLASS_CONTENTS): Likewise.
14877         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14878         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14879         (REGNO_IN_RANGE_P): Remove.
14880         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14881         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14882         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14883         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14884         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14885         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14886         (REGNO_GENERAL_P): New.
14887         (HAVE_POST_MODIFY_DISP): New.
14888         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14889         (LEGITIMIZE_RELOAD_ADDRESS): New.
14890         * config/mn10300/mn10300-protos.h: Update.
14891
14892         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14893         DATA_REGS for AM33 stack-pointer destination.
14894         (mn10300_preferred_output_reload_class): Likewise.
14895         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14896         into a form appropriate for ...
14897         (TARGET_SECONDARY_RELOAD): New.
14898         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14899         * config/mn10300/mn10300-protos.h: Update.
14900         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14901         reload_insi; use the "A" constraint for the scratch; handle AM33
14902         moves of sp to non-address registers.
14903
14904         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14905         (*movqi_internal): ... here.
14906         (*am33_movhi, *mn10300_movhi): Merge into...
14907         (*movhi_internal): ... here.
14908         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14909         as the source/destination of moves from/to SP.
14910         (movsf): Only allow for AM33-2.
14911         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14912         any integer constant constraint.  Only allow for AM33-2.  Tidy
14913         all of the alternative outputs.
14914         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14915         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14916         for MN103.
14917         (udivsi3, umodsi3): New patterns for MN103 only.
14918
14919 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14920
14921         * doc/tm.texi.in: Spell out that a lack of register class unions
14922         can lead to ICEs.
14923         * doc/tm.texi: Regenerate.
14924
14925 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14926
14927         PR rtl-optimization/47337
14928         * dce.c (check_argument_store): New function.
14929         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14930
14931         PR tree-optimization/47290
14932         * tree-eh.c (infinite_empty_loop_p): New function.
14933         (cleanup_empty_eh): Use it.
14934
14935 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14936
14937         PR target/46997
14938         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14939         (a64_expand_widen_sum): Ditto.
14940         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14941         (vec_extract_evenodd_help): Ditto.
14942         (vec_extract_evenv4hi): Ditto.
14943         (vec_extract_oddv4hi): Ditto.
14944         (vec_extract_evenv2si): Ditto.
14945         (vec_extract_oddv2si): Ditto.
14946         (vec_extract_evenv2sf): Ditto.
14947         (vec_extract_oddv2sf): Ditto.
14948         (vec_pack_trunc_v4hi: Ditto.
14949         (vec_pack_trunc_v2si): Ditto.
14950         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14951         (vec_interleave_highv8qi): Ditto.
14952         (mix1_r): Ditto.
14953         (vec_extract_oddv8qi): Ditto.
14954         (vec_interleave_lowv4hi): Ditto.
14955         (vec_interleave_highv4hi): Ditto.
14956         (vec_interleave_lowv2si): Ditto.
14957         (vec_interleave_highv2si): Ditto.
14958
14959 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14960
14961         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14962         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14963         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14964         (pa_c_mode_for_suffix): New.
14965         (TARGET_EXPAND_BUILTIN): Define.
14966         (TARGET_C_MODE_FOR_SUFFIX): Define.
14967         (pa_builtins): Define.
14968         (pa_init_builtins): Register __float128 type and init new support
14969         builtins.
14970         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14971         * config/pa/quadlib.c (_U_Qfcopysign): New.
14972
14973 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14974
14975         PR middle-end/46894
14976         * explow.c (allocate_dynamic_stack_space): Do not assume more than
14977         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14978         are defined.
14979
14980 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14981
14982         PR tree-optimization/47179
14983         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14984         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14985
14986 2011-01-18  Richard Guenther  <rguenther@suse.de>
14987
14988         PR rtl-optimization/47216
14989         * emit-rtl.c: Include tree-flow.h.
14990         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14991         of replicating it with different semantics.
14992         * Makefile.in (emit-rtl.o): Adjust.
14993
14994 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14995
14996         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
14997         (cortex_a9_dp): Handle neon types correctly.
14998
14999 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
15000
15001         PR rtl-optimization/47299
15002         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15003         subtarget.  Use normal multiplication if both operands are constants.
15004         * expmed.c (expand_widening_mult): Don't try to optimize constant
15005         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15006         before using it.
15007
15008 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15009
15010         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15011         spacing after 'e.g.', typos, comma, hyphenation.
15012
15013 2011-01-17  Richard Henderson  <rth@redhat.com>
15014
15015         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15016         (rx_restricted_mem_operand): New.
15017         (rx_shift_operand): Use register_operand.
15018         (rx_source_operand, rx_compare_operand): Likewise.
15019         * config/rx/rx.md (addsi3_flags): New expander.
15020         (adddi3): Rewrite as expander.
15021         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15022         (subsi3_flags): New expander.
15023         (subdi3): Rewrite as expander.
15024         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15025
15026         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15027         (rx_init_builtins): Remove sat builtin.
15028         (rx_expand_builtin): Likewise.
15029         * config/rx/rx.md (ssaddsi3): New.
15030         (*sat): Rename from sat.  Represent the CC_REG input.
15031
15032         * config/rx/predicates.md (rshift_operator): New.
15033         * config/rx/rx.c (rx_expand_insv): Remove.
15034         * config/rx/rx-protos.h: Update.
15035         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15036         operand to the canonical position.
15037         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15038         (*bitclr, *bitclr_in_memory): Similarly.
15039         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15040         (insv): Retain the zero_extract in the expansion.
15041
15042         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15043         (bswaphi2, bitinvert, revw): Likewise.
15044
15045         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15046         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15047         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15048         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15049         (bitset, bitset_in_memory): Likewise.
15050         (bitinvert, bitinvert_in_memory): Likewise.
15051         (bitclr, bitclr_in_memory): Likewise.
15052         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15053         (rx_strend, rx_cmpstrn): Likewise.
15054         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15055         (bitop peep2 patterns): Remove.
15056
15057         * config/rx/rx.c (rx_match_ccmode): New.
15058         * config/rx/rx-protos.h: Update.
15059         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15060         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15061         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15062         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15063         (fix_truncsfsi2, floatsisf2): Likewise.
15064         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15065         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15066         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15067         (*subsi3_flags, *xorsi3_flags): New.
15068
15069         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15070
15071         * config/rx/rx.c (rx_print_operand): Remove workaround for
15072         unsplit comparison operations.
15073
15074         * config/rx/rx.md (movsicc): Split after reload.
15075         (*movsicc): Merge *movsieq and *movsine via match_operator.
15076         (*stcc): New pattern.
15077
15078         * config/rx/rx.c (rx_float_compare_mode): Remove.
15079         * config/rx/rx.h (rx_float_compare_mode): Remove.
15080         * config/rx/rx.md (cstoresi4): Split after reload.
15081         (*sccc): New pattern.
15082
15083         * config/rx/predicates.md (label_ref_operand): New.
15084         (rx_z_comparison_operator): New.
15085         (rx_zs_comparison_operator): New.
15086         (rx_fp_comparison_operator): New.
15087         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15088         Validate that the flags are set properly for the comparison.
15089         (rx_gen_cond_branch_template): Remove.
15090         (rx_cc_modes_compatible): Remove.
15091         (mode_from_flags): New.
15092         (flags_from_code): Rename from flags_needed_for_conditional.
15093         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15094         (rx_select_cc_mode): Likewise.
15095         (rx_split_fp_compare): New.
15096         (rx_split_cbranch): New.
15097         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15098         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15099         (*cbranchsf4): Similarly.
15100         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15101         match_operator and rx_split_cbranch.
15102         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15103         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15104         (*cmpsi): Rename from cmpsi.
15105         (*tstsi): Rename from tstsi.
15106         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15107         (*conditional_branch): Rename from conditional_branch.
15108         (*reveresed_conditional_branch): Remove.
15109         (b<code>): Remove expander.
15110         * config/rx/rx-protos.h: Update.
15111
15112         * config/rx/rx.c (rx_compare_redundant): Remove.
15113         * config/rx/rx.md (cmpsi): Don't use it.
15114         * config/rx/rx-protos.h: Update.
15115
15116         * config/rx/rx-modes.def (CC_F): New mode.
15117         * config/rx/rx.c (rx_select_cc_mode): New.
15118         * config/rx/rx.h (SELECT_CC_MODE): Use it.
15119         * config/rx/rx-protos.h: Update.
15120
15121 2011-01-17  Richard Henderson  <rth@redhat.com>
15122
15123         * except.c (dump_eh_tree): Fix stray ; after for statement.
15124
15125 2011-01-17  Richard Guenther  <rguenther@suse.de>
15126
15127         PR tree-optimization/47313
15128         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15129         handling before copying the body.  Properly deal with
15130         by-reference result in SSA form.
15131
15132 2011-01-17  Ian Lance Taylor  <iant@google.com>
15133
15134         PR target/47219
15135         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15136         (struct_value_alias_set): Don't define.
15137         (sparc_option_override): Don't set sparc_sr_alias_set and
15138         struct_value_alias_set.
15139         (save_or_restore_regs): Use gen_frame_mem rather than calling
15140         set_mem_alias_set.
15141         (sparc_struct_value_rtx): Likewise.
15142
15143 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15144
15145         PR target/47318
15146         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15147         (_mm_maskstore_pd): Likewise.
15148         (_mm_maskload_ps): Likewise.
15149         (_mm_maskstore_ps): Likewise.
15150         (_mm256_maskload_pd): Change mask to __m256i.
15151         (_mm256_maskstore_pd): Likewise.
15152         (_mm256_maskload_ps): Likewise.
15153         (_mm256_maskstore_ps): Likewise.
15154
15155         * config/i386/i386-builtin-types.def: Updated.
15156         (ix86_expand_special_args_builtin): Likewise.
15157
15158         * config/i386/i386.c (bdesc_special_args): Update
15159         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15160         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15161         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15162         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15163
15164         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15165         Use <avxpermvecmode> on mask register.
15166         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15167
15168 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15169             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15170             Eric Botcazou  <ebotcazou@adacore.com>
15171
15172         PR target/46655
15173         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15174         if <= USHRT_MAX in 32-bit mode.
15175
15176 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15177
15178         * doc/install.texi (Configuration, Specific): Wrap long
15179         lines in examples.  Allow line wrapping in long options
15180         and URLs where beneficial for PDF output.
15181
15182 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15183
15184         * config/mips/mips.c (mips_classify_symbol): Don't return
15185         SYMBOL_PC_RELATIVE for nonlocal labels.
15186
15187 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15188
15189         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15190
15191 2011-01-15  Jan Hubicka  <jh@suse.cz>
15192
15193         PR tree-optimization/47276
15194         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15195         declarations as needed.
15196
15197 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15198
15199         * common.opt (fdevirtualize): New flag.
15200         * doc/invoke.texi (Option Summary): Document it.
15201         * opts.c (default_options_table): Add devirtualize flag.
15202         * ipa-prop.c (detect_type_change): Return immediately if
15203         devirtualize flag is not set.
15204         (detect_type_change_ssa): Likewise.
15205         (compute_known_type_jump_func): Likewise.
15206         (ipa_analyze_virtual_call_uses): Likewise.
15207
15208 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15209
15210         PR tree-optimization/45934
15211         PR tree-optimization/46302
15212         * ipa-prop.c (type_change_info): New type.
15213         (stmt_may_be_vtbl_ptr_store): New function.
15214         (check_stmt_for_type_change): Likewise.
15215         (detect_type_change): Likewise.
15216         (detect_type_change_ssa): Likewise.
15217         (compute_complex_assign_jump_func): Check for dynamic type change.
15218         (compute_complex_ancestor_jump_func): Likewise.
15219         (compute_known_type_jump_func): Likewise.
15220         (compute_scalar_jump_functions): Likewise.
15221         (ipa_analyze_virtual_call_uses): Likewise.
15222         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15223
15224 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15225
15226         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15227         * config/i386/i386.opt (msse5): New Alias.
15228
15229 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15230
15231         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15232         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15233         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15234         * config/sparc/sparc.h (CC1_SPEC): Likewise.
15235
15236 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15237
15238         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15239         -mcpu options.
15240         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15241         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15242         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15243         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15244         Likewise.
15245         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15246
15247 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15248
15249         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15250
15251 2011-01-14  Mike Stump  <mikestump@comcast.net>
15252
15253         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15254         * config/fr30/fr30.md: Likweise
15255         (movsi_push): Likewise.
15256         (movsi_pop): Likewise.
15257         (enter_func): Likewise.
15258         * config/moxie/moxie.md (movsi_push): Likewise.
15259         (movsi_pop): Likewise.
15260
15261 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15262
15263         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15264         %{no_archive} %{exact_version}.
15265         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15266         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15267         %{no_archive} %{exact_version}.
15268         * config/mips/openbsd.h (LINK_SPEC): Likewise.
15269         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15270         * config/mips/vxworks.h: Likewise.
15271
15272 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15273
15274         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15275
15276 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15277
15278         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15279         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15280
15281 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15282
15283         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15284         -nodefaultlib.
15285
15286 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15287
15288         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15289         for mcpu not cpu.
15290         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15291         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15292         not cpu.
15293         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15294         Don't handle -shlib.
15295
15296 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15297
15298         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15299         (CC1_SPEC): Don't handle -profile.
15300
15301 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15302
15303         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15304         * config/mips/mips.h (CC1_SPEC): Likewise.
15305
15306 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15307
15308         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15309         * config/mips/mips.h (CC1_SPEC): Likewise.
15310
15311 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15312
15313         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15314         * config/m32r/linux.h (LINK_SPEC): Likewise.
15315         * config/mips/linux.h (LINK_SPEC): Likewise.
15316         * config/mips/linux64.h (LINK_SPEC): Likewise.
15317         * config/sparc/linux.h (LINK_SPEC): Likewise.
15318         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15319         LINK_SPEC): Likewise.
15320         * config/xtensa/linux.h (LINK_SPEC): Likewise.
15321
15322 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15323
15324         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15325         %{version:-v}.
15326         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15327
15328 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15329
15330         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15331         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15332
15333 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15334
15335         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15336
15337 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15338
15339         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15340         supports -Bstatic/-Bdynamic.
15341         * configure: Regenerate.
15342
15343 2011-01-14  Jan Hubicka  <jh@suse.cz>
15344             Jack Howarth  <howarth@bromo.med.uc.edu>
15345
15346         PR target/46037
15347         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15348         when checking debug_info_level. Test write_symbols instead of
15349         debug_hooks->var_location when setting flag_var_tracking_uninit.
15350
15351 2011-01-14  Richard Guenther  <rguenther@suse.de>
15352
15353         PR tree-optimization/47179
15354         * target.def (ref_may_alias_errno): New target hook.
15355         * targhooks.h (default_ref_may_alias_errno): Declare.
15356         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15357         (default_ref_may_alias_errno): New function.
15358         * target.h (struct ao_ref_s): Declare.
15359         * tree-ssa-alias.c: Include target.h.
15360         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15361         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15362         (targhooks.o): Likewise.
15363         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15364         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15365
15366 2011-01-14  Richard Guenther  <rguenther@suse.de>
15367
15368         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
15369
15370 2011-01-14  Richard Guenther  <rguenther@suse.de>
15371
15372         PR tree-optimization/47280
15373         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15374         return CFG changes.
15375         (tree_ssa_forward_propagate_single_use_vars): Deal with
15376         CFG changes from associate_plusminus.
15377
15378 2011-01-14  Richard Guenther  <rguenther@suse.de>
15379
15380         PR middle-end/47281
15381         Revert
15382         2011-01-11  Richard Guenther  <rguenther@suse.de>
15383
15384         PR tree-optimization/46076
15385         * tree-ssa.c (useless_type_conversion_p): Conversions from
15386         unprototyped to empty argument list function types are useless.
15387
15388 2011-01-14  Richard Guenther  <rguenther@suse.de>
15389
15390         PR tree-optimization/47286
15391         * tree-ssa-structalias.c (new_var_info): Register variables are global.
15392
15393 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15394
15395         PR middle-end/46823
15396         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15397
15398 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
15399
15400         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15401         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15402         * config/xtensa/xtensa.c (xtensa_libcall_value,
15403         xtensa_function_value_regno_p): New functions.
15404         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15405
15406 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
15407
15408         PR c++/47213
15409         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15410         PE specific hook.
15411         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15412         New function prototype.
15413         * config/i386/winnt.c (i386_pe_assemble_visibility):
15414         Warn only if attribute was specified by user.
15415
15416 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15417
15418         PR target/47251
15419         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15420         floating point.
15421         (floatunsdidf2_fcfidu): Ditto.
15422
15423 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15424
15425         * config/s390/s390.c (print_operand_address): Replace 'error' with
15426         'output_operand_lossage'.
15427         (print_operand): Likewise.
15428
15429 2011-01-13  Jeff Law  <law@redhat.com>
15430
15431         PR rtl-optimization/39077
15432         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15433         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15434         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15435         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15436         * gcse.c (prune_insertions_deletions): New function.
15437         (compute_pre_data): Use it.
15438
15439 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
15440
15441         PR debug/PR46973
15442         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15443         static function.
15444         (prune_unused_types_mark): Use it.
15445
15446 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
15447
15448         PR rtl-optimization/45352
15449         * sel-sched.c: Update copyright years.
15450         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15451         in the advancing loop when we have issued issue_rate insns.
15452
15453 2011-01-12  Richard Henderson  <rth@redhat.com>
15454
15455         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15456         (TARGET_MD_ASM_CLOBBERS): New.
15457
15458         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15459         (TARGET_DELEGITIMIZE_ADDRESS): New.
15460
15461         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15462         (clzsi2, *bsch): New patterns.
15463
15464         * config/mn10300/mn10300.md (INT): New mode iterator.
15465         (*mov<INT>_clr): New pattern, and peep2 to generate it.
15466
15467         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15468         flag_split_wide_types.
15469
15470         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15471         (mn10300_trampoline_init): Rewrite without a template, an immediate
15472         load and a direct branch.
15473         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15474
15475 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
15476
15477         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15478         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15479         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15480         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15481
15482 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
15483
15484         PR debug/47209
15485         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15486         of type.
15487
15488 2011-01-12  Jan Hubicka  <jh@suse.cz>
15489
15490         PR driver/47244
15491         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15492         (PLUGIN_COND_CLOSE): New macro.
15493         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15494
15495 2011-01-12  Richard Guenther  <rguenther@suse.de>
15496
15497         PR lto/47259
15498         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15499         register variables in a MEM_REF.
15500
15501 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
15502
15503         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15504         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15505         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15506         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15507         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15508         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15509         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15510         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15511         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15512         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15513         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15514         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15515         * config/gnu-user.h: New.  Copied from linux.h.
15516         (LINUX_TARGET_STARTFILE_SPEC): Rename to
15517         GNU_USER_TARGET_STARTFILE_SPEC.
15518         (LINUX_TARGET_ENDFILE_SPEC): Rename to
15519         GNU_USER_TARGET_ENDFILE_SPEC.
15520         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15521         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15522         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15523         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15524         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15525         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15526         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15527         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15528         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15529         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15530         * config/arm/linux-eabi.h (CC1_SPEC): Use
15531         GNU_USER_TARGET_CC1_SPEC.
15532         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15533         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15534         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15535         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15536         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15537         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15538         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15539         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15540
15541 2011-01-12  Richard Guenther  <rguenther@suse.de>
15542
15543         PR other/46946
15544         * doc/invoke.texi (ffast-math): Document it is turned on
15545         with -Ofast.
15546
15547 2011-01-12  Jan Hubicka  <jh@suse.cz>
15548
15549         PR tree-optimization/47233
15550         * opts.c (common_handle_option): Disable ipa-reference with profile
15551         feedback.
15552
15553 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15554
15555         * c-parser.c (c_parser_objc_at_property_declaration): Improved
15556         error message.
15557
15558 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15559
15560         * c-parser.c (c_lex_one_token): Updated and reindented some
15561         comments.  No changes in code.
15562
15563 2011-01-11  Ian Lance Taylor  <iant@google.com>
15564
15565         * godump.c (go_output_var): Don't output the variable if there is
15566         already a type with the same name.
15567
15568 2011-01-11  Ian Lance Taylor  <iant@google.com>
15569
15570         * godump.c (go_format_type): Don't generate float80.
15571
15572 2011-01-11  Richard Henderson  <rth@redhat.com>
15573
15574         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15575         declaration.  Rewrite for both speed and size.
15576         (mn10300_address_cost_1): Remove.
15577         (mn10300_register_move_cost): New.
15578         (mn10300_memory_move_cost): New.
15579         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
15580         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
15581         extensions, shifts, BSWAP, CLZ.
15582         (mn10300_wide_const_load_uses_clr): Remove.
15583         (TARGET_REGISTER_MOVE_COST): New.
15584         (TARGET_MEMORY_MOVE_COST): New.
15585         * config/mn10300/mn10300-protos.h: Update.
15586         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15587
15588         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15589         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15590         * config/mn10300/mn10300-protos.h: Update.
15591         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15592         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15593         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15594         (*test_int_bitfield, *test_byte_bitfield): Remove.
15595         (*bit_test, *subreg_bit_test): Remove.
15596         * config/mn10300/predicates.md (const_8bit_operand): Remove.
15597
15598         * config/mn10300/constraints.md ("c"): Rename from "A".
15599         ("A", "D"): New constraint letters.
15600         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15601         (fmssf4, fnmasf4, fnmssf4): Likewise.
15602
15603         * config/mn10300/mn10300.md (isa): New attribute.
15604         (enabled): New attribute.
15605
15606         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15607         (abssf2, negsf2): Define only for hardware fp.
15608         (sqrtsf2): Reformat.
15609         (addsf3, subsf3, mulsf3): Merge expander and insn.
15610
15611         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15612         (DEBUGGER_AUTO_OFFSET): Remove.
15613         (DEBUGGER_ARG_OFFSET): Remove.
15614
15615         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15616         Emit register stores with the same offsets as the hardware.
15617         (mn10300_store_multiple_operation): Don't check that the register
15618         save offsets are monotonic.
15619         * config/mn10300/mn10300-protos.h: Update.
15620
15621         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15622
15623         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15624         in terms of the value on the stack, not the MDR register.
15625
15626 2011-01-11  Jan Hubicka  <jh@suse.cz>
15627
15628         PR lto/45721
15629         PR lto/45375
15630         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15631         (symbol_alias_set_destroy, symbol_alias_set_contains,
15632         propagate_aliases_backward): Declare.
15633         * lto-streamer-out.c (struct sets): New sturcture.
15634         (trivally_defined_alias): New function.
15635         (output_alias_pair_p): Rewrite.
15636         (output_unreferenced_globals): Fix output of alias pairs.
15637         (produce_symtab): Likewise.
15638         * ipa.c (function_and_variable_visibility): Set weak alias destination
15639         as needed in lto.
15640         * varasm.c (symbol_alias_set_t): Remove.
15641         (symbol_alias_set_destroy): Export.
15642         (propagate_aliases_forward, propagate_aliases_backward): New functions
15643         based on ...
15644         (compute_visible_aliases): ... this one; remove.
15645         (trivially_visible_alias): New
15646         (trivially_defined_alias): New.
15647         (remove_unreachable_alias_pairs): Rewrite.
15648         (finish_aliases_1): Reorganize code checking if alias is defined.
15649         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15650         in LTO mode.
15651
15652 2011-01-11  Richard Guenther  <rguenther@suse.de>
15653
15654         PR tree-optimization/46076
15655         * tree-ssa.c (useless_type_conversion_p): Conversions from
15656         unprototyped to empty argument list function types are useless.
15657
15658 2011-01-11  Richard Guenther  <rguenther@suse.de>
15659
15660         PR middle-end/45235
15661         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15662         volatile MEMs as MEM_READONLY_P.
15663
15664 2011-01-11  Richard Guenther  <rguenther@suse.de>
15665
15666         PR tree-optimization/47239
15667         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15668
15669 2011-01-11  Jeff Law  <law@redhat.com>
15670
15671         PR tree-optimization/47086
15672         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15673         IVs from statements that might throw.
15674
15675 2011-01-10  Jan Hubicka  <jh@suse.cz>
15676
15677         PR lto/45375
15678         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15679
15680 2011-01-10  Jan Hubicka  <jh@suse.cz>
15681
15682         PR lto/45375
15683         * profile.c (read_profile_edge_counts): Ignore profile inconistency
15684         when correcting profile.
15685
15686 2011-01-10  Jan Hubicka  <jh@suse.cz>
15687
15688         PR lto/46083
15689         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15690         DECL_FINI_PRIORITY.
15691         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15692         Restore DECL_FINI_PRIORITY.
15693
15694 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15695
15696         * doc/gimple.texi: Fix quoting of multi-word return values in
15697         @deftypefn statements.  Ensure presence of return value.  Wrap
15698         overlong @deftypefn lines.
15699         (is_gimple_operand, is_gimple_min_invariant_address): Remove
15700         descriptions of removed functions.
15701         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15702         of multi-word return value in @deftypefn statement.
15703
15704 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15705
15706         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15707         (Conditional Expressions, Logical Operators)
15708         (Statement and operand traversals): Do not indent smallexample
15709         code.  Fix duplicate function argument in example.
15710
15711 2011-01-10  Jeff Law  <law@redhat.com>
15712
15713         PR tree-optimization/47141
15714         * ipa-split.c (split_function): Handle case where we are
15715         returning a value and the return block has a virtual operand phi.
15716
15717 2011-01-10  Jan Hubicka  <jh@suse.cz>
15718
15719         PR tree-optimization/47234
15720         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15721         (pass_feedback_split_functions): Declare.
15722         * passes.c (init_optimization_passes): Add ipa-split as subpass of
15723         tree-profile.
15724         * ipa-split.c (gate_split_functions): Update comments; disable
15725         split-functions for profile_arc_flag and branch_probabilities.
15726         (gate_feedback_split_functions): New function.
15727         (execute_feedback_split_functions): New function.
15728         (pass_feedback_split_functions): New global var.
15729
15730 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15731
15732         PR lto/46760
15733         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15734         calling gimple_call_set_cannot_inline.
15735
15736 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
15737
15738         * config/darwin-sections.def: Remove unused section.
15739
15740 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
15741
15742         PR c++/47218
15743         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15744
15745 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15746
15747         PR objc/47232
15748         * c-parser.c (c_parser_declaration_or_fndef): Improved
15749         error message.
15750
15751 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
15752
15753         * config/i386/winnt.c (i386_pe_start_function): Make sure
15754         to switch back to function's section.
15755
15756 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
15757
15758         PR gcc/46902
15759         PR testsuite/46912
15760         * plugin.c: Move include of dlfcn.h from here...
15761         * system.h: ... to here.
15762
15763 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15764
15765         * doc/cpp.texi (C++ Named Operators): Fix markup for header
15766         file name.
15767         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15768         two extra empty pages in PDF output.
15769
15770 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
15771
15772         PR objc/47078
15773         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15774         for error recovery purposes behave as if it was not specified so
15775         that the default type is usd.
15776
15777 2011-01-07  Jan Hubicka  <jh@suse.cz>
15778
15779         PR tree-optmization/46469
15780         * ipa.c (function_and_variable_visibility): Clear needed flags on
15781         nodes with external decls; handle weakrefs merging correctly.
15782
15783 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
15784
15785         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15786         not false.
15787
15788 2011-01-07  Jan Hubicka  <jh@suse.cz>
15789
15790         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
15791         and no longer claim that gold is required for linker plugin.
15792         * configure: Regenerate.
15793         * gcc.c (PLUGIN_COND): New macro.
15794         (LINK_COMMAND_SPEC): Use it.
15795         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15796         * config.in (HAVE_LTO_PLUGIN): New.
15797         * configure.ac (--with-lto-plugin): New parameter; autodetect
15798         HAVE_LTO_PLUGIN.
15799
15800 2011-01-07  Jan Hubicka  <jh@suse.cz>
15801
15802         PR tree-optimization/46367
15803         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15804         when we can update original.
15805         (cgraph_mark_inline_edge): Sanity check.
15806         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15807
15808 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15809
15810         * config/spu/spu.h (ASM_COMMENT_START): Define.
15811
15812 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15813
15814         PR driver/42445
15815         * gcc.c (%>S): New.
15816         (SWITCH_KEEP_FOR_GCC): Likewise.
15817         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15818         (do_spec_1): Handle "%>".
15819
15820         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15821
15822 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
15823
15824         PR target/47201
15825         * config/i386/i386.c (ix86_delegitimize_address): If
15826         simplify_gen_subreg fails, return orig_x.
15827
15828         PR bootstrap/47187
15829         * value-prof.c (gimple_stringop_fixed_value): Handle
15830         lhs of the call properly.
15831
15832 2011-01-07  Jan Hubicka  <jh@suse.cz>
15833
15834         PR lto/45375
15835         * lto-opt.c (lto_reissue_options): Set flag_shlib.
15836
15837 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15838
15839         * target.def (function_switched_text_sections): New hook.
15840         * doc/tm.texi: Regenerated.
15841         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15842         * final.c (default_function_switched_text_sections): New.
15843         (final_scan_insn): Call function_switched_text_sections when a
15844         mid-function section change occurs.
15845         * output.h (default_function_switched_text_sections): Declare.
15846         * config/darwin-protos.h (darwin_function_switched_text_sections):
15847         Likewise.
15848         * config/darwin.c (darwin_function_switched_text_sections): New.
15849         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15850
15851 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15852
15853         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
15854         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
15855         the secondary code fragment when outputting for DWARF == 2.
15856
15857 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15858
15859         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15860         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15861         Remove.
15862         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15863         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15864
15865 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15866
15867         PR debug/46704
15868         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15869         when it is not empty.
15870
15871 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15872
15873         Bobcat Enablement
15874         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15875         (case ${target}): Add btver1.
15876         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15877         -march=native recognize btver1 processors.
15878         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15879         btver1 def_and_undef
15880         * config/i386/i386.c (struct processor_costs btver1_cost): New
15881         btver1 cost table.
15882         (m_BTVER1): New definition.
15883         (m_AMD_MULTIPLE): Includes m_BTVER1.
15884         (initial_ix86_tune_features): Add btver1 tune.
15885         (processor_target_table): Add btver1 entry.
15886         (static const char *const cpu_names): Add btver1 entry.
15887         (software_prefetching_beneficial_p): Add btver1.
15888         (ix86_option_override_internal): Add btver1 instruction sets.
15889         (ix86_issue_rate): Add btver1.
15890         (ix86_adjust_cost): Add btver1.
15891         * config/i386/i386.h (TARGET_BTVER1): New definition.
15892         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15893         (enum processor_type): Add PROCESSOR_BTVER1.
15894         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15895
15896 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15897
15898         PR target/43309
15899         * config/i386/i386.c (legitimize_tls_address)
15900         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15901         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15902         (tls_initial_exec_64_sun): New pattern.
15903
15904 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15905
15906         * doc/invoke.texi (Overall Options): Improve wording and markup
15907         of the description of -wrapper.
15908
15909 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15910
15911         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15912         rdynamic, threads): New Driver options.
15913
15914 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15915
15916         PR target/38118
15917         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15918         if coming from .tdata.
15919         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15920
15921 2011-01-06  Jan Hubicka  <jh@suse.cz>
15922
15923         PR lto/47188
15924         * collect2.c (main): Do not enable LTOmode when plugin is active.
15925
15926 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15927
15928         PR other/45915
15929         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15930         --version output if supported.
15931         * configure: Regenerate.
15932
15933 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15934
15935         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15936         Driver options.
15937
15938 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15939
15940         PR c/47150
15941         * c-convert.c (convert): When converting a complex expression
15942         other than COMPLEX_EXPR to a different complex type, ensure
15943         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15944         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15945         when converting COMPLEX_TYPE.
15946
15947 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15948
15949         PR tree-optimization/47139
15950         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15951         only the last reduction value is used outside the loop.  Update
15952         documentation.
15953
15954 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15955
15956         * config/rtems.opt: New.
15957         * config.gcc (*-*-rtems*): Use rtems.opt.
15958
15959 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15960
15961         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15962         processors do not support 3DNow instructions.
15963
15964 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15965
15966         * config/spu/spu.c (spu_option_override): Set parameter
15967         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15968
15969 2011-01-05  Jan Hubicka  <jh@suse.cz>
15970
15971         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15972         at the command line.
15973
15974 2011-01-05  Martin Jambor  <mjambor@suse.cz>
15975
15976         PR lto/47162
15977         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15978         deltas on streamed outgoing edges.
15979         (output_node_opt_summary): Output info for outgoing edges only when
15980         the node is in new parameter set.
15981         (output_cgraph_opt_summary): New parameter set, passed to the two
15982         aforementioned functions.  Update its forward declaration and its
15983         callee too.
15984
15985 2011-01-05  Tom Tromey  <tromey@redhat.com>
15986
15987         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15988         operator to c_finish_omp_atomic.
15989         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15990         (build_unary_op): Update.
15991         (build_modify_expr): Update.
15992         (build_asm_expr): Update.
15993
15994 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15995
15996         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15997         newly inserted insns.
15998         (pad_bb): Likewise.
15999         (spu_emit_branch_hint): Likewise.
16000         (insert_hbrp_for_ilb_runout): Likewise.
16001         (spu_machine_dependent_reorg): Call df_finish_pass after
16002         schedule_insns returns.
16003
16004 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16005
16006         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16007
16008 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16009
16010         PR tree-optimization/47005
16011         * tree-sra.c (struct access): Add 'non_addressable' bit.
16012         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16013         (decide_one_param_reduction): Return 0 if the parameter is passed by
16014         reference and one of the accesses in the group is non_addressable.
16015
16016 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16017
16018         PR tree-optimization/47056
16019         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16020         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16021         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16022
16023 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16024
16025         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16026         initializer.  Skip view conversions from aggregate types.
16027
16028 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16029
16030         PR bootstrap/47055
16031         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16032
16033 2011-01-04  Philipp Thomas  <pth@suse.de>
16034
16035         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16036         obvious typo.
16037
16038 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16039
16040         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16041         on empty epilogue sequences.
16042
16043 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16044
16045         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16046         non-static): New Driver options.
16047
16048 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16049
16050         PR driver/47137
16051         * gcc.c (default_compilers[]): Set combinable field to 0
16052         for all assembly languages.
16053
16054 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16055
16056         * config/mips/loongson3a.md: New file.
16057         * config/mips/mips.md: Include loongson3a.md.
16058         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16059         TUNE_LOONGSON_3A.
16060
16061 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16062
16063         PR middle-end/47017
16064         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16065         instead of convert_memory_address_addr_space on the base expression.
16066
16067 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16068
16069         * config/spu/spu.c (spu_option_override): Update error text
16070         for bad -march= / -mtune= values.
16071
16072 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16073
16074         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16075         if branch-hint optimization will be performed.
16076
16077 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16078
16079         PR tree-optimization/47148
16080         * ipa-split.c (split_function): Convert arguments to
16081         DECL_ARG_TYPE if possible.
16082
16083         PR tree-optimization/47155
16084         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16085         when computing uns.
16086
16087         PR rtl-optimization/47157
16088         * combine.c (try_combine): If undobuf.other_insn becomes
16089         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16090         and set *new_direct_jump_p too.
16091
16092 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16093
16094         PR tree-optimization/47021
16095         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16096
16097 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16098
16099         * gcc.c (process_command): Update copyright notice dates.
16100         * gcov.c (print_version): Likewise.
16101         * gcov-dump.c (print_version): Likewise.
16102         * mips-tfile.c (main): Likewise.
16103         * mips-tdump.c (main): Likewise.
16104
16105 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16106
16107         PR tree-optimization/46801
16108         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16109         aggregate fields start at byte boundary instead of the bit-field flag.
16110
16111 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16112
16113         PR driver/47137
16114         * gcc.c (main): Revert revision 168407.
16115
16116 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16117
16118         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16119
16120 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16121
16122         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16123         vector optab to expand vector/scalar shift, update gimple to vector.
16124
16125 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16126
16127         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16128         a thunk.
16129
16130 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16131
16132         PR tree-optimization/46984
16133         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16134         HOST_WIDE_INT.
16135         (cgraph_create_indirect_edge): Fixed line length.
16136         (cgraph_indirect_call_info): Declare.
16137         (cgraph_make_edge_direct) Update declaration.
16138         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16139         (cgraph_create_indirect_edge): Use it.
16140         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16141         callees.
16142         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16143         the new thunk_delta representation.
16144         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16145         HOST_WIDE_INT.
16146         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16147         (ipa_read_indirect_edge_info): Likewise.
16148         * lto-cgraph.c (output_edge_opt_summary): New function.
16149         (output_node_opt_summary): Call it on all outgoing edges.
16150         (input_edge_opt_summary): New function.
16151         (input_node_opt_summary): Call it on all outgoing edges.
16152
16153 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16154
16155         PR driver/47137
16156         * gcc.c (main): Don't check have_o when settting combine_inputs.
16157
16158 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16159
16160         * regrename.c: Add general comment describing the pass.
16161         (struct du_head): Remove 'length' field.
16162         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16163         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16164         Force renaming to the preferred class (if any) in the first pass and do
16165         not consider registers that belong to it in the second pass.
16166         (create_new_chain): Do not set 'length' field.
16167         (scan_rtx_reg): Likewise.
16168
16169 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16170
16171         PR tree-optimization/47140
16172         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16173         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16174         to bit_value_binop.
16175
16176         PR rtl-optimization/47028
16177         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16178         parm_birth_insn instead of at the beginning of first bb.
16179
16180 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16181
16182         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16183         Remove the word "see" before "@pxref".
16184         * doc/rtl.texi: Remove the word "see" before "@pxref".
16185
16186 2011-01-01  Jan Hubicka  <jh@suse.cz>
16187
16188         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16189         memory.
16190
16191 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16192
16193         PR target/38662
16194         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16195
16196 \f
16197 Copyright (C) 2011 Free Software Foundation, Inc.
16198
16199 Copying and distribution of this file, with or without modification,
16200 are permitted in any medium without royalty provided the copyright
16201 notice and this notice are preserved.