arm-opts.h (enum arm_fp16_format_type, [...]): Move from arm.h.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
4         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from
5         arm.h.
6         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
7         target_thread_pointer, arm_structure_size_boundary, struct
8         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9         struct abi_name, arm_all_abis): Remove.
10         (arm_option_override) Don't process most enumerated option values
11         here.  Don't process target_fpe_name here.  Work with integer not
12         string for structure size boundary; use separate diagnostics for
13         each case.
14         * config/arm/arm.h (enum float_abi_type, enum
15         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
16         to arm-opts.h.
17         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
18         arm_structure_size_boundary): Remove.
19         * config/arm/arm.opt (mabi=): Use Enum and Init.
20         (arm_abi_type): New Enum and EnumValue entries.
21         (mfloat-abi=): Use Enum and Init.
22         (float_abi_type): New Enum and EnumValue entries.
23         (mfp=, mfpe=): Replace by separate Alias entries for each
24         argument.
25         (mfp16-format=): Use Enum and Init.
26         (arm_fp16_format_type): New Enum and EnumValue entries.
27         (mstructure-size-boundary=): Use UInteger and Init.
28         (mtp=): Use Enum and Init.
29         (arm_tp_type): New Enum and EnumValue entries.
30
31 2011-05-18  Richard Guenther  <rguenther@suse.de>
32
33         PR tree-optimization/49018
34         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
35         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
36         gimple_has_side_effects.
37
38 2011-05-18  Richard Guenther  <rguenther@suse.de>
39
40         * gimple.c (gimple_register_type_1): New function, split out from ...
41         (gimple_register_type): ... here.  Avoid infinite recursion.
42
43 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
44
45         PR tree-optimization/41881
46         * tree-vectorizer.h (struct _loop_vec_info): Add new field
47         reduction_chains along with a macro for its access.
48         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
49         (destroy_loop_vec_info): Free reduction chains.
50         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
51         (vect_is_slp_reduction): New function.
52         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
53         (vect_create_epilog_for_reduction): Support SLP reduction chains.
54         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
55         definition types for reduction chains.
56         (vect_supported_load_permutation_p): Don't allow permutations for
57         reduction chains.
58         (vect_analyze_slp_instance): Support reduction chains.
59         (vect_analyze_slp): Try to build SLP instance from reduction chains.
60         (vect_get_constant_vectors):  Handle reduction chains.
61         (vect_schedule_slp_instance): Mark the first statement of the
62         reduction chain as reduction.
63
64 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
65
66         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
67         names for group elements access.
68         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
69         reduction chains as well.  Remove data reference and interleaving
70         related words from the fields names.
71         * tree-vect-loop.c (vect_transform_loop): Use new names for group
72         elements access.
73         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
74         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
75         vect_update_interleaving_chain, vect_same_range_drs,
76         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
77         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
78         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
79         vect_analyze_group_access, vect_analyze_data_ref_access,
80         vect_create_data_ref_ptr, vect_transform_strided_load,
81         vect_record_strided_load_vectors): Likewise.
82         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
83         vect_model_load_cost, vectorizable_store, vectorizable_load,
84         vect_remove_stores, new_stmt_vec_info): Likewise.
85         * tree-vect-slp.c (vect_build_slp_tree,
86         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
87
88 2011-05-18  Richard Guenther  <rguenther@suse.de>
89
90         PR middle-end/48989
91         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
92         operand verification.
93         (verify_gimple_assign_binary): Likewise.
94         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
95         to non-1-precision BOOLEAN_TYPEs.
96
97 2011-05-18  Tom de Vries  <tom@codesourcery.com>
98
99         PR target/45098
100         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
101
102 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
103
104         PR tree-optimization/49000
105         * tree-ssa.c (execute_update_addresses_taken): Call
106         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
107         be rewritten and decl has been marked for renaming, reset
108         the debug stmt.
109
110 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
111
112         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
113         enum_opts_set when testing if attributes have set -mfpmath=.
114
115 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
116
117         * config/mips/mips.c (mips_handle_option): Remove unused variable.
118
119 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
120
121         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
122         info->entry with 0
123         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
124         id.transform_lang_insert_block with NULL.
125
126 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
127
128         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
129         (output_fp_compare): Change args 3 and 4 to bool.
130         (ix86_expand_call): Change arg 6 to bool.
131         (ix86_attr_length_immediate_default): Change arg 2 to bool.
132         (ix86_attr_length_vex_default): Change arg 3 to bool.
133         * config/i386/i386.md: Update all uses.
134         * config/i386/i386.c: Ditto.
135         (ix86_flags_dependent): Change return type to bool.
136
137 2011-05-17  Richard Guenther  <rguenther@suse.de>
138
139         * gimple.c (type_hash_pair_compare): Fix comparison.
140
141 2011-05-17  Richard Guenther  <rguenther@suse.de>
142
143         * gimple.c (iterative_hash_gimple_type): Simplify singleton
144         case some more, fix final hash value of the non-singleton case.
145
146 2011-05-17  Richard Guenther  <rguenther@suse.de>
147
148         PR bootstrap/49013
149         Revert
150         2011-05-16  Richard Guenther  <rguenther@suse.de>
151
152         * gimple.c (gimple_types_compatible_p_1): Use names of the
153         type itself, not its main variant.
154         (iterative_hash_gimple_type): Likewise.
155
156 2011-05-17  Richard Guenther  <rguenther@suse.de>
157
158         * gimple.c (gimple_register_canonical_type): Use the main-variant
159         leader for computing the canonical type.
160
161 2011-05-17  Nick Clifton  <nickc@redhat.com>
162
163         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
164         moves.
165
166         * config/rx/rx.md: Add peephole to remove redundant extensions
167         after loads.
168         (bitset_in_memory): Use rx_restricted_mem_operand.
169         (bitinvert_in_memory): Likewise.
170         (bitclr_in_memory): Likewise.
171
172 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
173             Nick Clifton  <nickc@redhat.com>
174
175         * config/rx/rx.md: Add peepholes to match a register move followed
176         by a comparison of the moved register.  Replace these with an
177         addition of zero that does both actions in one instruction.
178
179 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
180
181         PR target/48986
182         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
183         predicate to allow CONST_INT.
184         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
185
186 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
187
188         * opts-common.c (opt_enum_arg_to_value): New.
189         * opts.h (opt_enum_arg_to_value): Declare.
190         * config/i386/i386.opt (fpmath): Remove.
191         (mfpmath=): Use Enum, Init and Save.
192         (fpmath_unit): New Enum and EnumValue entries.
193         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
194         name for function fpmath state.
195         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
196         * config/i386/i386.c: Include diagnostic.h.
197         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
198         (ix86_target_string): Take enum fpmath_unit value instead of string.
199         (ix86_debug_options): Update call to ix86_target_string.
200         (ix86_option_override_internal): Don't process fpmath strings here.
201         (x86_function_specific_save, ix86_function_specific_restore):
202         Don't handle fpmath state specially.
203         (ix86_function_specific_print): Pass fpmath state to
204         ix86_target_string instead of printing in this function.
205         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
206         Handle enum attributes.
207         (IX86_ATTR_ENUM, ix86_opt_enum): New.
208         (ix86_valid_target_attribute_tree): Update option_strings
209         handling.  Handle fpmath as enum option.
210         (ix86_can_inline_p): Update field names for function fpmath state.
211         (ix86_expand_builtin): Update call to ix86_target_string.
212         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
213         (ix86_fpmath): Remove.
214         * config/i386/t-i386 (i386.o): Update dependencies.
215
216 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
217
218         PR preprocessor/48677
219         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
220         from decoded_options[0], not from itself.
221
222 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
223
224         * config/i386/constraints.md (z): New constraint.
225         * config/i386/i386.c (c): New mode attribute.
226         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
227         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
228         constraint for operand 0.
229         (*call_vzeroupper): Ditto.
230         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
231         (*call_rex64_ms_sysv_vzeroupper): Ditto.
232         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
233         Use "lzm" constraint for operand 0.
234         (*call_pop_vzeroupper): Ditto.
235         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
236         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
237         constraint for operand 0.
238         (*sibcall_vzeroupper): Ditto.
239         (*sibcall_rex64_ms_sysv): Ditto.
240         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
241         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
242         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
243         (*sibcall_pop_vzeroupper): Ditto.
244         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
245         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
246         mode iterator.  Use "<c>zm" constraint for operand 1.
247         (*call_value_vzeroupper): Ditto.
248         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
249         for operand 1.
250         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
251         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
252         *call_value_pop_1.  Use "lzm" constraint for operand 1.
253         (*call_value_pop_vzeroupper): Ditto.
254         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
255         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
256         mode iterator.  Use "Uz" constraint for operand 1.
257         (*sibcall_value_vzeroupper): Ditto.
258         (*sibcall_value_rex64_ms_sysv): Ditto.
259         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
260         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
261         constraint for operand 1.
262         (*sibcall_value_pop_vzeroupper): Ditto.
263         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
264         and "z" constraint for operand 2.
265         (*tls_global_dynamic_32_gnu): Ditto.
266         (*tls_local_dynamic_base_32_gnu): Ditto.
267         (*tls_local_dynamic_base_64): Ditto.
268         (*tls_local_dynamic_32_once): Ditto.
269         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
270         Update all callers.
271         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
272
273 2011-05-16  Richard Guenther  <rguenther@suse.de>
274
275         * gimple.c (gimple_types_compatible_p_1): Use names of the
276         type itself, not its main variant.
277         (iterative_hash_gimple_type): Likewise.
278
279 2011-05-16  Richard Guenther  <rguenther@suse.de>
280
281         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
282         always visit pointer target and function result and argument types.
283
284 2011-05-16  Jason Merrill  <jason@redhat.com>
285
286         PR c++/48999
287         * tree-inline.c (copy_statement_list): Put back recursion.
288
289 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
290
291         PR target/27663
292         PR target/41076
293         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
294         * config/avr/avr.md ("*ior<mode>qi.byte0",
295         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
296
297 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
298
299         PR target/45099
300         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
301         register is needed for a function argument.
302
303 2011-05-16  Richard Guenther  <rguenther@suse.de>
304
305         * gimple.c (struct type_hash_pair): New type.
306         (type_hash_pair_compare): New function.
307         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
308
309 2011-05-16  Revital Eres  <revital.eres@linaro.org>
310
311         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
312
313 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
314
315         * config/i386/i386.md (floating point move splitters): Fix
316         usage of standard_80387_constant_p.
317         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
318
319 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
320
321         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
322
323 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
324
325         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
326         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
327         (tree_ssa_lim_finalize): Likewise.
328
329 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
330
331         * config/i386/constraint.md (Yd, Yx): New register constraints.
332         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
333         Yd conditional register constraint.
334         (*movtf_internal): Use standard_sse_constant_opcode.
335         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
336         Yx conditional register constraint.
337         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
338         Yd conditional register constraint.  Use standard_sse_constant_p to
339         check for valid SSE constants and call standard_sse_constant_opcode to
340         output SSE insn.
341         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
342         constants and call standard_sse_constant_opcode to output SSE insn.
343         * config/i386/i386.c (ix86_option_ovverride_internal): Set
344         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
345         optimize_size is set.
346         (standard_sse_constant_opcode): Output conditional AVX insn templates.
347
348 2011-05-14  Tobias Burnus  <burnus@net-b.de>
349
350         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
351
352 2011-05-13  Martin Jambor  <mjambor@suse.cz>
353
354         * ipa-prop.c (ipa_cst_from_jfunc): New function.
355         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
356         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
357         (evaluate_conditions_for_ipcp_clone): Removed.
358         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
359         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
360         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
361
362 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
363
364         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
365         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
366         lieu of MAY_HAVE_DEBUG_STMTS.
367         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
368         debug statements if !MAY_HAVE_DEBUG_STMTS.
369
370 2011-05-13  Martin Thuresson  <martint@google.com>
371
372         PR gcov-profile/47793
373         * libgcov.c (gcov_exit): Support relative profile paths.
374         * doc/invoke.texi (-fprofile-dir): Update for above change.
375
376 2011-05-13  Richard Guenther  <rguenther@suse.de>
377
378         * gimple.c (gimple_canonical_types_compatible_p): Do not use
379         type-pair caching, do not compare hashes.
380
381 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
382
383         PR middle-end/48965
384         * tree-cfg.c (edge_to_cases_cleanup): Return true.
385         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
386
387 2011-05-13  Kai Tietz  <ktietz@redhat.com>
388
389         * gimplify.c (gimplify_expr): Make sure operand is boolified.
390         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
391         compatible type for TRUTH_NOT_EXPR.
392
393 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
394
395         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
396         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
397         can_create_pseudo_p ().
398
399 2011-05-13  Richard Guenther  <rguenther@suse.de>
400
401         PR lto/48978
402         * gimple.c (iterative_hash_gimple_type): Revert change in
403         pointer target and function result and argument hashing.
404
405 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
406
407         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
408         (*movxf_internal_nointeger): Ditto.
409         (*movdf_internal_rex64): Ditto.
410         (*movdf_internal): Ditto.
411         (*movdf_internal_nointeger): Ditto.
412         (*movsf_internal): Ditto.
413         (sincos splitters): Use can_create_pseudo ().
414
415 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
416
417         * config/i386/i386-opts.h: New.
418         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
419         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
420         ix86_section_threshold): Remove.
421         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
422         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
423         OPT_mbranch_cost_.
424         (ix86_option_override_internal): Don't decode strings for options
425         other than -march=, -mtune= and -mfpmath=.  Don't allow for
426         __attribute__ uses in remaining diagnostics for options with
427         string arguments.  Don't check for integer arguments being negative.
428         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
429         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
430         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
431         ix86_branch_cost, ix86_section_threshold): Remove.
432         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
433         HeaderInclude.
434         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
435         but not Var.
436         (masm=): Use Enum and Init.
437         (asm_dialect): New Enum and EnumValue entries.
438         (mbranch-cost=): Use UInteger.
439         (mlarge-data-threshold=): Use UInteger and Init.
440         (mcmodel=): Use Enum and Init.
441         (cmodel): New Enum and EnumValue entries.
442         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
443         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
444         mregparm=): Use UInteger.
445         (mstringop-strategy=): Use Enum and Init.
446         (stringop_alg): New Enum and EnumValue entries.
447         (mtls-dialect=): Use Enum and Init.
448         (tls_dialect): New Enum and EnumValue entries.
449         (mabi=): Use Enum and Init.
450         (calling_abi): New Enum and EnumValue entries.
451         (mveclibabi=): Use Enum and Init.
452         (ix86_veclibabi): New Enum and EnumValue entries.
453
454 2011-05-13  Nick Clifton  <nickc@redhat.com>
455
456         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
457         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
458
459 2011-05-13  Kai Tietz  <ktietz@redhat.com>
460
461         PR middle-end/48984
462         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
463         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
464         (gimple_boolify): Check for cast for boolean_type_node instead for
465         BOOLEAN_TYPE.
466
467 2011-05-13  Richard Guenther  <rguenther@suse.de>
468
469         PR tree-optimization/48172
470         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
471         multiplying by number of iterations for equal step.
472         (vect_create_cond_for_alias_checks): Likewise.
473
474 2011-05-13  Andreas Schwab  <schwab@redhat.com>
475
476         * configure.ac: Use AS_HELP_STRING throughout.
477         * configure: Regenerate.
478
479 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
480
481         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
482         (ix86_emit_restore_regs_using_mov): Likewise.
483         (ix86_emit_restore_sse_regs_using_mov): Likewise.
484
485 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
486
487         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
488         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
489         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
490         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
491         RTX_OK_FOR_OLO10_P): ...here.
492         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
493         SYMBOLIC_CONST.
494
495 2011-05-12  Kai Tietz  <ktietz@redhat.com>
496
497         * gimplify.c (gimple_boolify): Re-boolify expression
498         arguments even if expression type is of kind BOOLEAN_TYPE.
499         (gimplify_boolean_expr): Removed.
500         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
501         and XOR. Additional take care that we keep expression's type.
502         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
503         of TRUTH_AND|OR|XOR_EXPR.
504
505 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
506
507         PR tree-optimization/48975
508         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
509         on all bbs here and free and clear ifc_bbs at the end.
510
511 2011-05-12  Richard Guenther  <rguenther@suse.de>
512
513         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
514         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
515         until after simple checks.
516         (gimple_types_compatible_p): Likewise.
517         (iterative_hash_gimple_type): Always hash pointer targets
518         and function return and argument types.
519         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
520         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
521         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
522         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
523         completely in the simple compare section.
524         (gimple_register_canonical_type): Query the cache again after
525         registering.
526
527 2011-05-12  Richard Guenther  <rguenther@suse.de>
528
529         PR tree-optimization/48172
530         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
531         the number of iterations from the segment size calculation.
532         (vect_create_cond_for_alias_checks): Adjust.
533
534 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
535
536         PR debug/48967
537         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
538         if validate_subreg fails.
539
540 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
541
542         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
543         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
544         early.
545
546 2011-05-12  DJ Delorie  <dj@redhat.com>
547
548         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
549         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
550         created builtin into rx_builtins array.
551         (rx_builtin_decl): New function.
552         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
553
554 2011-05-12  DJ Delorie  <dj@redhat.com>
555             Nick Clifton  <nickc@redhat.com>
556
557         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
558         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
559         (rx_is_legitimate_address): Add pre-decrement and post-increment
560         addressing in HImode and QImode.  Fix test for out of range
561         REG+INT addressing.
562         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
563         (rx_align_for_label): Test label before extracting its usage count.
564         (rx_adjust_insn_lengths): Fix selection of insn codes.
565         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
566
567 2011-05-11  Jason Merrill  <jason@redhat.com>
568
569         * tree.c (type_hash_canon): Use struct tree_type_non_common.
570
571 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
572
573         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
574         reindent the subsequent block.
575
576 2011-05-11  Satoru Takabayashi  <satorux@google.com>
577             Paul Pluzhnikov  <ppluzhnikov@google.com>
578
579         * doc/install.texi (Configuration): Document --with-linker-hash-style.
580         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
581         * config.in: Add LINKER_HASH_STYLE.
582         * configure.ac: Add --with-linker-hash-style.
583         * configure: Regenerate.
584
585 2011-05-11  Richard Guenther  <rguenther@suse.de>
586
587         PR middle-end/48964
588         * gimple.c (iterative_hash_canonical_type): Fix typo.
589
590 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
591
592         * config/i386/i386.c (legitimize_tls_address)
593         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
594         expanders directly for TARGET_GNU2_TLS.  Determine pic and
595         __tls_get_addr symbol reference here.  Update call to
596         gen_tls_global_dynamic_{32,64} for added arguments.
597         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
598         expanders directly for TARGET_GNU2_TLS.  Determine
599         __tls_get_addr symbol reference here.  Update call to
600         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
601         unique UNSPEC REG_EQUIV to libcall block.
602         (ix86_tls_get_addr): Declare static.
603         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
604         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
605         Do not determine pic and __tls_get_addr symbol reference here. Do not
606         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
607         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
608         (tls_global_dynamic_64): Add operand 2.  Do not determine
609         __tls_get_addr symbol reference here.  Do not call
610         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
611         (tls_local_dynamic_base64): Ditto for operand 1.
612
613 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
614
615         * function.c (expand_function_start): Initialize stack_check_probe_note
616         only if the generic stack checking mechanism is used.
617
618 2011-05-11  Richard Guenther  <rguenther@suse.de>
619
620         PR tree-optimization/15256
621         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
622         (A & B) | C, combine (A op CST1) op CST2.
623         (tree_ssa_forward_propagate_single_use_vars): Only bother to
624         visit assigns that have uses.
625
626 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
627
628         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
629         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
630         (unpack_ts_type_common_value_fields): ...this.  Update comment.
631         (unpack_value_fields): Adjust for renaming.
632         (lto_input_ts_type_tree_pointers): Split into...
633         (lto_input_ts_type_common_tree_pointer): ...this and...
634         (lto_input_ts_type_non_common_tree_pointers): ...this.
635         (lto_input_tree_pointers): Adjust for above split.
636         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
637         (pack_ts_type_common_value_fields): ...this.  Update comment.
638         (lto_output_ts_type_tree_pointers): Split into...
639         (lto_output_ts_type_common_tree_pointers): ...this and...
640         (lto_output_ts_type_non_common_tree_pointers): ...this.
641         (lto_output_tree_pointers): Adjust for above split.
642         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
643         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
644         * stor-layout.c (vector_type_mode): Adjust location of mode field.
645         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
646         Define.
647         (struct tree_type): Split into...
648         (struct tree_type_common: ...this and...
649         (struct tree_type_with_lang_specific): ...this and...
650         (struct tree_type_non_common): ...this.  Adjust accessor macros
651         accordingly.
652         (TYPE_VALUES_RAW): Define.
653         (union tree_node): Update for above changes.
654         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
655         TS_TYPE_NON_COMMON.
656         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
657         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
658         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
659         * treestructu.def (TS_TYPE): Remove.
660         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
661         Define.
662
663 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
664
665         PR debug/48159
666         * tree-ssa.c (reset_debug_uses): New function.
667         * tree-flow.h (reset_debug_uses): New prototype.
668         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
669         * tree-loop-distribution.c (generate_loops_for_partition): Call
670         reset_debug_uses on the stmts that will be removed.  Keep around
671         all debug stmts, don't count them as bits in partition bitmap.
672         (generate_builtin): Don't count debug stmts or labels as bits in
673         partition bitmap.
674
675 2011-05-11  Richard Guenther  <rguenther@suse.de>
676
677         * gimple.c (gimple_type_hash_1): Merge with ...
678         (gimple_type_hash): ... this.
679         (gtc_visit): Remove mode parameter and simplify accordingly.
680         (gimple_types_compatible_p_1): Likewise.
681         (gimple_types_compatible_p): Likewise.
682         (iterative_hash_gimple_type): Likewise.
683         (visit): Likewise.
684         (gimple_type_eq): Adjust.
685
686 2011-05-11  Revital Eres  <revital.eres@linaro.org>
687
688         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
689         enters the branch create an anti edge in the opposite direction
690         to prevent the creation of reg-moves.
691         * modulo-sched.c: Adjust comment to reflect the fact we are
692         scheduling closing branch.
693         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
694         (stage_count): New field in struct partial_schedule.
695         (calculate_stage_count): New function.
696         (normalize_sched_times): Rename to reset_sched_times and handle
697         incrementing the sched time of the nodes by a constant value
698         passed as parameter.
699         (duplicate_insns_of_cycles): Skip closing branch.
700         (sms_schedule_by_order): Schedule closing branch.
701         (ps_insn_find_column): Handle closing branch.
702         (sms_schedule): Call reset_sched_times and adjust the code to
703         support scheduling of the closing branch.
704         (ps_insert_empty_row): Update calls to normalize_sched_times
705         and rotate_partial_schedule functions.
706
707 2011-05-11  Richard Guenther  <rguenther@suse.de>
708
709         PR middle-end/48953
710         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
711
712 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
713
714         * opts.c (finish_options): Move warning settings from process_options.
715         * toplev.c (process_options): Move warning settings to finish_options.
716
717 2011-05-11  Richard Guenther  <rguenther@suse.de>
718
719         PR tree-optimization/18041
720         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
721         (simplify_bitwise_binary): ... this.  Handle operand conversions
722         by applying them to the result instead.
723         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
724
725 2011-05-11  Richard Guenther  <rguenther@suse.de>
726
727         * gimple.c (gimple_canonical_types_compatible_p): Split out
728         from gimple_types_compatible_p and friends.  Do not recurse
729         to pointed-to types.
730         (gimple_canonical_type_eq): Use it.
731         (iterative_hash_canonical_type): Split out from
732         iterative_hash_gimple_type and friends.  Do not recurse
733         to pointed-to types.
734         (gimple_canonical_type_hash): Use it, allocate the hash here.
735
736 2011-05-11  Revital Eres  <revital.eres@linaro.org>
737
738         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
739         recognizing doloop.
740
741 2011-05-11  Revital Eres  <revital.eres@linaro.org>
742
743         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
744         instead of PREV_INSN.
745
746 2011-05-11  Revital Eres  <revital.eres@linaro.org>
747
748         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
749         * loop-doloop.c (doloop_condition_get): Likewise.
750         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
751         (doloop_end): New.
752         * config/arm/arm.md (*addsi3_compare0): Remove "*".
753
754 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
755
756         * tree.def (CASE_LABEL_EXPR): Add an operand.
757         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
758
759 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
760
761         * c-decl.c (c_override_global_bindings_to_false): Remove.
762         (global_bindings_p): Don't check
763         c_override_global_bindings_to_false.
764         * c-tree.h (c_override_global_bindings_to_false): Remove.
765         * c-typeck.c (composite_type): Don't set
766         c_override_global_bindings_to_false.
767
768 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
769
770         PR target/48857, 48495
771         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
772         (VSX_MODE): Ditto.
773         (VSX_MOVE_MODE): Ditto.
774         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
775         VSX vector types.  Add V2DImode.
776         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
777         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
778         (MODES_TIEABLE_P): Ditto.
779
780         * config/rs6000/rs6000.c (rs6000_emit_move): Use
781         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
782         VSX_VECTOR_MODE.
783         (init_cumulative_args): Ditto.
784         (rs6000_function_arg_boundary): Ditto.
785         (rs6000_function_arg_advance_1): Ditto.
786         (rs6000_function_arg): Ditto.
787         (rs6000_function_ok_for_sibcall): Ditto.
788         (emit_frame_save): Ditto.
789         (rs6000_function_value): Ditto.
790         (rs6000_libcall_value): Ditto.
791
792 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
793
794         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
795         i386/darwin-lib.h to $libgcc_tm_file.
796         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
797
798 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
799
800         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
801
802 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
803
804         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
805         * config/rs6000/rs6000-tables.opt: New file (generated).
806         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
807         rs6000/rs6000-tables.opt to extra_options.
808         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
809         * config/rs6000/rs6000.c (rs6000_select): Remove.
810         (processor_target_table): Move contents to rs6000-cpus.def.
811         (darwin_rs6000_override_options): Check
812         global_options_set.x_rs6000_cpu_index instead of
813         rs6000_select[1].string.
814         (rs6000_option_override_internal): Likewise.
815         (rs6000_handle_option): Don't assert that global structures are in
816         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
817         (rs6000_default_cpu): New variable.
818         (rs6000_file_start): Set it instead of local default_cpu.  Check
819         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
820         global_options_set.x_rs6000_tune_index instead of rs6000_select.
821         (rs6000_darwin_file_start): Check rs6000_default_cpu and
822         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
823         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
824         rs6000_select): Remove.
825         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
826         Remove.
827         (mcpu=, mtune=): Use Var, Init, Enum and Save.
828         * config/rs6000/t-rs6000
829         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
830         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
831         global_options_set.x_rs6000_cpu_index instead of
832         rs6000_select[1].string.
833         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
834         global_options_set.x_rs6000_cpu_index instead of
835         rs6000_select[1].string.
836
837 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
838
839         * config.gcc (libgcc_tm_file): Define instead of including files
840         from ../../libgcc/config/ in tm_file.
841         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
842         * configure: Regenerate.
843         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
844         libgcc_tm.h, cs-libgcc_tm.h): New.
845         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
846         (clean): Remove libgcc_tm.h.
847         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
848         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
849         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
850
851 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
852
853         PR target/48896
854         * config/avr/avr.c (avr_ret_register): Return unsigned int
855         instead of int.
856         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
857         it to avr_libcall_value.
858         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
859         expand_expr.
860         (avr_expand_binop_builtin): Ditto.
861         (avr_expand_unop_builtin): Ditto.
862
863 2011-05-10  DJ Delorie  <dj@redhat.com>
864
865         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
866         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
867         * config/rx/rx.c (rx_align_for_label): Add label and
868         uses_threshold parameters.  Do not align when the label is not
869         used enough.
870         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
871
872 2011-05-10  Richard Guenther  <rguenther@suse.de>
873
874         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
875         a series of conversions and apply foldings similar to what
876         fold-const does.
877         (tree_ssa_forward_propagate_single_use_vars): Call it.
878
879 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
880
881         PR tree-optimization/48611
882         PR tree-optimization/48794
883         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
884         referenced from RESX or EH_DISPATCH arguments.
885
886         PR debug/48928
887         * dfp.c (decimal_to_decnumber): Handle conversion from
888         dconst{1,2,m1,half}.
889
890 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
891
892         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
893         for !flag_prefer_avx128.
894         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
895
896 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
897
898         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
899         (fold_ternary_loc): Use expr_location_or.
900
901 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
902
903         PR debug/48853
904         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
905         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
906         Pmode and mem_mode is not VOIDmode.
907
908 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
909
910         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
911         TYPE_QUAL_RESTRICT): Convert to enum.
912
913 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
914
915         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
916         (const_pow2_1_to_8_operand): Ditto.
917         (const_pow2_1_to_128_operand): Ditto.
918         (const_pow2_1_to_32768_operand): Ditto.
919         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
920         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
921         in insn constraint to check integer value of operand 3.
922         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
923
924         (PINSR_MODE): New mode iterator.
925         (sse2p4_1): New mode attribute.
926         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
927         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
928         iterator.  Use const_int_operand instead of
929         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
930         exact_log2 in insn constraint to check integer value of operand 3.
931
932 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
933
934         * config/i386/sse.md (blendbits): Remove mode attribute.
935         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
936         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
937         Check integer value of operand 3 in insn constraint.
938
939 2011-05-09  Richard Guenther  <rguenther@suse.de>
940
941         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
942         for diagnostics.
943         (lto_symtab_merge): Likewise.  Do not register types here.
944         (lto_symtab_merge_decls_2): Likewise.
945         (lto_symtab_merge_decls_1): Likewise.
946         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
947         * gimple.c (enum gtc_mode): Declare.
948         (gimple_types_compatible_p): Make static.
949
950 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
951
952         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
953         temporary register to match Pmode.
954
955 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
956
957         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
958         and *vec_concatv4si_1_avx.
959
960 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
961
962         PR rtl-optimization/48927
963         * ira-conflicts.c (commutative_constraint_p): Use
964         recog_data.alternative_enabled_p to disable alternatives where
965         "enabled" attribute is false.
966         (get_dup_num): Ditto.
967         * ira-lives.c (single_reg_class): Ditto.
968         (ira_implicitly_set_insn_hard_regs): Ditto.
969
970 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
971
972         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
973         (dataflow_set_preserve_mem_locs): Likewise.
974
975 2011-05-09  Philipp Thomas  <pth@suse.de>
976
977         * config/mep/mep.c (mep_validate_vliw): Syntax description
978         should not be translated.
979
980 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
981
982         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
983         * config/mips/mips-tables.opt: New file (generated).
984         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
985         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
986         MIPS_ARCH_OPTION_NATIVE): Define.
987         * config/mips/mips.c (mips_cpu_info_table): Move contents to
988         mips-cpus.def.
989         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
990         mips_parse_cpu): Remove.
991         (mips_cpu_info_from_opt, mips_default_arch): New.
992         (mips_handle_option): Don't assert that global structures are in
993         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
994         (mips_option_override): Use new variables and functions to set
995         state of these options.  Use strcmp to check for individual CPU names.
996         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
997         definition.
998         * config/mips/mips.opt (march=): Use ToLower and Enum.
999         (mips): Use ToLower, Enum and Var.
1000         (mtune=): Use ToLower and Enum.
1001         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1002
1003 2011-05-08  Jan Hubicka  <jh@suse.cz>
1004
1005         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1006         Arrange type pairs to be UID ordered.
1007         (gimple_lookup_type_leader): Make inline.
1008
1009 2011-05-09  Nick Clifton  <nickc@redhat.com>
1010
1011         PR target/48899
1012         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1013         PROCESSOR_DEFAULT.
1014
1015         PR target/48897
1016         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1017         variable 's'.
1018
1019 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1020
1021         * combine.c (simplify_comparison): Abstract out parts into...
1022         (simplify_compare_const): ... new function.
1023         (try_combine): Generalize parallel arithmetic/compare combining
1024         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1025
1026 2011-05-08  Jan Hubicka  <jh@suse.cz>
1027
1028         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1029         (cgraph_create_virtual_clone): Call hooks once virtual clone
1030         is finished.
1031         * cgraph.h (cgraph_clone_node): Update prototype.
1032         * ipa-cp.c (ipcp_estimate_growth): Use
1033         estimate_ipcp_clone_size_and_time.
1034         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1035         * lto-cgraph.c (input_node): Update.
1036         * ipa-inline.c (recursive_inlining): Update.
1037         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1038         (evaluate_conditions_for_known_args): Break out from ...
1039         (evaluate_conditions_for_edge): ... here.
1040         (evaluate_conditions_for_ipcp_clone): New function.
1041         (inline_node_duplication_hook): Update clone summary based
1042         on parameter map.
1043         (estimate_callee_size_and_time): Rename to ...
1044         (estimate_node_size_and_time): take NODE instead of EDGE;
1045         take POSSIBLE_TRUTHS as argument.
1046         (estimate_callee_size_and_time): Update.
1047         (estimate_ipcp_clone_size_and_time): New function.
1048         (do_estimate_edge_time): Update.
1049
1050 2011-05-08  Richard Guenther  <rguenther@suse.de>
1051
1052         PR middle-end/48908
1053         PR middle-end/48905
1054         * expmed.c (expand_shift_1): Compute adjusted constant shift
1055         amount manually.
1056
1057 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1058
1059         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1060
1061 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1062
1063         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1064
1065 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1066
1067         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1068
1069 2011-05-07  Jan Hubicka  <jh@suse.cz>
1070
1071         * ipa-inline-transform.c (inline_call): Account when program size
1072         decreases.
1073         * ipa-inline.c (relative_time_benefit): New function.
1074         (edge_badness): Reorganize to be power 2 based; fix thinko when
1075         computing badness for negative growth; update comments to match
1076         reality; better dumps.
1077
1078 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1079
1080         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1081         type to bool and adjust comment.
1082         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1083         (fold_mathfn_compare): Remove calls to global_bindings_p.
1084         (fold_inf_compare): Likewise.
1085         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1086         * c-tree.h (global_bindings_p): Adjust prototype.
1087         * c-decl.c (global_bindings_p): Return bool and simplify.
1088
1089 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1090
1091         PR tree-optimization/48837
1092         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1093         when accumulator transformation is performed.
1094
1095 2011-05-06  Jan Hubicka  <jh@suse.cz>
1096
1097         * i386.h (ix86_tune_indices): Add
1098         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1099         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1100         * i386.c (initial_ix86_tune_features): Add
1101         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1102         (software_prefetching_beneficial_p): Remove predicate.
1103         (ix86_option_override_internal): Use new macro.
1104
1105 2011-05-06  Jan Hubicka  <jh@suse.cz>
1106
1107         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1108
1109 2011-05-06  Jan Hubicka  <jh@suse.cz>
1110
1111         * cgraph.c (cgraph_add_thunk): Create real function node instead
1112         of alias node; finalize it and mark needed/reachale; arrange visibility
1113         to be right and add it into the corresponding same comdat group list.
1114         (dump_cgraph_node): Dump thunks.
1115         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1116         cgraph_function_with_gimple_body_p,
1117         cgraph_first_function_with_gimple_body,
1118         cgraph_next_function_with_gimple_body): New functions.
1119         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1120         New macros.
1121         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1122         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1123         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1124         devirtualization when optimizing.
1125         (verify_cgraph_node): Verify thunks.
1126         (cgraph_analyze_function): Analyze thunks.
1127         (cgraph_mark_functions_to_output): Output thunks only in combination
1128         with function they are assigned to.
1129         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1130         alias into normal node.
1131         (assemble_thunks): New functoin.
1132         (cgraph_expand_function): Use it.
1133         * lto-cgraph.c (lto_output_node): Stream thunks.
1134         (input_overwrite_node): Stream in thunks.
1135         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1136         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1137         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1138         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1139         (inline_analyze_function): Do not care about thunk jump functions.
1140         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1141         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1142         cgraph_function_with_gimple_body_p.
1143         * passes.c (do_per_function_toporder): Use
1144         cgraph_function_with_gimple_body_p.
1145         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1146         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1147         (function_called_by_processed_nodes_p): Likewise.
1148
1149 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1150
1151         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1152         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1153         entries.
1154         (mabi=): Replace with separate entries for mabi=altivec,
1155         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1156         mabi=ieeelongdouble and mabi=ibmlongdouble.
1157         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1158         check for -mabi=spe without SPE ABI support here.
1159         (rs6000_handle_option): Replace OPT_mabi_ handling with
1160         OPT_mabi_altivec and OPT_mabi_spe handling.
1161
1162 2011-05-06  Cary Coutant  <ccoutant@google.com>
1163
1164         * dwarf2out.c (contains_subprogram_definition): New function.
1165         (should_move_die_to_comdat): Call it.
1166
1167 2011-05-06  Jeff Law  <law@redhat.com>
1168
1169         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1170         remove_ctrl_stmt_and_useless_edges.
1171         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1172         (fixup_template_block, thread_single_edge): Likewise.
1173         (mark_threaded_blocks): Use THREAD_TARGET.
1174
1175 2011-05-06  Alan Modra  <amodra@gmail.com>
1176
1177         PR target/48900
1178         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1179         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1180
1181 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1182
1183         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1184         constraint modifier to "r".
1185
1186 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1187
1188         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1189         fall through for OPT_mcmodel_.
1190
1191 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1192
1193         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1194         instruction sizes.
1195         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1196
1197 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1198
1199         PR target/47930
1200         * config/arm/arm.opt (marm): Document it.
1201         (mthumb): Reject negative variant.
1202
1203 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1204
1205         PR target/48898
1206         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1207         Fix typo in "ccvt" variable name.
1208
1209 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1210
1211         PR target/48895
1212         * config/vms/vms-ar.c (main): Remove cwd variable.
1213
1214 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1215
1216         PR debug/48902
1217         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1218
1219 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1220
1221         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1222         * gimplify.c (gimplify_switch_expr): Likewise.
1223         * omp-low.c (expand_omp_sections): Likewise.
1224         * tree-eh.c (lower_try_finally_switch): Likewise.
1225         (lower_eh_dispatch): Likewise.
1226         * tree.h (build_case_label): Declare.
1227         * tree.c (build_case_label): Define.
1228
1229 2011-05-05  Jason Merrill  <jason@redhat.com>
1230
1231         PR c++/40975
1232         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1233         (copy_statement_list): Don't recurse.
1234         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1235         STATEMENT_LIST.
1236
1237 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1238
1239         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1240         through from -mfpu= handling.
1241         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1242
1243 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1244
1245         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1246         POST_MODIFY.
1247
1248 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1249
1250         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1251         for 11.31.
1252         (hppa[12]*-*-hpux11*): Ditto.
1253         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1254         * config/ia64/hpux-unix2003.h: New.
1255         * config/pa/pa-hpux1131.opt: New.
1256         * config/pa/pa-hpux1131.h: New.
1257         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1258         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1259         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1260
1261 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1262
1263         PR debug/48853
1264         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1265         instead of mode as 3rd argument to recursive call.
1266         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1267         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1268         VOIDmode.
1269         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1270         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1271         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1272         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1273
1274 2011-05-05  Julian Brown  <julian@codesourcery.com>
1275
1276         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1277         parenthesis in D-register case.
1278
1279 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1280
1281         * opt-functions.awk (var_type_struct): Handle Enum options.
1282         * optc-gen.awk: Don't check range of variables of character type.
1283         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1284         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1285         rs6000_sdata_name, rs6000_explicit_options): Remove.
1286         (rs6000_option_override_internal): Check for -malign-power here.
1287         Use global_options_set instead of rs6000_explicit_options.
1288         (rs6000_parse_fpu_option): Remove.
1289         (rs6000_handle_option): Access variables via opts and opts_set
1290         pointers.  Use error_at and warning_at.  Add fall-through
1291         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1292         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1293         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1294         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1295         here.  Don't use rs6000_parse_fpu_option.
1296         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1297         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1298         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1299         (mrecip=): Use Var.
1300         (mspe): Use Var and Save.
1301         (mtraceback=): Use Enum and Var.
1302         (rs6000_traceback_type): New Enum and EnumValue entries.
1303         (mfloat-gprs=): Use Enum, Var and Save.
1304         (rs6000_float_gprs): New Enum and EnumValue entries.
1305         (mlong-double-): use Var and Save.
1306         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1307         (malign-): Use Enum and Var.
1308         (rs6000_alignment_flags): New Enum and EnumValue entries.
1309         (mfpu=): Use Enum.
1310         (fpu_type_t): New Enum and EnumValue entries.
1311         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1312         global_options_set instead of rs6000_explicit_options.
1313         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1314         global_options_set instead of rs6000_explicit_options.
1315         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1316         global_options_set instead of rs6000_explicit_options.
1317         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1318         global_options_set instead of rs6000_explicit_options.
1319         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1320         global_options_set instead of rs6000_explicit_options.
1321         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1322         global_options_set instead of rs6000_explicit_options.
1323         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1324         definition.
1325         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1326         global_options_set instead of rs6000_explicit_options.
1327         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1328         (rs6000_cmodel): New Enum and EnumValue entries.
1329         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1330         global_options_set instead of rs6000_explicit_options.
1331         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1332         (mtls-size=): Use Enum and Var.
1333         (rs6000_tls_size): New Enum and EnumValue entries.
1334
1335 2011-05-05  Michael Matz  <matz@suse.de>
1336
1337         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1338         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1339         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1340         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1341         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1342         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1343         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1344         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1345         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1346         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1347         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1348         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1349         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1350         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1351         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1352         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1353
1354 2011-05-05  Richard Guenther  <rguenther@suse.de>
1355
1356         * expmed.c (expand_variable_shift): Rename to ...
1357         (expand_shift_1): ... this.  Take an expanded shift amount.
1358         For rotates recurse directly not building trees for the shift amount.
1359         (expand_variable_shift): Wrap around expand_shift_1.
1360         (expand_shift): Adjust.
1361
1362 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1363
1364         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1365
1366 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1367
1368         * tree.h (get_pending_sizes): Remove prototype.
1369         (put_pending_size): Likewise.
1370         (put_pending_sizes): Likewise.
1371         * stor-layout.c (pending_sizes): Delete.
1372         (get_pending_sizes): Likewise.
1373         (put_pending_size): Likewise.
1374         (put_pending_sizes): Likewise.
1375         (variable_size): Do not call put_pending_size and tidy up.
1376         * function.h (struct function): Remove dont_save_pending_sizes_p.
1377         * lto-streamer-in.c (input_function): Do not stream it.
1378         * lto-streamer-out.c (output_function): Likewise.
1379         * tree-inline.c (initialize_cfun): Do not copy it.
1380         * c-decl.c (store_parm_decls): Do not set it.
1381         * omp-low.c (create_task_copyfn): Likewise.
1382         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1383
1384 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1387         conditions.
1388         (*movdf_internal): Ditto.
1389         (*movdf_internal_nointeger): Ditto.
1390         (*movsf_internal): Ditto.
1391
1392 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1393
1394         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1395         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1396         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1397         (c_variable_size): Remove.
1398         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1399         call put_pending_sizes.
1400         (get_parm_info): Add parameter expr.  Use it to set
1401         arg_info->pending_sizes.
1402         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1403         get_pending_sizes.
1404         * c-parser.c (c_parser_parms_declarator): Update call to
1405         c_parser_parms_list_declarator.
1406         (c_parser_parms_list_declarator): Take parameter expr.  Update
1407         call to push_parm_decl.  Update recursive call.  Don't call
1408         get_pending_sizes.  Update calls to get_parm_info.
1409         (c_parser_objc_method_definition): Update calls to
1410         c_parser_objc_method_decl and objc_start_method_definition.
1411         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1412         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1413         grokparm.
1414         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1415         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1416         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1417
1418 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1419
1420         PR pch/45979
1421         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1422         __ARM_EABI__ hosts.
1423
1424 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1425
1426         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1427         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1428         (spu_output_mi_thunk): New function.
1429
1430 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1431
1432         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1433         targetm.asm_out.print_operand.
1434         * config/sol2.c: Include target.h.
1435
1436 2011-05-04  Jan Hubicka  <jh@suse.cz>
1437
1438         * ipa-inline.c (reset_edge_caches): New function.
1439         (update_caller_keys): Add check_inlinablity_for; do not
1440         reset edge caches; remove now unnecesary loop.
1441         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1442         (update_all_callee_keys): Likewise.
1443         (inline_small_functions): Sanity check cache; update code
1444         recomputing it.
1445
1446 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1447
1448         PR rtl-optimization/47612
1449         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1450         as the last insn of the sequence to be moved.
1451
1452 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1453
1454         PR fortran/48864
1455         * doc/invoke.texi (Ofast): Document that it
1456         enables Fortran's -fno-protect-parens.
1457
1458 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1459
1460         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1461
1462 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1463
1464         * stor-layout.c (variable_size): Do not issue errors.
1465
1466 2011-05-04  Richard Guenther  <rguenther@suse.de>
1467
1468         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1469         for array-ref indices.
1470         (tree_coverage_counter_addr): Likewise.
1471         (build_fn_info_type): Use size_int for index types.
1472         (build_gcov_info): Likewise.
1473
1474 2011-05-04  Richard Guenther  <rguenther@suse.de>
1475
1476         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1477         to build_int_cst.
1478         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1479         for constructor indices.
1480         (push_init_level): Likewise.
1481
1482 2011-05-04  Richard Guenther  <rguenther@suse.de>
1483
1484         * explow.c (promote_mode): Move variable declarations before code.
1485
1486 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1487
1488         * tree.h (build_function_type_array): Declare.
1489         (build_varargs_function_type_array): Declare.
1490         (build_function_type_vec, build_varargs_function_type_vec): Define.
1491         * tree.c (build_function_type_array_1): New function.
1492         (build_function_type_array): New function.
1493         (build_varargs_function_type_array): New function.
1494
1495 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1496
1497         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1498         before setting STMT_VINFO_TYPE.
1499
1500 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1501
1502         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1503         instead of spu_pass_by_reference.
1504
1505 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1506
1507         * calls.c (emit_library_call_value_1): Invoke
1508         promote_function_mode hook on libcall arguments.
1509         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1510         argument being NULL.
1511         * targhooks.c (default_promote_function_mode): Lisewise.
1512         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1513         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1514
1515         * doc/tm.texi: Document that TYPE argument might be NULL.
1516
1517 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1518
1519         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1520
1521 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1522
1523         From Bernd Schmidt
1524         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1525
1526 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1527
1528         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1529         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1530         Move ...
1531         * mips-tfile.c: ... here.
1532         Don't include coretypes.h, tm.h, filenames.h.
1533         (saber_stop): Remove definition and all calls.
1534         [__SABER__]: Remove.
1535         (__LINE__): Remove default.
1536         (Size_t, Ptrdiff_t): Remove definitions.
1537         Replace by size_t, ptrdiff_t.
1538         [!MIPS_DEBUGGING_INFO]: Remove.
1539         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1540         (progname): Add const.
1541         (STATIC): Remove.
1542         Replace all uses by static.
1543         (ALIGN_SYMTABLE_OFFSET): Remove default.
1544         * mips-tdump.c: Don't include coretypes.h, tm.h.
1545         Remove !MIPS_IS_STAB guard.
1546         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1547         $(TM_H), filenames.h dependencies.
1548         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1549
1550 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1551
1552         From Jie Zhang
1553         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1554         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1555
1556 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1557
1558         From Bernd Schmidt
1559         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1560         account and save/restore RETS.
1561         (PROFILE_BEFORE_PROLOGUE): Define.
1562         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1563         the push insn to use predecrement.
1564
1565 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1566
1567         From Jie Zhang
1568         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1569
1570 2011-05-04  Nick Clifton  <nickc@redhat.com>
1571
1572         * config/mn10300/mn10300.c: Include cfgloop.h.
1573         (DUMP): New macro.
1574         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1575         Lcc or a FLcc insn into the instruction stream.
1576         (mn10300_block_contains_call): New function.  Returns true if the
1577         given basic block contains a CALL insn.
1578         (mn10300_loop_contains_call_insn): New function.  Returns true if
1579         the given loop contains a CALL insn.
1580         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1581         to use the SETLB and Lcc or FLcc insns.
1582         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1583         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1584         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1585         disable the SETLB optimization.
1586         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1587         __SETLB__ or __NO_SETLB__.
1588         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1589         (movsf_internal): Handle MDR register.
1590         (cmpsi): Make visible.
1591         (setlb): New pattern.
1592         (Lcc): New pattern.
1593         (FLcc): New pattern.
1594
1595 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1596
1597         PR target/48860
1598         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1599         for reg<->xmm moves.
1600         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1601         (vec_concatv2di_rex64_sse): Ditto.
1602         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1603         (*vec_extractv2di_1_rex64): Ditto.
1604
1605         Revert:
1606         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1607
1608         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1609         reg<->xmm moves.
1610         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1611
1612 2011-05-04  Richard Guenther  <rguenther@suse.de>
1613
1614         * tree.h (int_const_binop): Remove notrunc argument.
1615         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1616         create integer constants that are properly truncated.
1617         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1618         (const_binop): Remove zero notrunc argument to int_const_binop.
1619         (size_binop_loc): Likewise.
1620         (fold_div_compare): Likewise.
1621         (maybe_canonicalize_comparison_1): Likewise.
1622         (fold_comparison): Likewise.
1623         (fold_binary_loc): Likewise.
1624         (multiple_of_p): Likewise.
1625         * expr.c (store_constructor): Likewise.
1626         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1627         (maybe_fold_stmt_addition): Likewise.
1628         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1629         * stor-layout.c (layout_type): Likewise.
1630         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1631         * tree-sra.c (build_ref_for_offset): Likewise.
1632         (build_user_friendly_ref_for_offset): Likewise.
1633         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1634         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1635         * tree-ssa-loop-niter.c (inverse): Likewise.
1636         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1637         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1638         * tree-switch-conversion.c (check_range): Likewise.
1639         (build_constructors): Likewise.
1640         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1641         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1642         (extract_range_from_assert): Likewise.
1643         (vrp_int_const_binop): Likewise.
1644         (extract_range_from_binary_expr): Likewise.
1645         (extract_range_from_unary_expr): Likewise.
1646         (check_array_ref): Likewise.
1647         (find_case_label_range): Likewise.
1648         (simplify_div_or_mod_using_ranges): Likewise.
1649         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1650         comparing case labels for merging.
1651
1652 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1653
1654         * dwarf2out.c (debug_str_hash_forced): Removed.
1655         (gen_label_for_indirect_string): Removed.
1656         (get_debug_string_label): Removed.
1657         (AT_string_form): Generate label directly.
1658         (output_indirect_string): Test indirect_string_node for
1659         DW_FORM_strp instead of checking label and refcount.
1660         (prune_indirect_string): Removed.
1661         (prune_unused_types): Don't check debug_str_hash_forced or
1662         call prune_indirect_string.
1663
1664 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1665
1666         PR other/48093
1667         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1668
1669 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1670
1671         PR debug/47994
1672         PR debug/47919
1673         * combine.c (try_combine): Skip debug insns at m_split tests.
1674
1675 2011-04-26  Mark Wielaard  <mjw@redhat.com>
1676
1677         PR42288
1678         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1679         when info_section_emitted.
1680
1681 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
1682
1683         * config/mips/mips-opts.h: New.
1684         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1685         to mips-opts.h.
1686         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1687         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1688         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
1689         via opts pointer.
1690         * config/mips/mips.h (enum mips_code_readable_setting): Move to
1691         mips-opts.h.
1692         (mips_abi, mips_code_readable): Don't declare.
1693         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
1694         (mabi=): Use Enum and Var.
1695         (mips_abi): New Enum and EnumValue entries.
1696         (mcode-readable=): Use Enum and Var.
1697         (mips_code_readable_setting): New Enum and EnumValue entries.
1698         (mr10k-cache-barrier=): Use Enum and Var.
1699         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1700
1701 2011-05-03  Jan Hubicka  <jh@suse.cz>
1702
1703         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1704         replace hash by pointer map.
1705         (cgraph_node_set_element_def, cgraph_node_set_element,
1706         const_cgraph_node_set_element, varpool_node_set_element_def,
1707         varpool_node_set_element, const_varpool_node_set_element): Remove.
1708         (free_cgraph_node_set, free_varpool_node_set): New function.
1709         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1710         * tree-emutls.c: Free varpool node set.
1711         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1712         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1713         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1714         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1715         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1716         Move here from ipa.c; implement using pointer_map
1717         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1718         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1719         debug_cgraph_node_set, varpool_node_set_new,
1720         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1721         dump_varpool_node_set, debug_varpool_node_set):
1722         Move to ipa-uitls.c.
1723         * passes.c (ipa_write_summaries): Update.
1724
1725 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1726
1727         From Mike Frysinger:
1728         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1729         bf542/bf544/bf547/bf548/bf549.
1730
1731 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1734
1735 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1736
1737         From Bernd Schmidt:
1738         * config/bfin/bfin.md (MOVCC): New mode_macro.
1739         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1740         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
1741         comments from generated assembly.
1742
1743 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1744
1745         From Bernd Schmidt
1746         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1747         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1748         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1749         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1750         * config/bfin/lib1funcs.asm (___muldi3): New function.
1751
1752 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1753
1754         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1755         build_function_type_list instead of build_function_type.
1756         Rearrange initialization of `args' to do so.
1757
1758 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1759
1760         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1761         instead of build_function_type.
1762
1763 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1764
1765         * config/rs6000/rs6000.c (spe_init_builtins): Call
1766         build_function_type_list instead of build_function_type.
1767         (paired_init_builtins, altivec_init_builtins): Likewise.
1768         (builtin_function_type): Likewise.
1769
1770 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1771
1772         * config/sh/sh.c (sh_media_init_builtins): Call
1773         build_function_type_list instead of build_function_type.
1774
1775 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1776
1777         * config/sparc/sparc.c (sparc_file_end): Call
1778         build_function_type_list instead of build_function_type.
1779
1780 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1781
1782         * config/alpha/alpha.c (alpha_init_builtins): Call
1783         build_function_type_list instead of build_function_type.
1784
1785 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1786
1787         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1788         build_function_type_list instead of build_function_type.
1789
1790 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1791
1792         * config/iq2000/i2000.c (iq2000_init_builtins): Call
1793         build_function_type_list instead of build_function_type.
1794         Delete `endlink' variable.
1795
1796 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1797
1798         * config/avr/avr.c (avr_init_builtins): Call
1799         build_function_type_list instead of build_function_type.
1800
1801 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1802
1803         * config/picochip/picochip.c (picochip_init_builtins): Call
1804         build_function_type_list instead of build_function_type.
1805         Delete `endlink' variable.
1806
1807 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1808
1809         * config/bfin/bfin.c (bfin_init_builtins): Call
1810         build_function_type_list instead of build_function_type.
1811
1812 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1813
1814         From Bernd Schmidt
1815         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1816         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
1817
1818 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1819
1820         From Jie Zhang:
1821         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1822         libbffastfp overrides libgcc when -mfast-fp.
1823
1824 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1825
1826         Originally from Bernd Schmidt
1827         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1828         * config/bfin/bfin.c (override_options): Test it and error if
1829         TARGET_FDPIC.
1830
1831 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1832
1833         Originally From Bernd Schmidt
1834         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1835         FD-PIC.
1836
1837 2011-05-03  Jeff Law  <law@redhat.com>
1838
1839         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1840         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1841         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
1842         than accessing AUX field directly.  Free the AUX field before
1843         clearing it.
1844         (thread_block, thread_through_loop_header): Likewise.
1845         (thread_single_edge, mark_threaded_blocks): Likewise.
1846         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
1847         (register_jump_thread): Do not attempt to thread to a NULL edge.
1848
1849 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1850
1851         * function.c (init_function_start): Call decide_function_section.
1852         * varasm.c (decide_function_section): New function.
1853         (assemble_start_function): When not using
1854         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1855         or first_function_block_is_cold.
1856         * rtl.h (decide_function_section): Declare.
1857
1858 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1859             Jakub Jelinek  <jakub@redhat.com>
1860
1861         PR target/48774
1862         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1863         only succeed if req_mode is the same as set_mode.
1864
1865 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1866
1867         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1868         * genemit.c (gen_exp): Handle RETURN.
1869         * emit-rtl.c (verify_rtx_sharing): Likewise.
1870         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1871         * rtl.c (copy_rtx): RETURN is shared.
1872         * rtl.h (enum global_rtl_index): Add GR_RETURN.
1873         (ret_rtx): New.
1874         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1875         * config/s390/s390.c (s390_emit_epilogue): Likewise.
1876         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1877         * config/cris/cris.c (cris_expand_return): Likewise.
1878         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1879         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1880         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1881         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1882         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1883         Likewise.
1884         * config/v850/v850.c (expand_epilogue): Likewise.
1885         * config/bfin/bfin.c (bfin_expand_call): Likewise.
1886         * config/arm/arm.md (epilogue): Likewise.
1887         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1888         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1889         variable to ret_reg.
1890
1891 2011-05-03  Richard Guenther  <rguenther@suse.de>
1892
1893         PR lto/48846
1894         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1895         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1896         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1897
1898 2011-05-03  Richard Guenther  <rguenther@suse.de>
1899
1900         * c-decl.c (grokdeclarator): Instead of looking at
1901         TREE_OVERFLOW check if the constant fits in the index type.
1902
1903 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1904
1905         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1906         (vec_store_lanes<mode><mode>): Likewise.
1907
1908 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1909
1910         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1911         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1912         convert_optab_index values.
1913         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1914         * genopinit.c (optabs): Initialize the new optabs.
1915         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1916         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1917         (expand_STORE_LANES): New functions.
1918         * tree.h (build_array_type_nelts): Declare.
1919         * tree.c (build_array_type_nelts): New function.
1920         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1921         (vect_model_load_cost): Likewise.
1922         (vect_store_lanes_supported, vect_load_lanes_supported)
1923         (vect_record_strided_load_vectors): Declare.
1924         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1925         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1926         (vect_transform_strided_load): Split out statement recording into...
1927         (vect_record_strided_load_vectors): ...this new function.
1928         * tree-vect-stmts.c (create_vector_array, read_vector_array)
1929         (write_vector_array, create_array_ref): New functions.
1930         (vect_model_store_cost): Add store_lanes_p argument.
1931         (vect_model_load_cost): Add load_lanes_p argument.
1932         (vectorizable_store): Try to use store-lanes functions for
1933         interleaved stores.
1934         (vectorizable_load): Likewise load-lanes and loads.
1935         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1936         to vect_model_store_cost.
1937         (vect_build_slp_tree): Likewise vect_model_load_cost.
1938
1939 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1940
1941         * hooks.h (hook_bool_mode_uhwi_false): Declare.
1942         * hooks.c (hook_bool_mode_uhwi_false): New function.
1943         * target.def (array_mode_supported_p): New hook.
1944         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1945         * doc/tm.texi: Regenerate.
1946         * stor-layout.c (mode_for_array): New function.
1947         (layout_type): Use it.
1948         * config/arm/arm.c (arm_array_mode_supported_p): New function.
1949         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1950
1951 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1952
1953         PR target/48723
1954         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1955         for -fstack-check if the size to allocate is negative.
1956
1957 2011-05-02  Lawrence Crowl  <crowl@google.com>
1958
1959         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1960         (timevar_cond_start): New for starting a timer only when it is not
1961         already running.
1962         (timevar_cond_stop): New for stopping a timer when it was not already
1963         running.
1964
1965         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1966         (timevar_cond_start): New as above.
1967         (timevar_cond_stop): New as above.
1968
1969         * timevar.def: Add start/stop timers for compiler phases,
1970         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1971         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1972         and TV_PHASE_FINALIZE.
1973         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1974         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1975         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1976         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1977         Make unused TV_OVERLOAD into a start/stop timer.
1978
1979         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1980         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1981         to indicate that they are start/stop timers.
1982
1983         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1984         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1985         Move initialization to do_compile.
1986         (do_compile): Add initialization from above.
1987         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1988
1989         * c-decl.c (c_write_global_declarations): Add start/stop of
1990         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1991
1992         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1993         or TV_PARSE_INLINE, as appropriate.
1994         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1995         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1996
1997 2011-05-02  Jason Merrill  <jason@redhat.com>
1998
1999         PR c++/40975
2000         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2001
2002 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2003
2004         PR c/35445
2005         * c-decl.c (finish_decl): Only create a composite if the types are
2006         compatible.
2007
2008 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2009
2010         * config/fr30/fr30-protos.h (Mmode): Don't define.
2011         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2012         definition where used.
2013         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2014         define.  Expand definitions where used.
2015         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2016         Expand definitions where used.
2017         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2018         rx_function_arg, rx_function_arg_advance,
2019         rx_function_arg_boundary): Expand definitions of those macros.
2020         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2021         definition where used.
2022
2023 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2024
2025         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2026         reg<->xmm moves.
2027         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2028         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2029         with *movv2sf_internal_rex64_avx.
2030         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2031         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2032         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2033         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2034         "vex" in "prefix" attribute calculation.
2035         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2036
2037 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2038
2039         PR target/47951
2040         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2041         inputs match the output.
2042
2043 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2044
2045         PR target/47955
2046         * config/m68k/m68k.c (m68k_expand_prologue): Set
2047         current_function_static_stack_size.
2048
2049 2011-05-02   Jan Hubicka  <jh@suse.cz>
2050
2051         * lto-streamer.c (lto_streamer_cache_insert_1,
2052         lto_streamer_cache_lookup, lto_streamer_cache_create,
2053         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2054         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2055
2056 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2057
2058         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2059         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2060         config/m68k/t-opts: New files.
2061         * config/m68k/m68k-tables.opt: New file (generated).
2062         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2063         extra_options and m68k/t-opts to tmake_file.
2064         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2065         (all_isas): Initialize using m68k-isas.def.
2066         (all_microarchs): Initialize using m68k-microarchs.def.
2067         (m68k_find_selection): Remove.
2068         (m68k_handle_option): Don't assert that global structures are in
2069         use.  Use error_at.  Access variables via opts pointer.  Don't
2070         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2071         directly for -m68020-40 and -m68020-60.
2072         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2073         m68k_tune_entry here.
2074         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2075         to m68k-opts.h.
2076         (m68k_library_id_string): Remove declaration.
2077         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2078         (m68k_library_id_string): New Variable.
2079         (march=, mcpu=, mtune=): Use Enum and Var.
2080
2081 2011-05-02  Richard Guenther  <rguenther@suse.de>
2082
2083         * varasm.c (output_constructor_regular_field): Compute zero-based
2084         index with double-ints.  Make sure to ICE instead of producing
2085         wrong code.
2086         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2087         in asserts.  Properly use a signed type.
2088
2089 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2090
2091         * config/i386/sse.md (V): New mode iterator.
2092         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2093         TARGET_SSE2.
2094         (V_256): Rename from AVX256MODE.
2095         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2096         condition to all users.
2097         (VF1): Ditto.
2098         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2099         condition to all users.
2100         (VF_128): Make V4SF mode unconditional.
2101         (VF_256): Rename from AVX256MODEF2P.
2102         (VI4F_128): Rename from SSEMODE4S.
2103         (VI8F_128): Rename from SSEMODE2D.
2104         (VI4F_256): Rename from AVX256MODE8P.
2105         (VI8F_256): Rename from AVX256MODE4P.
2106         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2107         (ssescalarmodesuffix): Remove SF and DF modes.
2108         (SSEMODE124): Remove.
2109         (SSEMODE1248): Ditto.
2110         (SSEMODEF2P): Ditto.
2111         (AVXMODEF2P): Ditto.
2112         (AVXMODEFDP): Ditto.
2113         (AVXMODEFSP): Ditto.
2114         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2115         unconditional.
2116         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2117         unconditional.
2118         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2119         xop_pcmov_<mode>256.  Use V mode iterator.
2120
2121         Adjust RTX patterns globally for renamed mode attributes.
2122
2123 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2124
2125         * haifa-sched.c (sched_emit_insn): Emit insn before first
2126         non-scheduled insn.  Inform back-end about new insn.  Add
2127         new insn to scheduled_insns list.
2128
2129 2011-05-02  Richard Guenther  <rguenther@suse.de>
2130
2131         PR tree-optimization/48822
2132         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2133         (process_scc): Indicate which iteration we start.
2134
2135 2011-05-02  Jan Hubicka  <jh@suse.cz>
2136
2137         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2138         (lto_section_overrun): New.
2139         * lto-section-out.c (append_block): Rename to ...
2140         (lto_append_block): ... this one; export.
2141         (lto_output_1_stream): Move lto lto-streamer.h
2142         (lto_output_data_stream): Update.
2143         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2144         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2145         functions.
2146
2147 2011-05-02  Richard Guenther  <rguenther@suse.de>
2148
2149         * tree.c (tree_code_counts): New global array.
2150         (record_node_allocation_statistics): Count individual tree codes.
2151         (dump_tree_statistics): Dump individual code stats.
2152
2153 2011-05-01  Jan Hubicka  <jh@suse.cz>
2154
2155         * ipa-inline.c (caller_growth_limits): Fix thinko when
2156         looking for largest stack frame.
2157         * ipa-inline.h (dump_inline_summary): Declare.
2158         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2159         on stack usage.
2160         (dump_inline_summary): Export.
2161         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2162
2163 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2164
2165         * reginfo.c (memory_move_cost): Change rclass argument type form
2166         'enum reg_class' to reg_class_t.
2167         * reload.h (memory_move_cost): Update prototype.
2168         * postreload.c reload_cse_simplify_set): Change type dclass var to
2169         reg_class_t.
2170         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2171         Update prototype.
2172         (ira_allocate_and_set_costs): Change aclass argument type form
2173         'enum reg_class' to reg_class_t.
2174         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2175         Change aclass argument type to reg_class_t.
2176         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2177         to reg_class_t.
2178         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2179         memory_move_cost call.
2180
2181         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2182         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2183         Change type tmp var to reg_class_t.
2184
2185 2011-04-30  Jan Hubicka  <jh@suse.cz>
2186
2187         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2188         inlining into function with flatten attribute.
2189         (want_inline_small_function_p): Be more realistic about inlining
2190         cold calls where callee size grows.
2191
2192 2011-04-30  Jan Hubicka  <jh@suse.cz>
2193
2194         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2195         flags.
2196
2197 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2198
2199         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2200         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2201         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2202         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2203         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2204         (print_operand): Rename to...
2205         (sparc_print_operand): ...this. Make static. Adjust
2206         sparc_print_operand function call.
2207         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2208         functions.
2209
2210 2011-04-30  Jan Hubicka  <jh@suse.cz>
2211
2212         PR middle-end/48752
2213         * ipa-inline.c (early_inliner): Disable when doing late
2214         addition of function.
2215
2216 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2217
2218         * dwarf2out.c (get_address_mode): New inline.
2219         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2220         if not dwarf_strict emit
2221         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2222         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2223         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2224         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2225         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2226         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2227         mem_loc_descriptor callers.
2228         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2229         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2230         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2231         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2232         (base_types): New variable.
2233         (get_base_type_offset, calc_base_type_die_sizes,
2234         base_type_for_mode, mark_base_types, base_type_cmp,
2235         move_marked_base_types): New functions.
2236         (calc_die_sizes): Assert that die_offset is 0 or equal to
2237         next_die_offset.
2238         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2239         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2240         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2241         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2242         (gen_subprogram_die): Don't give up on call site parameters
2243         with non-integral or large integral modes.  Adjust
2244         mem_loc_descriptor callers.
2245         (prune_unused_types): Call prune_unused_types_mark on base_types
2246         vector entries.
2247         (resolve_addr): Call mark_base_types.
2248         (dwarf2out_finish): Call move_marked_base_types.
2249
2250         PR tree-optimization/48809
2251         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2252         type.
2253         (gen_inbound_check): Don't compute index_expr - range_min in utype
2254         again, instead reuse SSA_NAME initialized in build_arrays.
2255         Remove two useless gsi_for_stmt calls.
2256
2257 2011-04-29  Jeff Law  <law@redhat.com>
2258
2259         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2260
2261 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2262
2263         * cgraph.h (cgraph_postorder): Remove declaration.
2264         * ipa-utils.h (ipa_free_postorder_info): Declare.
2265         (ipa_reverse_postorder): Likewise.
2266         * cgraphunit.c: Include ipa-utils.h.
2267         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2268         * ipa-inline.c: Include ipa-utils.h.
2269         (ipa_inline): Update call to ipa_reverse_postorder.
2270         * ipa-pure-const.c (propagate_pure_const): Update call to
2271         ipa_reduced_postorder and ipa_print_order.  Call
2272         ipa_free_postorder_info to clean up.
2273         (propagate_nothrow): Likewise.
2274         * ipa-reference.c (propagate): Removed a useless call to
2275         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2276         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2277         * ipa.c: Include ipa-utils.h.
2278         (ipa_profile): Update call to ipa_reverse_postorder.
2279         (cgraph_postorder): Moved to...
2280         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2281         (ipa_utils_print_order): Renamed to ipa_print_order.
2282         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2283         comments.
2284         (ipa_free_postorder_info): New function.
2285         * passes.c: Include ipa-utils.h.
2286         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2287         (ipa_write_summaries): Likewise.
2288         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2289         (cgraphunit.o): Likewise.
2290         (ipa.o): Likewise.
2291         (ipa-inline.o): Likewise.
2292
2293 2011-04-29  Jan Hubicka  <jh@suse.cz>
2294
2295         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2296         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2297         * ipa-inline.h (clause_t): Turn into unsigned int.
2298         * ipa-inline-analysis.c (add_clause): Do more simplification.
2299         (and_predicates): Shortcut more cases.
2300         (predicates_equal_p): Move forward; check that clauses are properly
2301         ordered.
2302         (or_predicates): Shortcut more cases.
2303         (edge_execution_predicate): Rewrite as...
2304         (set_cond_stmt_execution_predicate): ... this function; handle
2305         __builtin_constant_p.
2306         (set_switch_stmt_execution_predicate): New .
2307         (compute_bb_predicates): New.
2308         (will_be_nonconstant_predicate): Update TODO.
2309         (estimate_function_body_sizes): Use compute_bb_predicates
2310         and free them later, always try to estimate if stmt is constant.
2311         (estimate_time_after_inlining, estimate_size_after_inlining):
2312         Gracefully handle optimized out edges.
2313         (read_predicate): Fix off by one error.
2314
2315 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2316
2317         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2318
2319 2011-04-27  Xinliang David Li  <davidxl@google.com>
2320
2321         * tree-profile.c (init_ic_make_global_vars): Set
2322         tls attribute on ic vars.
2323         * coverage.c (coverage_end_function): Initialize
2324         function_list with zero.
2325
2326 2011-04-29  Richard Guenther  <rguenther@suse.de>
2327
2328         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2329         for the type of the result.
2330         (fold_builtin_isascii): Likewise.
2331         (fold_builtin_toascii): Use integer_type_node where appropriate.
2332         (fold_builtin_logb): Likewise.
2333         (fold_builtin_frexp): Likewise.
2334         (fold_builtin_strstr): Likewise.
2335         (fold_builtin_strpbrk): Likewise.
2336         (fold_builtin_fputs): Likewise.
2337         (fold_builtin_sprintf): Likewise.
2338         (fold_builtin_snprintf): Likewise.
2339         (fold_builtin_printf): Likewise.
2340         (do_mpfr_remquo): Use a proper type for the assigned constant.
2341         (do_mpfr_lgamma_r): Likewise.
2342         * dwarf2out.c (resolve_one_addr): Use size_int.
2343         * except.c (init_eh): Likewise.
2344         (assign_filter_values): Use integer_type_node for filter values.
2345         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2346         indices.
2347         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2348         for EH region numbers.
2349         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2350         for the shift amount.
2351
2352 2011-04-29  Richard Guenther  <rguenther@suse.de>
2353
2354         * expr.h (expand_shift): Rename to ...
2355         (expand_variable_shift): ... this.
2356         (expand_shift): Take a constant shift amount.
2357         * expmed.c (expand_shift): Rename to ...
2358         (expand_variable_shift): ... this.
2359         (expand_shift): New wrapper around expand_variable_shift.
2360         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2361         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2362         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2363         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2364         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2365         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2366         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2367         emit_store_flag_1, emit_store_flag): Likewise.
2368         * builtins.c (expand_builtin_signbit): Likewise.
2369         * calls.c (load_register_parameters): Likewise.
2370         * function.c (assign_parm_setup_block): Likewise.
2371         * lower-subreg.c (resolve_shift_zext): Likewise.
2372         * optabs.c (widen_bswap, expand_abs_nojump,
2373         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2374         * spu/spu.c (spu_expand_extv): Likewise.
2375         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2376
2377 2011-04-29  Richard Guenther  <rguenther@suse.de>
2378
2379         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2380         for the remapped region number.
2381         * predict.c (build_predict_expr): Use integer_type_node for the
2382         predict kind.
2383         * fold-const.c (fold_binary_loc): Use integer_type_node for
2384         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2385
2386 2011-04-29  Michael Matz  <matz@suse.de>
2387
2388         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2389         other trees that just builtins.
2390         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2391
2392 2011-04-29  Richard Guenther  <rguenther@suse.de>
2393
2394         * tree-nested.c (get_trampoline_type): Use size_int.
2395         (get_nl_goto_field): Likewise.
2396         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2397         for all indexes.
2398         (lower_eh_constructs_2): Likewise.
2399         (lower_resx): Likewise.
2400         (lower_eh_dispatch): Likewise.
2401         * tree-mudflap.c (mf_build_string): Use size_int.
2402         (mudflap_register_call): Use integer_type_node for the flag.
2403         (mudflap_enqueue_constant): Use size_int.
2404         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2405         instead of rebuilding it.
2406
2407 2011-04-29  Richard Guenther  <rguenther@suse.de>
2408
2409         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2410         Handle OBJ_TYPE_REF.
2411         (find_func_aliases_for_call): Use it more consistently.
2412
2413 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2414
2415         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2416         (rank_for_schedule): Use it.
2417         (schedule_block): Set it.
2418
2419 2011-04-28  David Li  <davidxl@google.com>
2420
2421         * tree.c (crc32_string): Use crc32_byte.
2422         (crc32_byte): New function.
2423         * tree.h (crc32_byte): New function.
2424         * gcov.c (read_graph_file): Handle new cfg_cksum.
2425         (read_count_file): Ditto.
2426         * profile.c (instrument_values): Ditto.
2427         (get_exec_counts): Ditto.
2428         (read_profile_edge_counts): Ditto.
2429         (compute_branch_probabilities): Ditto.
2430         (compute_value_histograms): Ditto.
2431         (branch_prob): Ditto.
2432         (end_branch_prob): Ditto.
2433         * coverage.c (read_counts_file): Ditto.
2434         (get_coverage_counts): Ditto.
2435         (tree_coverage_counter_addr): Ditto.
2436         (coverage_checksum_string): Ditto.
2437         (coverage_begin_output): Ditto.
2438         (coverage_end_function): Ditto.
2439         (build_fn_info_type): Ditto.
2440         (build_fn_info_value): Ditto.
2441         * libgcov.c (gcov_exit): Ditto.
2442         * gcov-dump.c (tag_function): Ditto.
2443         (compute_checksum): Remove.
2444
2445 2011-04-29  Alan Modra  <amodra@gmail.com>
2446
2447         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2448         unspec plus offset.  Tidy macho code.
2449
2450 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2451
2452         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2453         node instead of a decl.  Update all callers.
2454         * cgraph.h: Update declaration.
2455
2456 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2457
2458         PR tree-optimization/48765
2459         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2460         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2461         to indicate if loop aware SLP is being used.  Scan the statements
2462         and update the vectorization factor according to the type of
2463         vectorization before statement analysis.
2464         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2465         pass it to vect_analyze_loop_operations.
2466         (vectorizable_reduction): Set number of copies to 1 in case of pure
2467         SLP statement.
2468         * tree-vect-stmts.c (vectorizable_conversion,
2469         vectorizable_assignment, vectorizable_shift,
2470         vectorizable_operation, vectorizable_type_demotion,
2471         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2472         Likewise.
2473         (vectorizable_condition): Move the check that it is not SLP
2474         vectorization before the number of copies check.
2475         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2476         to vectorize the loop using SLP.
2477
2478 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2479
2480         PR middle-end/48597
2481         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2482         inline asm.
2483
2484 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2485
2486         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2487         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2488         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2489         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2490         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2491         linux*.h headers.
2492         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2493         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2494         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2495         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2496         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2497         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2498         REG_NAME.
2499         * config/i386/linux.h (REG_NAME): Don't define.
2500         * config/i386/linux64.h (REG_NAME): Don't define.
2501         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2502         Undefine before defining.
2503
2504 2011-04-28  Jan Hubicka  <jh@suse.cz>
2505
2506         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2507         nonconstant_names array.
2508         (estimate_function_body_sizes): Build nonconstant_names array; handle
2509         BUILT_IN_CONSTANT_P.
2510
2511 2011-04-28  Richard Guenther  <rguenther@suse.de>
2512
2513         PR bootstrap/48804
2514         Revert
2515         2011-04-28  Richard Guenther  <rguenther@suse.de>
2516
2517         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2518         as late as possible.
2519
2520 2011-04-28  Richard Guenther  <rguenther@suse.de>
2521
2522         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2523         (debug_constraint): Do it here.
2524         (dump_constraints): And here.
2525         (rewrite_constraints): And here.
2526         (dump_constraint_edge): Remove.
2527         (dump_constraint_graph): Rewrite to produce DOT output.
2528         (solve_constraints): Build succ graph as late as possible.
2529         Dump constraint graphs before and after solving.
2530
2531 2011-04-28  Richard Guenther  <rguenther@suse.de>
2532
2533         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2534         New function split out from ...
2535         (find_func_aliases): ... here.  Call it.
2536         (find_func_aliases_for_call): Likewise.
2537
2538 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2539
2540         * internal-fn.h (internal_fn_name_array): Declare.
2541         (internal_fn_flags_array): Likewise.
2542
2543 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2544
2545         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2546         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2547         Move from sse.md.
2548         (ssemodefsuffix): Remove.
2549         (ssevecmodesuffix): New mode attribute.
2550         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2551         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2552         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2553         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2554         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2555         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2556         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2557         ssemodesuffix mode attribute.
2558         (float splitters): Use ssevecmodesuffix mode attribute.
2559         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2560         (sseinsmode): Rename from avxvecmode.
2561         (avxsizesuffix): Rename from avxmodesuffix.
2562         (sseintvecmode): Rename from avxpermvecmode.
2563         (ssedoublevecmode): Rename from ssedoublesizemode.
2564         (ssehalfvecmode): Rename from avxhalfvecmode.
2565         (ssescalarmode): Rename from avxscalarmode.
2566         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2567         templates for ssemodesuffix mode attribute.
2568         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2569         mode attribute.
2570
2571         Adjust RTX patterns globally for renamed mode attributes.
2572
2573 2011-04-27  Jan Hubcika  <jh@suse.cz>
2574
2575         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2576         * ipa-inline-analysis.c: Include alloc-pool.h.
2577         (edge_predicate_pool): New.
2578         (trye_predicate_p): New function
2579         (false_predicate_p): New function.
2580         (add_clause): Sanity check that false clauses are "optimized";
2581         never add clauses to predicate that is already known to be false.
2582         (and_predicate): Use flase_predicate_p.
2583         (evaulate_predicate): Rename to ...
2584         (evaluate_predicate): ... this one; update all callers; assert
2585         that false is not listed among possible truths.
2586         (dump_predicate): Use true_predicate_p.
2587         (account_size_time): Use false_predicate_p.
2588         (evaulate_conditions_for_edge): Rename to ...
2589         (evaluate_conditions_for_edge) ... this one.
2590         (edge_set_predicate): New function.
2591         (inline_edge_duplication_hook): Duplicate edge predicates.
2592         (inline_edge_removal_hook): Free edge predicates.
2593         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2594         (dump_inline_summary): Update.
2595         (estimate_function_body_sizes): Set edge predicates.
2596         (estimate_calls_size_and_time): Handle predicates.
2597         (estimate_callee_size_and_time): Update.
2598         (remap_predicate): Add toplev_predicate; update comment.
2599         (remap_edge_predicates): New function.
2600         (inline_merge_summary): Compute toplev predicate; update.
2601         (read_predicate): New function.
2602         (read_inline_edge_summary): Use it.
2603         (inline_read_section): Likewise.
2604         (write_predicate): New function.
2605         (write_inline_edge_summary): Use it.
2606         (inline_write_summary): Likewise.
2607         (inline_free_summary): Free alloc pool and edge summary vec.
2608
2609 2011-04-27  Richard Guenther  <rguenther@suse.de>
2610
2611         * tree-ssa-structalias.c (changed_count): Remove.
2612         (changed): Use a bitmap.
2613         (unify_nodes): Adjust.
2614         (do_sd_constraint): Likewise.
2615         (do_ds_constraint): Likewise.
2616         (do_complex_constraint): Likewise.
2617         (solve_graph): Likewise.
2618
2619 2011-04-27  Jan Hubicka  <jh@suse.cz>
2620
2621         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2622
2623 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2626         (avx_vperm2f128_*_operand): Ditto.
2627         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2628         Use avx_vpermilp_parallel in insn condition.
2629         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2630         Use avx_vperm2f128_parallel in insn condition.
2631
2632 2011-04-27  Richard Guenther  <rguenther@suse.de>
2633
2634         * Makefile.in (tree-ssa-structalias.o): Remove
2635         gt-tree-ssa-structalias.h dependency.
2636         (GTFILES): Remove tree-ssa-structalias.c.
2637         * tree.c (allocate_decl_uid): New function.
2638         (make_node_stat): Use it.
2639         (copy_node_stat): Likewise.
2640         * tree.h (allocate_decl_uid): Declare.
2641         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2642         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2643         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2644         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2645         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2646         (struct heapvar_map): Likewise.
2647         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2648         heapvar_insert): Likewise.
2649         (make_heapvar_for): Rename to ...
2650         (make_heapvar): ... this.  Simplify.
2651         (fake_var_decl_obstack): New global var.
2652         (build_fake_var_decl): New function.
2653         (make_constraint_from_heapvar): Adjust.
2654         (handle_lhs_call): Likewise.
2655         (create_function_info_for): Likewise.
2656         (intra_create_variable_infos): Likewise.
2657         (init_alias_vars): Allocate fake_var_decl_obstack.
2658         (init_alias_heapvars, delete_alias_heapvars): Remove.
2659         (compute_points_to_sets): Do not call init_alias_heapvars.
2660         (ipa_pta_execute): Likewise.
2661         (delete_points_to_sets): Free fake_var_decl_obstack.
2662
2663 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2664
2665         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2666         (si_from_UTItype, si_to_UTItype): New functions.
2667         (__udivmodti4): Use them to implement type-punning.
2668         * config/spu/multi3.c (union qword_TItype): New data type.
2669         (si_from_TItype, si_to_TItype): New functions.
2670         (__multi3): Use them to implement type-punning.
2671
2672 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2673
2674         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2675
2676 2011-04-27  Jan Hubicka  <jh@suse.cz>
2677
2678         * ipa-prop.c (function_insertion_hook_holder): New holder.
2679         (ipa_add_new_function): New function.
2680         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2681         Register/deregister holder.
2682
2683 2011-04-27  Richard Guenther  <rguenther@suse.de>
2684
2685         PR tree-optimization/48772
2686         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
2687
2688 2011-04-27  Richard Guenther  <rguenther@suse.de>
2689
2690         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2691         TARGET_MEM_REF handling.
2692
2693 2011-04-27  Nick Clifton  <nickc@redhat.com>
2694
2695         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2696         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2697         (REG_CLASS_NAMES): Likewise.
2698         (REG_CLASS_CONTENTS): Likewise.
2699         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2700         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2701         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2702         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2703         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2704         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2705         duplicate register classes.
2706         (frv_class_likely_spilled_p): Likewise.
2707         (frv_register_move_cost): Likewise.
2708
2709         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2710         end of the regno_reg_class array.
2711
2712 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2713
2714         PR c/48742
2715         * c-typeck.c (build_binary_op): Don't wrap arguments if
2716         int_operands is true.
2717
2718 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2719
2720         PR target/48767
2721         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2722         targetm.calls.must_pass_in_stack for void type.
2723
2724 2011-04-26  Jan Hubicka  <jh@suse.cz>
2725
2726         * cgraphbuild.c (build_cgraph_edges): Update call
2727         of cgraph_create_edge and cgraph_create_indirect_edge.
2728         * cgraph.c (cgraph_create_edge_including_clones,
2729         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2730         cgraph_update_edges_for_call_stmt_node): Do not take nest
2731         argument; do not initialize call_stmt_size/time.
2732         (dump_cgraph_node): Do not dump nest.
2733         (cgraph_clone_edge): Do not take loop_nest argument;
2734         do not propagate it; do not clone call_stmt_size/time.
2735         (cgraph_clone_node): Likewise.
2736         (cgraph_create_virtual_clone): Update.
2737         * cgraph.h (struct cgraph_edge): Remove
2738         call_stmt_size/call_stmt_time/loop_nest.
2739         (cgraph_create_edge, cgraph_create_indirect_edge,
2740         cgraph_create_edge_including_clones, cgraph_clone_node): Update
2741         prototype.
2742         * tree-emutls.c (gen_emutls_addr): Update.
2743         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2744         loop_nest; handle indirect calls, too.
2745         (clone_inlined_nodes): Do not care about updating inline summaries.
2746         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2747         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2748         stream call_stmt_size/call_stmt_time/loop_nest.
2749         * ipa-inline.c (edge_badness): Update.
2750         (ipa_inline): dump summaries after inlining.
2751         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
2752         New.
2753         (inline_edge_summary): New function.
2754         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2755         (inline_edge_removal_hook): Handle edge summaries.
2756         (inline_edge_duplication_hook): New hook.
2757         (inline_summary_alloc): Alloc hooks.
2758         (initialize_growth_caches): Do not register removal hooks.
2759         (free_growth_caches); Do not free removal hook.
2760         (dump_inline_edge_summary): New function.
2761         (dump_inline_summary): Use it.
2762         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2763         (inline_update_callee_summaries): New function.
2764         (inline_merge_summary): Use it.
2765         (do_estimate_edge_time, do_estimate_edge_growth): Update.
2766         (read_inline_edge_summary): New function.
2767         (inline_read_section): Use it.
2768         (write_inline_edge_summary): New function.
2769         (inline_write_summary): Use it.
2770         (inline_free_summary): Free edge new holders.
2771         * tree-inline.c (copy_bb): Update.
2772
2773 2011-04-26  Jason Merrill  <jason@redhat.com>
2774
2775         * tree-eh.c (lower_try_finally_switch): Create the label along with
2776         the CASE_LABEL_EXPR.
2777
2778 2011-04-26  David S. Miller  <davem@davemloft.net>
2779             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2780
2781         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2782         * configure: Regenerate.
2783
2784 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2785
2786         PR target/48258
2787         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2788         reduction.
2789         (VEC_reduc): New code iterator and splitters for vector reduction.
2790         (VEC_reduc_name): Ditto.
2791         (VEC_reduc_rtx): Ditto.
2792         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2793         (reduc_<VEC_reduc_name>_v4sf): Ditto.
2794
2795         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2796         support for extracting SF on VSX.
2797
2798         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2799         generating xscvspdp.
2800         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2801         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2802         double add, minimum, maximum vector reduction.
2803         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2804         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2805         optimize double vector reduction.
2806         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2807
2808 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
2809
2810         * config/fr30/fr30.h (inhibit_libc): Don't define.
2811         * config/m32r/m32r-protos.h: Correct comment.
2812         * config/v850/v850.h (GHS_default_section_names,
2813         GHS_current_section_names): Use tree, not union tree_node *.
2814
2815 2011-04-26  Xinliang David Li  <davidxl@google.com>
2816
2817         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2818         * c-family/c-opts.c (c_common_handle_option): Set
2819         warn_maybe_uninitialized.
2820         * opts.c (common_handle_option): Ditto.
2821         * common.opt:  New option.
2822         * tree-ssa.c (warn_uninit): Add one more parameter.
2823         (warn_uninitialized_var): Pass warning code.
2824         * tree-flow.h: Interface change.
2825
2826
2827 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2828
2829         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2830         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2831         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2832
2833 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2834
2835         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2836         * config/mips/mips.opt (mmips-tfile): Remove.
2837
2838         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2839         mips-tdump reference to ...
2840         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
2841         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2842         reference by Tru64 UNIX.
2843
2844 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
2845
2846         PR debug/48768
2847         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2848         is error_mark_node, set value to NULL.
2849
2850         PR tree-optimization/48734
2851         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2852         if return value from maybe_fold_*_comparsions isn't something
2853         the code is prepared to handle.
2854
2855 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
2856
2857         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2858         mode check.
2859         (ext_QIreg_nomode_operands): Remove.
2860         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2861         (*andsi_1): Ditto.
2862         (*andhi_1): Ditto.
2863
2864 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
2865
2866         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2867
2868 2011-04-26  Richard Guenther  <rguenther@suse.de>
2869
2870         * c-typeck.c (build_unary_op): Do not expand array-refs via
2871         pointer arithmetic.  Only adjust qualifiers for function types.
2872
2873 2011-04-26  Richard Guenther  <rguenther@suse.de>
2874
2875         PR middle-end/48694
2876         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2877         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
2878         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
2879         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2880
2881 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
2882
2883         * doc/extend.texi: Document __underlying_type.
2884
2885 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
2886
2887         * config/rs6000/titan.md (automata_option "progress"): Remove.
2888
2889 2011-04-25  Jeff Law  <law@redhat.com>
2890
2891         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2892
2893 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2894
2895         * system.h (ENUM_BITFIELD): Remove.
2896
2897 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
2898             Eric Botcazou  <ebotcazou@adacore.com>
2899
2900         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2901         for STORE_FLAG_VALUE==-1 case.
2902
2903 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
2904
2905         PR target/43804
2906         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2907         LEGITIMATE_PIC_OPERAND_P.
2908
2909 2011-04-24  Jan Hubicka  <jh@suse.cz>
2910
2911         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2912         WPA hack.
2913         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2914         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2915         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
2916         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2917         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2918         Sanity check predicate length.
2919         (remap_predicate): Likewise; sanity check jump functions.
2920         (inline_read_section, inline_write_summary): Sanity check
2921         predicate length.
2922
2923 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
2924
2925         PR other/48748
2926         * doc/extend.texi (Type Traits): Document __is_standard_layout,
2927         __is_literal_type, and __is_trivial; update throughout about
2928         possibly cv-qualified void types.
2929
2930 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2931
2932         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2933         testsuite and make it version agnostic.
2934
2935 2011-04-22  Jan Hubicka  <jh@suse.cz>
2936
2937         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2938
2939 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
2940
2941         PR c/48685
2942         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2943         to VOID_TYPE even around MODIFY_EXPR.
2944
2945 2011-04-22  Mike Stump  <mikestump@comcast.net>
2946
2947         * gensupport.c (read_md_rtx): Fix typo in comment.
2948         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2949         comment.
2950
2951 2011-04-22  Jan Hubicka  <jh@suse.cz>
2952
2953         * gengtype.c (open_base_files): Add ipa-inline.h include.
2954         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2955         ipa-prop.c; update all uses.
2956         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
2957         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2958         merge summary of inlined function into former caller.
2959         * ipa-inline.c (max_benefit): Remove.
2960         (edge_badness): Compensate for removal of benefits.
2961         (update_caller_keys): Use
2962         reset_node_growth_cache/reset_edge_growth_cache.
2963         (update_callee_keys): Likewise.
2964         (update_all_callee_keys): Likewise.
2965         (inline_small_functions): Do not collect max_benefit; do not reset
2966         estimated_growth; call free_growth_caches and initialize_growth_caches.
2967         * ipa-inline.h (struct condition, type clause_t, struct predicate,
2968         struct size_time_entry): New structures.
2969         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
2970         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2971         and estimated_growth.
2972         (edge_growth_cache_entry): New structure.
2973         (node_growth_cache, edge_growth_cache): New global vars.
2974         (estimate_growth): Turn into inline.
2975         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2976         initialize_growth_caches, free_growth_caches): Declare.
2977         (estimate_edge_growth): Rewrite.
2978         (estimate_edge_time): Implement as inline cache lookup.
2979         (reset_node_growth_cache, reset_edge_growth_cache): New inline
2980         functions.
2981         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2982         (NUM_CONDITIONS): New constant.
2983         (predicate_conditions): New enum.
2984         (IS_NOT_CONSTANT): New constant.
2985         (edge_removal_hook_holder): New var.
2986         (node_growth_cache, edge_growth_cache): New global vars.
2987         (true_predicate, single_cond_predicate, false_predicate,
2988         not_inlined_predicate, add_condition, add_clause, and_predicates,
2989         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2990         dump_clause, dump_predicate, account_size_time,
2991         evaulate_conditions_for_edge): New functions.
2992         (inline_summary_alloc): Move to heap.
2993         (inline_node_removal_hook): Clear condition and entry vectors.
2994         (inline_edge_removal_hook): New function.
2995         (initialize_growth_caches, free_growth_caches): New function.
2996         (dump_inline_summary): Update.
2997         (edge_execution_predicate): New function.
2998         (will_be_nonconstant_predicate): New function.
2999         (estimate_function_body_sizes): Compute BB and constantness predicates.
3000         (compute_inline_parameters): Do not clear estimated_growth.
3001         (estimate_edge_size_and_time): New function.
3002         (estimate_calls_size_and_time): New function.
3003         (estimate_callee_size_and_time): New function.
3004         (remap_predicate): New function.
3005         (inline_merge_summary): New function.
3006         (do_estimate_edge_time): New function based on...
3007         (estimate_edge_time): ... this one.
3008         (do_estimate_edge_growth): New function.
3009         (do_estimate_growth): New function based on....
3010         (estimate_growth): ... this one.
3011         (inline_analyze_function): Analyze after deciding on jump functions.
3012         (inline_read_section): New function.
3013         (inline_read_summary): Use it.
3014         (inline_write_summary): Write all the new data.
3015         * ipa-prop.c (ipa_get_param_decl_index): Export.
3016         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3017         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3018         Declare.
3019         (ipa_get_lattice): Move here from ipa-cp.c
3020         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3021         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3022         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3023         cgraph_edge_inlinable_p): Remove.
3024         * cgraphunit.c: Include ipainline.h
3025         (cgraph_process_new_functions): Update call of
3026         compute_inline_parameters.
3027
3028 2011-04-22  Richard Guenther  <rguenther@suse.de>
3029
3030         * tree.c (build_int_cst): Properly create canonicalized integer
3031         constants.
3032         (build_int_cst_type): Remove scary comments.
3033
3034 2011-04-22  Xinliang David Li  <davidxl@google.com>
3035
3036         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3037         by default when -Wno-error is not specified.
3038         * opts-global.c (decode_options): Remove call to
3039         control_warning_options.
3040
3041 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3042
3043         PR tree-optimization/48717
3044         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3045         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3046
3047 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3048
3049         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3050         definition where used.
3051
3052 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3053
3054         PR c/48716
3055         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3056         TREE_STATIC variables declared inside of some OpenMP construct.
3057
3058 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3059
3060         PR middle-end/48585
3061         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3062
3063 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3064
3065         PR c/36750
3066         * c-typeck.c (pop_init_level): Do not warn about initializing
3067         with ` = {0}'.
3068
3069 2011-04-22  Alan Modra  <amodra@gmail.com>
3070
3071         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3072         when returning call_cookie.
3073         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3074         pointers, to functions with no more vector args than the current
3075         function, and some non-local calls for ABI_V4.
3076         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3077         sibcall_nonlocal_aix64): Combine to ..
3078         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3079         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3080         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3081         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3082         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3083         operand.
3084         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3085         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3086         sibcall_value_symbolic_64): Delete.
3087
3088 2011-04-21  Xinliang David Li  <davidxl@google.com>
3089
3090         * cgraph.h: Remove pid.
3091         * cgraph.c: Remove pid.
3092         * value-prof.c (init_node_map): New function.
3093         (del_node_map): New function.
3094         (find_func_by_funcdef_no): New function.
3095         (gimple_ic_transform): Call new function.
3096         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3097         * function.c (get_last_funcdef_no): New function.
3098         * function.h (get_last_funcdef_no): New function.
3099         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3100         to libgcov function.
3101         (tree-profiling): Call node map init and delete function.
3102
3103 2011-04-21  Ian Lance Taylor  <iant@google.com>
3104
3105         * godump.c (go_format_type): Use exported Go name for anonymous
3106         field name.
3107
3108 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3109
3110         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3111         Call builtin_function_type_list instead of builtin_function_type.
3112         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3113
3114 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3115
3116         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3117         build_function_type_list instead of build_function_type.
3118         Delete variable `endlink'.
3119
3120 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3121
3122         * config/s390/s390.c (s390_init_builtins): Call
3123         build_function_type_list instead of build_function_type.
3124
3125 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3126
3127         * config/ia64/ia64.c (ia64_init_builtins): Call
3128         build_function_type_list instead of builtin_function_type.
3129
3130 2011-04-21  Easwaran Raman  <eraman@google.com>
3131
3132         * cfgexpand.c (stack_var): Remove OFFSET...
3133         (add_stack_var): ...and its reference here...
3134         (expand_stack_vars): ...and here.
3135         (stack_var_cmp): Sort by descending order of size.
3136         (partition_stack_vars): Change heuristic.
3137         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3138         (dump_stack_var_partition): Add newline after each partition.
3139
3140 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3141             Jeff Law  <law@redhat.com>
3142
3143         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3144         * gengtype.c (matching_file_name_substitute): Likewise.
3145
3146 2011-04-21  Richard Guenther  <rguenther@suse.de>
3147
3148         PR lto/48703
3149         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3150
3151 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3152
3153         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3154
3155 2011-04-21  Richard Guenther  <rguenther@suse.de>
3156
3157         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3158         file name.
3159
3160 2011-04-21  Richard Guenther  <rguenther@suse.de>
3161
3162         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3163         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3164         Use DECL_P, not SSA_VAR_P.
3165         (ptr_derefs_may_alias_p): Likewise.
3166         (ptr_deref_may_alias_ref_p_1): Likewise.
3167         (decl_refs_may_alias_p): Likewise.
3168         (refs_may_alias_p_1): Likewise.
3169         (ref_maybe_used_by_call_p_1): Likewise.
3170         (call_may_clobber_ref_p_1): Likewise.
3171         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3172         are either MEM_REF or TARGET_MEM_REF.
3173         (indirect_refs_may_alias_p): Likewise.
3174         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3175         for MEM_EXPR of indirect calls.
3176
3177 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3178
3179         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3180         (dst_file_info_struct): Remove flen field.
3181         (lookup_filename): Remove code that set flen field.
3182
3183 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3184
3185         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3186
3187 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         PR target/48708
3190         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3191         vec_extract and vec_concat for non-SSE4_1 targets.
3192
3193 2011-04-21  Richard Guenther  <rguenther@suse.de>
3194
3195         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3196         return statements.
3197
3198 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3199
3200         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3201         undefine.
3202         (FILE): Don't undefine.
3203
3204 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3205
3206         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3207         struct rtx_def *.
3208         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3209         struct rtx_def *.
3210         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3211         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3212         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3213         rtx_def *.
3214         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3215         definitions where used.
3216         * config/microblaze/microblaze.h (struct microblaze_args): Use
3217         rtx, not struct rtx_def *.
3218         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3219         rtx_def *.
3220         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3221         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3222         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3223         not struct rtx_def *.
3224         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3225         struct rtx_def *.
3226         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3227         rtx_def *.
3228         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3229
3230 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3231
3232         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3233         operand_equal_p to compare DR_BASE_ADDRESSes.
3234         (vect_check_interleaving): Likewise.
3235
3236 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3237
3238         PR target/46329
3239         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3240         for all Neon struct constants.
3241
3242 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3243
3244         * target.def (legitimate_constant_p): New hook.
3245         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3246         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3247         * doc/tm.texi: Regenerate.
3248         * hooks.h (hook_bool_mode_rtx_true): Declare.
3249         * hooks.c (hook_bool_mode_rtx_true): Define.
3250         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3251         * calls.c (precompute_register_parameters): Replace uses of
3252         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3253         (emit_library_call_value_1): Likewise.
3254         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3255         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3256         * ira-costs.c (scan_one_insn): Likewise.
3257         * recog.c (general_operand, immediate_operand): Likewise.
3258         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3259         * reload1.c (init_eliminable_invariants): Likewise.
3260
3261         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3262         mode argument.
3263         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3264         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3265         argument.
3266         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3267         * config/alpha/predicates.md (input_operand): Update call to
3268         alpha_legitimate_constant_p.
3269
3270         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3271         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3272         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3273         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3274         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3275         (arm_legitimate_constant_p): New functions.
3276         (arm_cannot_force_const_mem): Make static.
3277
3278         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3279
3280         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3281         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3282         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3283         instead of bfin_legitimate_constant_p.
3284         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3285         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3286
3287         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3288
3289         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3290
3291         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3292         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3293         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3294         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3295
3296         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3297         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3298         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3299
3300         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3301         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3302         * config/i386/i386.c (legitimate_constant_p): Rename to...
3303         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3304         argument.
3305         (ix86_cannot_force_const_mem): Update accordingly.
3306         (ix86_legitimate_address_p): Likewise.
3307         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3308         * config/i386/i386.md: Update commentary.
3309
3310         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3311         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3312         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3313         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3314
3315         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3316
3317         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3318         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3319         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3320         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3321
3322         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3323         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3324         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3325
3326         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3327         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3328         (m32r_legitimate_constant_p): New function.
3329
3330         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3331         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3332         LEGITIMATE_CONSTANT_P.
3333         (LEGITIMATE_CONSTANT_P): Delete.
3334         * config/m68k/m68k.c (m68k_expand_prologue): Call
3335         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3336         (m68k_legitimate_constant_p): New function.
3337         * config/m68k/m68k.md: Update comments.
3338
3339         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3340         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3341         (mcore_legitimate_constant_p): New function.
3342
3343         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3344         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3345         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3346         Add a mode argument.
3347         (mep_legitimate_address): Update accordingly.
3348         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3349
3350         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3351         Delete.
3352         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3353         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3354         static.  Check OP's mode for VOIDmode.
3355         (microblaze_legitimate_constant_p): New function.
3356         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3357
3358         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3359         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3360         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3361         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3362         * config/mips/predicates.md: Update comments.
3363
3364         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3365         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3366         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3367         (mmix_legitimate_constant_p): Make static, return a bool, and take
3368         a mode argument.
3369         (mmix_print_operand_address): Update accordingly.
3370
3371         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3372         Delete.
3373         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3374         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3375         static.  Add a mode argument.
3376         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3377
3378         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3379
3380         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3381         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3382         (pa_legitimate_constant_p): New function.
3383
3384         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3385
3386         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3387         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3388         (pdp11_legitimate_constant_p): New function.
3389
3390         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3391         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3392         (rs6000_legitimate_constant_p): New function.
3393
3394         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3395         (rx_legitimate_constant_p): ...this.
3396         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3397         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3398         (rx_legitimate_constant_p): ...this.
3399         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3400         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3401
3402         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3403         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3404         * config/s390/s390.c (legitimate_constant_p): Rename to...
3405         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3406         and add a mode argument.
3407         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3408
3409         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3410
3411         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3412         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3413         (sh_legitimate_constant_p): New function.
3414
3415         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3416         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3417         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3418         (legitimate_constant_p): Rename to...
3419         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3420         argument.
3421         (constant_address_p): Update accordingly.
3422
3423         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3424         argument and return a bool.
3425         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3426         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3427         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3428         (spu_rtx_costs): Update accordingly.
3429         * config/spu/predicates.md (vec_imm_operand): Likewise.
3430
3431         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3432
3433         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3434         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3435         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3436
3437         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3438         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3439         * config/vax/vax.c (legitimate_constant_p): Likewise.
3440
3441         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3442         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3443         (xtensa_legitimate_constant_p): New function.
3444
3445 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3446
3447         * target.def (cannot_force_const_mem): Add a mode argument.
3448         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3449         * doc/tm.texi: Regenerate.
3450         * hooks.h (hook_bool_mode_rtx_false): Declare.
3451         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3452         (hook_bool_mode_const_rtx_true): Likewise.
3453         (hook_bool_mode_rtx_false): New function.
3454         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3455         to be non-VOID.  Update call to cannot_force_const_mem.
3456         (find_reloads): Update accordingly.
3457         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3458         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3459         argument.
3460         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3461         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3462         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3463         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3464         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3465         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3466         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3467         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3468         (m68k_cannot_force_const_mem): ...this new function.
3469         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3470         argument.
3471         (mips_const_insns, mips_legitimize_const_move): Update calls.
3472         (mips_secondary_reload_class): Likewise.
3473         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3474         (pa_cannot_force_const_mem): ...this new function.
3475         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3476         (rs6000_cannot_force_const_mem): ...this new function.
3477         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3478         argument.
3479         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3480         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3481         to...
3482         (xtensa_cannot_force_const_mem): ...this new function.
3483
3484 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3485
3486         * config/mips/mips.c (mips16_build_function_stub): Call
3487         build_function_type_list instead of build_function_type.
3488         (mips16_build_call_stub): Likewise.
3489
3490 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3491
3492         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3493         instead of build_function_type.
3494
3495 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3496
3497         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3498         instead of build_function_type.
3499
3500 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3501
3502         PR target/48678
3503         * config/i386/i386.md (insv): Change operand 0 constraint to
3504         "register_operand".  Change operand 1 and 2 constraint to
3505         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3506         * config/i386/sse.md (sse4_1_pinsrb): Export.
3507         (sse2_pinsrw): Ditto.
3508         (sse4_1_pinsrd): Ditto.
3509         (sse4_1_pinsrq): Ditto.
3510         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3511         * config/i386/i386.c (ix86_expand_pinsr): New.
3512
3513 2011-04-20  Easwaran Raman  <eraman@google.com>
3514
3515         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3516         containing union type only with -fstrict-aliasing.
3517
3518 2011-04-20  Jim Meyering  <meyering@redhat.com>
3519
3520         Remove useless if-before-free tests.
3521         * calls.c (expand_call, save_area): Likewise.
3522         * cfgcleanup.c (try_forward_edges): Likewise.
3523         * collect2.c (collect_execute): Likewise.
3524         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3525         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3526         * coverage.c (coverage_checksum_string): Likewise.
3527         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3528         * cselib.c (cselib_init): Likewise.
3529         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3530         (df_set_clean_cfg): Likewise.
3531         * function.c (free_after_compilation): Likewise.
3532         * gcc.c (do_spec_1, main): Likewise.
3533         * gcov.c (create_file_names): Likewise.
3534         * gensupport.c (identify_predicable_attribute): Likewise.
3535         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3536         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3537         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3538         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3539         * ipa-pure-const.c (local_pure_const): Likewise.
3540         * ipa-reference.c (propagate): Likewise.
3541         * ira-costs.c (free_ira_costs): Likewise.
3542         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3543         * matrix-reorg.c (mat_free): Likewise.
3544         * prefix.c (get_key_value): Likewise.
3545         * profile.c (compute_value_histograms): Likewise.
3546         * reload1.c (free_reg_equiv): Likewise.
3547         * sched-deps.c (free_deps): Likewise.
3548         * sel-sched-ir.c (fence_clear): Likewise.
3549         * sese.c (set_rename, if_region_set_false_region): Likewise.
3550         * tree-data-ref.c (free_rdg): Likewise.
3551         * tree-eh.c (lower_try_finally): Likewise.
3552         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3553         * tree-ssa-live.c (delete_var_map): Likewise.
3554         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3555         * tree-ssa-pre.c (phi_trans_add): Likewise.
3556
3557 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3558
3559         PR tree-optimization/48611
3560         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3561         beyond ERT_MUST_NOT_THROW region.
3562
3563 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3564
3565         * config/mips/mips.opt (mfix-24k): New.
3566         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3567         * config/mips/mips.md (length): Increase by 4 for stores if
3568         fixing 24K errata.
3569         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3570         all noreorder if fixing 24K errata.
3571         * doc/invoke.texi: Document mfix-24k.
3572
3573 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3574
3575         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3576         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3577
3578 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3579
3580         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3581         (const_ok_for_op): ... to here.
3582
3583 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3584
3585         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3586         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3587
3588 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3589
3590         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3591
3592 2011-04-20  Richard Guenther  <rguenther@suse.de>
3593
3594         PR tree-optimization/47892
3595         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3596         are if-convertible.
3597
3598 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3599
3600         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3601
3602 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3603
3604         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3605
3606 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3607
3608         PR target/18145
3609
3610         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3611         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3612         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3613         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3614         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3615
3616         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3617         New prototype.
3618
3619         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3620         (avr_asm_named_section, avr_asm_output_aligned_common,
3621         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3622         New functions to update...
3623         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3624         (avr_asm_init_sections): Overwrite section callbacks for
3625         data_section, bss_section.
3626         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3627         from here to...
3628         (avr_file_end): ...here.
3629
3630 2011-04-20  Richard Guenther  <rguenther@suse.de>
3631
3632         PR middle-end/48695
3633         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3634         objects and types here.  Adjust for their offset before comparing.
3635
3636 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3637
3638         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3639         statement per copy.
3640
3641 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3642
3643         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3644         (GIMPLE_H): Include $(INTERNAL_FN_H).
3645         (OBJS-common): Add internal-fn.o.
3646         (internal-fn.o): New rule.
3647         * internal-fn.def: New file.
3648         * internal-fn.h: Likewise.
3649         * internal-fn.c: Likewise.
3650         * gimple.h: Include internal-fn.h.
3651         (GF_CALL_INTERNAL): New gf_mask.
3652         (gimple_statement_call): Put fntype into a union with a new
3653         internal_fn field.
3654         (gimple_build_call_internal): Declare.
3655         (gimple_build_call_internal_vec): Likewise.
3656         (gimple_call_same_target_p): Likewise.
3657         (gimple_call_internal_p): New function.
3658         (gimple_call_internal_fn): Likewise.
3659         (gimple_call_fntype): Return null for internal calls.
3660         (gimple_call_set_fntype): Assert that the function is not internal.
3661         (gimple_call_set_fn): Likewise.
3662         (gimple_call_set_fndecl): Likewise.
3663         (gimple_call_set_internal_fn): New function.
3664         (gimple_call_addr_fndecl): Handle null functions.
3665         (gimple_call_return_type): Likewise null types.
3666         * gimple.c (gimple_build_call_internal_1): New function.
3667         (gimple_build_call_internal): Likewise.
3668         (gimple_build_call_internal_vec): Likewise.
3669         (gimple_call_same_target_p): Likewise.
3670         (gimple_call_flags): Handle calls to internal functions.
3671         (gimple_call_fnspec): New function.
3672         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3673         (gimple_has_side_effects): Handle null functions.
3674         (gimple_rhs_has_side_effects): Likewise.
3675         (gimple_call_copy_skip_args): Handle calls to internal functions.
3676         * cfgexpand.c (expand_call_stmt): Likewise.
3677         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3678         * gimple-fold.c (gimple_fold_call): Handle null functions.
3679         (gimple_fold_stmt_to_constant_1): Don't fold
3680         calls to internal functions.
3681         * gimple-low.c (gimple_check_call_args): Handle calls to internal
3682         functions.
3683         * gimple-pretty-print.c (dump_gimple_call): Likewise.
3684         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3685         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3686         (do_warn_unused_result): Likewise.
3687         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3688         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3689         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3690         the target of a call.
3691         (initialize_hash_element): Update accordingly.
3692         (hashable_expr_equal_p): Use gimple_call_same_target_p.
3693         (iterative_hash_hashable_expr): Handle calls to internal functions.
3694         (print_expr_hash_elt): Likewise.
3695         * tree-ssa-pre.c (can_value_number_call): Likewise.
3696         (eliminate): Handle null functions.
3697         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3698         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3699         (find_func_aliases): Likewise.
3700         * value-prof.c (gimple_ic_transform): Likewise.
3701         (gimple_indirect_call_to_profile): Likewise.
3702         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3703         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3704
3705 2011-04-19  Jan Hubicka  <jh@suse.cz>
3706
3707         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3708         * ipa-inline.c (inline_small_functions): Compute summaries first,
3709         populate heap later.
3710
3711 2011-04-19  Jan Hubicka  <jh@suse.cz>
3712
3713         * cgraph.h (save_inline_function_body): Remove.
3714         * ipa-inline-transform.c: New file, broke out of...
3715         * ipa-inline.c: ... this one; Update toplevel comment.
3716         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3717         make global.
3718         (update_noncloned_frequencies): Move to ipa-inline-transform.c
3719         (cgraph_mark_inline_edge): Rename to inline_call; move to
3720         ipa-inline-transform.c.
3721         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3722         move to ipa-inline-transform.c
3723         (recursive_inlining, inline_small_functions, flatten_function,
3724         ipa_inline, inline_always_inline_functions,
3725         early_inline_small_functions): Update.
3726         (inline_transform): Move to ipa-inline-transform.c.
3727         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3728         Declare.
3729         * Makefile.in (ipa-inline-transform.o): New file.
3730         * cgraphunit.c (save_inline_function_body): Move to
3731         ipa-inline-transform.c
3732
3733 2011-04-19  DJ Delorie  <dj@redhat.com>
3734
3735         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3736         registers if we already know there aren't any.
3737         (m32c_emit_epilogue): Don't emit a barrier here.
3738         (m32c_emit_eh_epilogue): Likewise.
3739         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3740         operands at expand time.
3741         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3742         int" wchar type.
3743         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3744         duplicates.  Provide aliases instead.
3745         * config/m32c/prologue.md (eh_return): Emit a barrier here.
3746         (eh_epilogue): Add a "(return)" here as a hint to other parts of
3747         the compiler.
3748
3749 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
3750
3751         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3752         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3753         (general_or_i64_p, sparc_register_move_cost): New function.
3754
3755 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3756
3757         * doc/install.texi (Configuration, --enable-threads): Remove mach.
3758         Add lynx, mipssde.  Sort table.
3759
3760 2011-04-19  Xinliang David Li  <davidxl@google.com>
3761
3762         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3763         not negative.
3764
3765 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
3766
3767         PR target/48678
3768         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3769         is a SUBREG with non-MODE_INT mode inside of it.
3770
3771 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3772
3773         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3774         also according to actual contants.
3775         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3776         (gimple_fold_call): Use it.
3777         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3778
3779 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3780
3781         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3782         non-pointer assignments.
3783
3784 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3785
3786         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3787         account anc_offset and otr_type from the indirect edge info.
3788         * ipa-prop.c (get_ancestor_addr_info): New function.
3789         (compute_complex_ancestor_jump_func): Assignment analysis moved to
3790         get_ancestor_addr_info, call it.
3791         (ipa_note_param_call): Do not initialize information about polymorphic
3792         calls, return the indirect call graph edge.  Remove the last
3793         parameter, adjust all callers.
3794         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3795         parameters.  Initialize polymorphic information in the indirect edge.
3796
3797 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3798
3799         PR lto/48148
3800         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3801         the types if they have different enumeration identifiers.
3802
3803 2011-04-19  Jan Hubicka  <jh@suse.cz>
3804
3805         * cgraph.h (cgraph_optimize_for_size_p): Declare.
3806         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3807         * predict.c (cgraph_optimize_for_size_p): Break out from ...
3808         (optimize_function_for_size_p) ... here.
3809
3810 2011-04-19  Richard Guenther  <rguenther@suse.de>
3811
3812         PR lto/48207
3813         * tree.c (free_lang_data): Do not reset the decl-assembler-name
3814         langhook.
3815
3816 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3817
3818         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3819         if DECL_NO_INLINE_WARNING_P is set on the function.
3820
3821 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
3822
3823         PR fortran/47976
3824         * reload1.c (inc_for_reload): Return void. All callers changed.
3825         (emit_input_reload_insns): Don't try to delete previous output
3826         reloads to a register, or record spill_reg_store for autoincs.
3827
3828 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
3829
3830         * gengtype.h: Updated copyright year.
3831         (struct input_file_st): Add inpisplugin field.
3832         (type_fileloc): New function.
3833         * gengtype.c
3834         (write_typed_struct_alloc_def): Add gcc_assert.
3835         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3836         (write_typed_alloc_defns): Don't output for plugin files.
3837         (input_file_by_name): Clear inpisplugin field.
3838         (main): Set inpisplugin field for plugin files.
3839
3840 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3841
3842         * gengtype-state.c (string_eq): New.
3843         (read_state): Use string_eq instead of strcmp when creating the
3844         state_ident_tab.
3845
3846 2011-04-19  Wei Guozhi  <carrot@google.com>
3847
3848         PR target/47855
3849         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3850         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3851         linkage.
3852         * config/arm/constraints.md (Uu): New constraint.
3853         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3854
3855 2011-04-19  Tristan Gingold  <gingold@adacore.com>
3856
3857         * config.gcc (-*-*-*vms): Added.
3858         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3859         definitions moved.
3860         * config/vms/vms-ld.c: New file.
3861         * config/vms/vms-ar.c: New file.
3862         * config/vms/t-vmsnative: New file.
3863
3864 2011-04-18  Xinliang David Li  <davidxl@google.com>
3865
3866         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3867
3868 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3869
3870         PR middle-end/48661
3871         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3872         if TREE_TYPE (v) is non-NULL.
3873
3874         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3875         gimple_get_virt_mehtod_for_binfo.
3876         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3877         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3878         callers.
3879         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3880
3881 2011-04-18  Michael Matz  <matz@suse.de>
3882             Steve Ellcey  <sje@cup.hp.com>
3883
3884         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3885         use its mode as source mode if it isn't VOIDmode.
3886
3887 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
3888
3889         * doc/passes.texi: Fill crossref nodes.
3890
3891 2011-04-18  Jim Meyering  <meyering@redhat.com>
3892
3893         Fix doubled-word typos in comments and strings
3894         * config/alpha/vms-unwind.h: s/for for/for/
3895         * config/arm/unwind-arm.h: Likewise.
3896         * config/microblaze/microblaze.c: Likewise.
3897         * config/sh/constraints.md: s/in in/in/
3898         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3899
3900 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
3901
3902         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3903         (AVX_FLOAT_MODE_P): Ditto.
3904         (AVX128_VEC_FLOAT_MODE_P): Ditto.
3905         (AVX256_VEC_FLOAT_MODE_P): Ditto.
3906         (AVX_VEC_FLOAT_MODE_P): Ditto.
3907         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3908         (UNSPEC_MASKSTORE): Ditto.
3909         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3910         Merge from <sse>_movmsk<ssemodesuffix> and
3911         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
3912         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
3913         iterator.
3914         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3915         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3916         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3917
3918 2011-04-18  Jan Hubicka  <jh@suse.cz>
3919
3920         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3921
3922         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3923         (want_inline_function_called_once_p): Break out the logic from
3924         ipa_inline.
3925         (edge_badness): Ensure that profile is not misupdated.
3926         (lookup_recursive_calls): Prioritize by call frequencies.
3927         (inline_small_functions): Move program size estimates here;
3928         actually process whole queue even when unit growth has been
3929         met. (to properly compute inline_failed reasons and for the
3930         case unit size decrease.) Revisit comments on recursive inlining.
3931         (ipa_inline): Remove unit summary code; first inline hot calls
3932         of functions called once, cold calls next.
3933         (order, nnodes): Remove unused variables.
3934         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3935         (GTFILES): Remove ipa-inline.c
3936         * sel-sched.c (fill_insns): Silence uninitialized var warning.
3937
3938 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3939
3940         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3941
3942 2011-04-18  Jie Zhang  <jie@codesourcery.com>
3943             Richard Earnshaw  <rearnsha@arm.com>
3944
3945         * arm.c (neon_builtin_type_bits): Remove.
3946         (typedef enum neon_builtin_mode): New.
3947         (T_MAX): Don't define.
3948         (typedef enum neon_builtin_datum): Remove bits, codes[],
3949         num_vars and base_fcode.  Add mode, code and fcode.
3950         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3951         VAR10): Change accordingly.
3952         (neon_builtin_data[]): Change accordingly
3953         (arm_init_neon_builtins): Change accordingly.
3954         (neon_builtin_compare): Remove.
3955         (locate_neon_builtin_icode): Remove.
3956         (arm_expand_neon_builtin): Change accordingly.
3957
3958         * arm.h (enum arm_builtins): Move to ...
3959         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3960
3961         * arm.c (arm_builtin_decl): Declare.
3962         (TARGET_BUILTIN_DECL): Define.
3963         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3964         (arm_builtin_decls[]): New.
3965         (arm_init_neon_builtins): Store builtin declarations in
3966         arm_builtin_decls[].
3967         (arm_init_tls_builtins): Likewise.
3968         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
3969         (arm_builtin_decl): New.
3970
3971 2011-04-18  Richard Guenther  <rguenther@suse.de>
3972
3973         * tree.c (upper_bound_in_type): Build properly canonicalized
3974         INTEGER_CSTs.
3975         (lower_bound_in_type): Likewise.
3976
3977 2011-04-18  Richard Guenther  <rguenther@suse.de>
3978
3979         * gimple.h (gimple_call_addr_fndecl): New function.
3980         (gimple_call_fndecl): Use it.
3981         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3982         for direct calls.
3983         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3984         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3985
3986 2011-04-18  Richard Guenther  <rguenther@suse.de>
3987
3988         PR middle-end/48650
3989         * tree.c (build_string): STRING_CST is now derived from tree_typed.
3990
3991 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3992
3993         PR lto/48492
3994         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3995         DECL_IN_CONSTANT_POOL without RTL.
3996
3997 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
3998             Ira Rosen  <ira.rosen@linaro.org>
3999
4000         PR target/48252
4001         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4002         to match neon_vzip/vuzp/vtrn_internal.
4003         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4004         outputs explicitly dependent on both inputs.
4005         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4006
4007 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4008
4009         PR tree-optimization/48616
4010         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4011         whether the shift is by scalar or vector based on whether all SLP
4012         scalar stmts have the same rhs.
4013
4014 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4015
4016         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4017         memory operands.
4018
4019 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4020
4021         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4022         registers.
4023
4024 2011-04-17  Jan Hubicka  <jh@suse.cz>
4025
4026         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4027         * cgrpahunit.c (cgraph_finalize_function): Do not set
4028         finalized_by_frontend.
4029         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4030         finalized_by_frontend.
4031
4032 2011-04-17  Jan Hubicka  <jh@suse.cz>
4033
4034         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4035         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4036         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4037         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4038         method.
4039         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4040         gimple-fold.c
4041         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4042
4043 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4044
4045         PR lto/48538
4046         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4047         is non-null before accessing it.
4048         (input_cgraph): Remove trailing spaces.
4049
4050 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4051
4052         * params.def (sms-min-sc): New param flag.
4053         * modulo-sched.c (sms_schedule): Use it.
4054         * doc/invoke.texi (sms-min-sc): Document it.
4055
4056 2011-04-17  Jan Hubicka  <jh@suse.cz>
4057
4058         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4059         present, also set gimple_call_set_cannot_inline.
4060         * ipa-inline.c: Update toplevel comment.
4061         (MAX_TIME): Remove.
4062         (cgraph_clone_inlined_nodes): Fix linebreaks.
4063         (cgraph_check_inline_limits): Restructure to ...
4064         (caller_growth_limits): ... this one; be more tolerant
4065         on growth in nested inline chains; add explanatory comment;
4066         fix stack accounting thinko introduced by previous patch.
4067         (cgraph_default_inline_p): Remove.
4068         (report_inline_failed_reason): New function.
4069         (can_inline_edge_p): New function.
4070         (can_early_inline_edge_p): New function.
4071         (leaf_node_p): Move upwards in file.
4072         (want_early_inline_function_p): New function.
4073         (want_inline_small_function_p): New function.
4074         (want_inline_self_recursive_call_p): New function.
4075         (cgraph_edge_badness): Rename to ...
4076         (edge_badness) ... this one; fix linebreaks.
4077         (update_edge_key): Update call of edge_baddness; add
4078         detailed dump about queue updates.
4079         (update_caller_keys): Use can_inline_edge_p and
4080         want_inline_small_function_p.
4081         (cgraph_decide_recursive_inlining): Rename to...
4082         (recursive_inlining): Use can_inline_edge_p and
4083         want_inline_self_recursive_call_p; simplify and remove no longer
4084         valid FIXME.
4085         (cgraph_set_inline_failed): Remove.
4086         (add_new_edges_to_heap): Use can_inline_edge_p and
4087         want_inline_small_function_p.
4088         (cgraph_decide_inlining_of_small_functions): Rename to ...
4089         (inline_small_functions): ... this one; cleanup; use
4090         can/want predicates; cleanup debug ouput; work edges till fibheap
4091         is exhausted and do not stop once unit growth is reached; remove
4092         later loop processing remaining edges.
4093         (cgraph_flatten): Rename to ...
4094         (flatten_function): ... this one; use can_inline_edge_p
4095         and can_early_inline_edge_p predicates.
4096         (cgraph_decide_inlining): Rename to ...
4097         (ipa_inline): ... this one; remove unreachable nodes before
4098         inlining functions called once; simplify the pass.
4099         (cgraph_perform_always_inlining): Rename to ...
4100         (inline_always_inline_functions): ... this one; use
4101         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4102         (cgraph_decide_inlining_incrementally): Rename to ...
4103         (early_inline_small_functions): ... this one; simplify
4104         using new predicates; cleanup; make dumps prettier.
4105         (cgraph_early_inlining): Rename to ...
4106         (early_inliner): newer inline regular functions into always-inlines;
4107         fix updating of call stmt summaries.
4108         (pass_early_inline): Update for new names.
4109         (inline_transform): Fix formating.
4110         (gate_cgraph_decide_inlining): Rename to ...
4111         (pass_ipa_inline): ... this one.
4112         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4113         * ipa-inline-analysis.c (dump_inline_summary): Update.
4114         (compute_inline_parameters): Do not compute disregard_inline_limits;
4115         look for mismatching arguments.
4116         (estimate_growth): Fix handlig of non-trivial self recursion.
4117         (inline_read_summary): Do not read info->disregard_inline_limits.
4118         (inline_write_summary): Do not write info->disregard_inline_limits.
4119         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4120         and move all checks into can_inline_edge_p predicate; re-enable code
4121         comparing optimization levels.
4122         (expand_call_inline): Do not test inline_forbidden_into_p.
4123         * Makefile.in (ipa-inline.o): Update arguments.
4124
4125 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4126
4127         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4128
4129 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4130
4131         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4132
4133 2011-04-17  Michael Matz  <matz@suse.de>
4134
4135         PR tree-optimization/48622
4136         PR lto/48645
4137         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4138         in same order as they're written.
4139
4140 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4141
4142         * config/pa/predicates.md: Reorganize and simplify predicates.
4143         Eliminate duplicate code checks.
4144         (arith_operand): Rename to arith14_operand
4145         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4146         * config/pa/pa.md: Use renamed operands.
4147         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4148         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4149         arith11_operand, adddi3_operand, indexed_memory_operand,
4150         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4151         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4152         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4153         move_dest_operand, move_src_operand, prefetch_cc_operand,
4154         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4155         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4156         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4157         div_operand, int5_operand, movb_comparison_operator,
4158         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4159         arith_double_operand, ireg_operand, lhs_lshift_operand,
4160         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4161         integer_store_memory_operand): Likewise.
4162         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4163         (integer_store_memory_operand, read_only_operand,
4164         function_label_operand, borx_reg_operand,
4165         non_hard_reg_operand): Likewise.
4166         (eq_neq_comparison_operator): Delete unused operator.
4167         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4168         function_label_operand.
4169         (emit_move_sequence): Likewise.
4170
4171 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4172
4173         * config/i386/sse.md (sseunpackmode): New mode attribute.
4174         (ssepackmode): Ditto.
4175         (vec_pack_trunc_<mode>): Macroize expander from
4176         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4177         (vec_unpacks_lo_<mode>): Macroize expander from
4178         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4179         (vec_unpacks_hi_<mode>): Macroize expander from
4180         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4181         (vec_unpacku_lo_<mode>): Macroize expander from
4182         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4183         (vec_unpacku_hi_<mode>): Macroize expander from
4184         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4185         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4186         ix86_expand_sse4_unpack.
4187         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4188
4189 2011-04-16  Jan Hubicka  <jh@suse.cz>
4190
4191         * cgraphbuild.c: Include ipa-inline.h.
4192         (reset_inline_failed): Use initialize_inline_failed.
4193         * cgraph.c: Include ipa-inline.h.
4194         (cgraph_create_node_1): Do not initialize estimated_growth.
4195         (initialize_inline_failed): More to ipa-inline-analysis.c
4196         (dump_cgraph_node): Do not dump inline flags.
4197         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4198         and disregard_inline_limits flags.
4199         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4200         time, size, estimated_growth.
4201         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4202         Update.
4203         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4204         DECL_DISREGARD_INLINE_LIMITS.
4205         (cgraph_analyze_function): Do not initialize
4206         node->local.disregard_inline_limits.
4207         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4208         inlinable, versionable and disregard_inline_limits.
4209         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4210         cgraph_check_inline_limits, cgraph_default_inline_p,
4211         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4212         add_new_edges_to_heap): Update.
4213         (cgraph_decide_inlining_of_small_function): Update; set
4214         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4215         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4216         cgraph_decide_inlining_incrementally): Update.
4217         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4218         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4219         time, size and estimated_growth parameters.
4220         (estimate_edge_growth): Update.
4221         (initialize_inline_failed): Declare.
4222         * ipa-split.c: Include ipa-inline.h
4223         (execute_split_functions): Update.
4224         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4225         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4226         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4227         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4228         estimated_growth to INT_MIN.
4229         (inline_node_duplication_hook): Likewise.
4230         (dump_inline_summary): Dump new fields.
4231         (compute_inline_parameters): Update.
4232         (estimate_edge_time, estimate_time_after_inlining,
4233         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4234         inline_write_summary):
4235         (initialize_inline_failed): Move here from cgraph.c.
4236         * tree-sra.c: Include ipa-inline.h.
4237         (ipa_sra_preliminary_function_checks): Update.
4238         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4239         ipa-inline.h.
4240
4241 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4242
4243         * config/i386/sse.md (V16): New mode iterator.
4244         (VI1, VI8): Ditto.
4245         (AVXMODEQI, AVXMODEDI): Remove.
4246         (sse2, sse3): New mode attribute.
4247         (mov<mode>): Use V16 mode iterator.
4248         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4249         (push<mode>1): Use V16 mode iterator.
4250         (movmisalign<mode>): Ditto.
4251         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4252         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4253         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4254         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4255         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4256         avx_movdqu<avxmodesuffix>.
4257         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4258         *avx_movdqu<avxmodesuffix>.
4259         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4260         avx_lddqu<avxmodesuffix>.
4261         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4262         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4263         avx_movnt<AVXMODEDI:mode>.
4264         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4265         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4266
4267 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4268
4269         PR target/48629
4270         * haifa-sched.c (prune_ready_list, schedule_block): Use
4271         sched_pressure_p rather than flag_sched_pressure.
4272
4273 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4274
4275         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4276         cgraph_get_node instead of cgraph_get_create_node.
4277
4278 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4279
4280         * cfgexpand.c (expand_debug_expr): Use
4281         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4282
4283 2011-04-15  Michael Matz  <matz@suse.de>
4284
4285         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4286         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4287         * function.c (gimplify_parameters): Ditto.
4288         * gimplify.c (gimplify_vla_decl): Ditto.
4289
4290         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4291         (gimple_call_set_alloca_for_var): New inline function.
4292         (gimple_call_alloca_for_var_p): Ditto.
4293         * gimple.c (gimple_build_call_from_tree): Remember
4294         CALL_ALLOCA_FOR_VAR_P state.
4295         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4296
4297         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4298         calls if they were for VLA objects.
4299
4300 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4301
4302         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4303         of ADR_EXPRs.
4304
4305 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4306
4307         PR middle-end/48601
4308         * tree-emutls.c (lower_emutls_function_body): Call
4309         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4310         result is non-NULL.
4311
4312 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4313
4314         * c-decl.c (detect_field_duplicates): Call
4315         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4316
4317 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4318
4319         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4320         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4321         * ipa-pure-const.c (check_stmt): Call it.
4322         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4323
4324 2011-04-15  Richard Guenther  <rguenther@suse.de>
4325
4326         PR tree-optimization/48290
4327         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4328         Properly decide inhibiting propagation based on the valueized
4329         operand.  Do loop-closed SSA form preserving here ...
4330         (init_copy_prop): ... not here.
4331
4332 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4333
4334         PR target/48612
4335         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4336         (*ieee_smax<mode>3): Likewise.
4337
4338 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4339
4340         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4341         Replace match_operand with match_dup for the third operand in
4342         these expanders.
4343
4344 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4345
4346         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4347         to track processing of conditionals.  Update all callers.
4348         (try_combine, simplify_if_then_else): Update.
4349
4350 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4351
4352         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4353         -fsched-pressure.
4354
4355 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4356
4357         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4358         instead of match_operand for operand 3.
4359
4360 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4361
4362         * recog.h (insn_operand_data): Add an "allows_mem" field.
4363         * genoutput.c (output_operand_data): Initialize it.
4364         * optabs.c (maybe_legitimize_operand_same_code): New function.
4365         (maybe_legitimize_operand): Use it when matching the original
4366         op->value.
4367
4368 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4369
4370         * gimplify.c: Fix issues in comments throughout.
4371         (voidify_wrapper_expr): Fix long line.
4372         (build_stack_save_restore): Likewise.
4373         (gimplify_loop_expr): Likewise.
4374         (gimplify_compound_lval): Likewise.
4375         (gimplify_init_ctor_eval): Likewise.
4376         (gimplify_modify_expr_rhs): Likewise.
4377         (omp_notice_threadprivate_variable): Likewise.
4378
4379 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4380
4381         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4382         original one if this is not a builtin function.
4383
4384 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4385
4386         PR target/48605
4387         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4388         offset it as needed based on top 2 bits in operands[3], change
4389         MEM mode to SFmode and mask those 2 bits away from operands[3].
4390
4391 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4392
4393         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4394         change from objc_declare_protocols() to objc_declare_protocol().
4395
4396 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4397
4398         * config/i386/sse.md (sse4_1): New mode attribute.
4399         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4400         avx_blend<ssemodesuffix><avxmodesuffix> and
4401         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4402         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4403         avx_blendv<ssemodesuffix><avxmodesuffix> and
4404         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4405         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4406         avx_dp<ssemodesuffix><avxmodesuffix> and
4407         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4408         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4409         (sse4_1_packusdw): Merge with *avx_packusdw.
4410         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4411         (sse4_1_pblendw): Merge with *avx_pblendw.
4412         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4413         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4414         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4415         VF mode iterator.
4416         (sse4_1_round<ssescalarmodesuffix>): Merge with
4417         *avx_round<ssescalarmodesuffix>.
4418         (aesenc): Merge with *avx_aesenc.
4419         (aesenclast): Merge with *avx_aesenclast.
4420         (aesdec): Merge with *avx_aesdec.
4421         (aesdeclast): Merge with *avx_aesdeclast.
4422         (pclmulqdq): Merge with *pclmulqdq.
4423         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4424         New predicate.
4425         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4426
4427 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4428
4429         PR middle-end/48608
4430         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4431         (align_local_variable): This.  Update DECL_ALIGN.
4432         (add_stack_var): Updated.
4433         (expand_one_stack_var): Likewise.
4434
4435 2011-04-14  Richard Guenther  <rguenther@suse.de>
4436
4437         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4438         Remove.
4439         (dse_initialize_block_local_data, dse_leave_block,
4440         record_voperand_set, get_stmt_uid): Likewise.
4441         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4442         (dse_optimize_stmt): Remove voperand set handling code.
4443         Simplify and improve to handle any kind of killing stmt.
4444         (dse_record_phi): Remove.
4445         (dse_enter_block): Simplify.
4446         (tree_ssa_dse): Likewise.
4447         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4448
4449 2011-04-14  Jan Hubicka  <jh@suse.cz>
4450
4451         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4452         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4453         (cgraph_local_info): Remove inline_summary.
4454         * ipa-cp.c: Include ipa-inline.h.
4455         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4456         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4457         accesor.
4458         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4459         (input_overwrite_node): Do not set inline summary.
4460         (input_node): Do not stream inline summary.
4461         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4462         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4463         growth; we do not have inline parameters computed for that anyway.
4464         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4465         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4466         (inline_summary_t): New type and VECtor.
4467         (debug_inline_summary, dump_inline_summaries): Declare.
4468         (inline_summary): Use VOCtor.
4469         (estimate_edge_growth): Kill hack computing call stmt size directly.
4470         * lto-section-in.c (lto_section_name): Add inline section.
4471         * ipa-inline-analysis.c: Include lto-streamer.h
4472         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4473         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4474         (inline_summary_vec): Define.
4475         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4476         dump_inline_summaries): New functions.
4477         (estimate_function_body_sizes): Properly compute size/time of outgoing
4478         calls.
4479         (compute_inline_parameters): Alloc inline_summary; do not compute
4480         size/time of incomming calls.
4481         (estimate_edge_time): Avoid missing time summary hack.
4482         (inline_read_summary): Read inline summary info.
4483         (inline_write_summary): Write inline summary info.
4484         (inline_free_summary): Free all hooks and inline summary vector.
4485         * lto-streamer.h: Add LTO_section_inline_summary section.
4486         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4487         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4488
4489 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4490
4491         * tree-vectorizer.h (vect_strided_store_supported): Add a
4492         HOST_WIDE_INT argument.
4493         (vect_strided_load_supported): Likewise.
4494         (vect_permute_store_chain): Return void.
4495         (vect_transform_strided_load): Likewise.
4496         (vect_permute_load_chain): Delete.
4497         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4498         count argument.  Check that the count is a power of two.
4499         (vect_strided_load_supported): Likewise.
4500         (vect_permute_store_chain): Return void.  Update after above changes.
4501         Assert that the access is supported.
4502         (vect_permute_load_chain): Likewise.
4503         (vect_transform_strided_load): Return void.
4504         * tree-vect-stmts.c (vectorizable_store): Update calls after
4505         above interface changes.
4506         (vectorizable_load): Likewise.
4507         (vect_analyze_stmt): Don't check for strided powers of two here.
4508
4509 2011-04-14  Richard Guenther  <rguenther@suse.de>
4510
4511         PR tree-optimization/48590
4512         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4513         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4514         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4515         BUILT_IN_STACK_SAVE.
4516         * tree-ssa-dce.c (propagate_necessity): Handle
4517         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4518
4519 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4520
4521         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4522         objc_declare_class.
4523
4524 2011-04-14  Richard Guenther  <rguenther@suse.de>
4525
4526         * tree.h (get_object_alignment_1): Declare.
4527         * builtins.c (get_object_alignment_1): Split out worker from ...
4528         (get_object_alignment): ... here.
4529         * fold-const.c (get_pointer_modulus_and_residue): Use
4530         get_object_alignment_1.
4531
4532 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4533
4534         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4535         type parameter.
4536         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4537         parameter.  Generalise code to handle arrays as well as vectors.
4538         (vect_setup_realignment): Update accordingly.
4539         * tree-vect-stmts.c (vectorizable_store): Likewise.
4540         (vectorizable_load): Likewise.
4541
4542 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4543
4544         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4545         within the per-copy loop.
4546
4547 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4548
4549         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4550         in the dump file.
4551
4552 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4553
4554         * doc/options.texi (Negative): Explicitly mention that the
4555         Negative chain must be circular.
4556
4557 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4558
4559         * function.h (block_chainon): Declare.
4560         * function.c (block_chainon): Define.
4561
4562 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4563             Eric Weddington  <eric.weddington@atmel.com>
4564             Georg-Johann Lay  <avr@gjlay.de>
4565
4566         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4567         New Includes
4568         (avr_init_builtins, avr_expand_builtin,
4569         avr_expand_delay_cycles, avr_expand_unop_builtin,
4570         avr_expand_binop_builtin ): New functions.
4571         (avr_builtin_id): New enum
4572         (struct avr_builtin_description): New struct
4573         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4574         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4575
4576         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4577         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4578         UNSPECV_DELAY_CYCLES): new enumeration values
4579         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4580         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4581         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4582         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4583         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4584         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4585         "fmulsu"): New insns
4586
4587         * config/avr/avr-c.c: fix line endings
4588         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4589         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4590         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4591         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4592         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4593
4594         * doc/extend.texi (AVR Built-in Functions): New node
4595         (Target Builtins): Add documentation of AVR
4596         built-in functions.
4597
4598 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4599
4600         PR target/44643
4601         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4602         alone. Error if non-const data has attribute progmem.
4603
4604 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4605
4606         * tree.h (struct tree_constructor): Include tree_typed instead of
4607         tree_common.
4608         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4609         TS_TYPED instead of TS_COMMON.
4610
4611 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4612
4613         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4614         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4615         (sse2_psadbw): Merge with *avx_psadbw.
4616         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4617         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4618         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4619         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4620         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4621         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4622         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4623         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4624         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4625         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4626         (ssse3_palignrti): Merge with *avx_palignrti.
4627
4628 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4629
4630         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4631         * tree-ssanames.c (fini_ssanames): VEC_free it.
4632         (make_ssa_name_fn): Update for VECness of free_ssanames.
4633         (release_ssa_name, release_dead_ssa_names): Likewise.
4634         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4635         tree_common.
4636         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4637         TS_TYPED instead of TS_COMMON.
4638
4639 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4640
4641         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4642         statistics_counter_event.
4643         * tree-ssa-copyrename.c (stats): Define.
4644         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4645         statistics_counter_event.
4646         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4647         (bswap_stats, widen_mul_stats): Define.
4648         (insert_reciprocals): Increment rdivs_inserted.
4649         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4650         rfuncs_inserted.  Add calls to statistics_counter_event.
4651         (execute_cse_sincos_1): Increment inserted.
4652         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4653         statistics_counter_event.
4654         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4655         of bswap_stats.  Add calls to statistics_counter_event.
4656         (convert_mult_to_widen): Increment widen_mults_inserted.
4657         (convert_plusminus_to_widen): Increment maccs_inserted.
4658         (convert_mult_to_fma): Increment fmas_inserted.
4659         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4660         calls to statistics_counter_event.
4661
4662 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4663
4664         PR rtl-optimization/48455
4665         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4666         `temp_costs->mem_cost'.
4667
4668 2011-04-13  Jan Hubicka  <jh@suse.cz>
4669
4670         * ipa-inline.h: New file.
4671         * ipa-inline-analysis.c: New file. Broken out of ...
4672         * ipa-inline.c: ... this file; update toplevel comment;
4673         include ipa-inline.h
4674         (inline_summary): Move to ipa-inline.h
4675         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4676         ipa-inline-analysis.c.
4677         (cgraph_estimate_time_after_inlining): Rename to
4678         estiamte_time_after_inlining; move to ipa-inline-analysis.c
4679         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4680         to estimate_edge_growth.
4681         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4682         rename to estimate_size_after_inlining.
4683         (cgraph_mark_inline_edge): Update for new naming convention.
4684         (cgraph_check_inline_limits): Likewise.
4685         (cgraph_edge_badness): Likewise.
4686         (cgraph_decide_recursive_inlining): Likewise.
4687         (cgraph_decide_inlining_of_small_functions): Likewise.
4688         (cgraph_decide_inlining_incrementally): Likewise.
4689         (cgraph_estimate_growth): Rename to estimate_growth; move to
4690         ipa-inline-analysis.c.
4691         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4692         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4693         (compute_inline_parameters): Likewise.
4694         (compute_inline_parameters_for_current): Likewise.
4695         (pass_inline_parameters): Likewise.
4696         (inline_indirect_intraprocedural_analysis): Likewise.
4697         (analyze_function): Rename to inline_analyze_function; likewise.
4698         (add_new_function): Move to ipa-inline-analysis.c.
4699         (inline_generate_summary): Likewise.
4700         (inline_read_summary): Likewise.
4701         (inline_write_summary): Likewise.
4702         * Makefile.in (ipa-inline-analysis.c): New file.
4703
4704 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4705
4706         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4707         * configure: Regenerate.
4708
4709 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4710
4711         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4712         instead of tree_common.
4713         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4714         Likewise.
4715         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4716         TS_TYPED rather than TS_COMMON.
4717         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4718
4719 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
4720
4721         PR target/45263
4722         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4723         r20 around calls of __tablejump_elpm__
4724
4725 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
4726
4727         PR middle-end/48591
4728         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4729         NULL.
4730         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4731
4732 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
4733
4734         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4735         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4736         (cfi_vec): New typedef.
4737         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4738         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4739         (cie_cfi_vec): New static variable.
4740         (cie_cfi_head): Delete.
4741         (add_cfi): Accept a cfi_vec * as first argument. All callers and
4742         declaration changed. Use vector rather than list operations.
4743         (new_cfi): Don't initialize the dw_cfi_next field.
4744         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4745         rather than list operations.
4746         (lookup_cfa): Use vector rather than list operations.
4747         (output_cfis): New argument upto. Accept a cfi_vec rather than
4748         a dw_cfi_ref list head as argument. All callers changed.
4749         Iterate over the vector using upto as a maximum index.
4750         (output_all_cfis): New static function.
4751         (output_fde): Use vector rather than list operations. Use the
4752         new upto argument for output_cfis rather than manipulating a
4753         list.
4754         (dwarf2out_begin_prologue): Change initializations to match
4755         new struct members.
4756         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4757         from the vector length rather than searching for the end of a list.
4758         Use output_all_cfis.
4759         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4760
4761 2011-04-13  Nick Clifton  <nickc@redhat.com>
4762
4763         * config/rx/rx.md (movmemsi): Do not use this pattern when
4764         volatile pointers are involved.
4765
4766 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4767
4768         * config/i386/sse.md (pinsrbits): Remove.
4769         (sse2_packsswb): Merge with *avx_packsswb.
4770         (sse2_packssdw): Merge with *avx_packssdw.
4771         (sse2_packuswb): Merge with *avx_packuswb.
4772         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4773         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4774         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4775         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4776         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4777         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4778         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4779         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4780         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4781         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4782         (sse2_loadld): Merge with *avx_loadld.
4783         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4784         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4785         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4786         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4787         (vec_concatv2di): Merge with *vec_concatv2di_avx.
4788
4789 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
4790
4791         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4792         calling TREE_CHAIN.
4793         * print-tree.c (print_node): Likewise.
4794         * tree-inline.c (copy_tree_r): Likewise.
4795         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4796         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4797         instead of TS_COMMON.
4798         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4799         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4800         (copy_node_stat): Zero TREE_CHAIN only if necessary.
4801         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4802         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4803         ...and these...
4804         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4805         * tree.h: ...here.
4806         (TREE_CHAIN): Check for a TS_COMMON structure.
4807         (TREE_TYPE): Check for a TS_TYPED structure.
4808
4809 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
4810
4811         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4812         cgraph_get_create_node instead of cgraph_node.
4813
4814 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4815
4816         * c-parser.c (c_parser_initelt): Updated call to
4817         objc_build_message_expr.
4818         (c_parser_postfix_expression): Likewise.
4819
4820 2011-04-12  Kai Tietz  <ktietz@redhat.com>
4821
4822         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4823         MASK_MS_BITFIELD_LAYOUT bit.
4824
4825 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4826
4827         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4828         assert it is always true.
4829         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4830         moves.
4831
4832 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4833
4834         * c-parser.c (c_lex_one_token): Rewritten conditional used when
4835         compiling Objective-C to be more efficient.
4836
4837 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
4838
4839         * opts-common.c (decode_cmdline_options_to_array): Remove variable
4840         argv_copied.
4841
4842 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4843
4844         * recog.h, genoutput.c, optabs.c: Revert last patch.
4845
4846 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4847
4848         PR target/48090
4849         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
4850
4851 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4852
4853         * recog.h (insn_operand_data): Add an "allows_mem" field.
4854         * genoutput.c (output_operand_data): Initialize it.
4855         * optabs.c (maybe_legitimize_operand_same_code): New function.
4856         (maybe_legitimize_operand): Use it when matching the original
4857         op->value.
4858
4859 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4860
4861         * genpreds.c (process_define_predicate): Move most processing
4862         to gensupport.c.  Continue to validate the expression.
4863         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4864         (process_define_predicate): Move processing to gensupport.c.
4865         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4866         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4867         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
4868         argument.
4869         (valid_predicate_name_p): New function, split out from old
4870         genpreds.c:process_define_predicate.
4871         (process_define_predicate): New function, combining code from
4872         old genpreds.c and genrecog.c functions.
4873         (process_rtx): Call it for DEFINE_PREDICATE and
4874         DEFINE_SPECIAL_PREDICATE.
4875
4876 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4877
4878         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4879         size of a '%A' memory reference.
4880         (T_DREG, T_QREG): New neon_builtin_type_bits.
4881         (arm_init_neon_builtins): Assert that the load and store operands
4882         are neon_struct_operands.
4883         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4884         (NEON_ARG_MEMORY): New builtin_arg.
4885         (neon_dereference_pointer): New function.
4886         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4887         Handle NEON_ARG_MEMORY.
4888         (arm_expand_neon_builtin): Update after above interface changes.
4889         Use NEON_ARG_MEMORY for loads and stores.
4890         * config/arm/predicates.md (neon_struct_operand): New predicate.
4891         * config/arm/iterators.md (V_two_elem): Tweak formatting.
4892         (V_three_elem): Use BLKmode for accesses that have no associated mode.
4893         (V_four_elem): Tweak formatting.
4894         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4895         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4896         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4897         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4898         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4899         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4900         (neon_vst4<mode>): Replace pointer operand with a memory operand.
4901         Use %A in the output template.
4902         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4903         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4904         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4905         the width of the memory access.  Remove post-increment.
4906         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4907
4908 2011-04-12  Nick Clifton  <nickc@redhat.com>
4909
4910         * config/v850/v850.c (expand_prologue): Do not use the CALLT
4911         instruction for interrupt handlers if the target is the basic V850
4912         architecture.
4913         (expand_epilogue): Likewise.
4914
4915 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4916
4917         PR rtl-optimization/48549
4918         * combine.c (propagate_for_debug): Also stop after BB_END of
4919         this_basic_block.  Process LAST and just stop processing after it.
4920         (combine_instructions): If last_combined_insn has been deleted,
4921         set last_combined_insn to its PREV_INSN.
4922
4923 2011-04-12  Richard Guenther  <rguenther@suse.de>
4924
4925         PR tree-optimization/46076
4926         * gimple.h (struct gimple_statement_call): Add fntype field.
4927         (gimple_call_fntype): Adjust.
4928         (gimple_call_set_fntype): New function.
4929         * gimple.c (gimple_build_call_1): Set the call function type.
4930         * gimplify.c (gimplify_call_expr): Preserve the function
4931         type the frontend used for the call.
4932         (gimplify_modify_expr): Likewise.
4933         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4934         function type.
4935         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4936         function type.
4937         * tree-ssa.c (useless_type_conversion_p): Function pointer
4938         conversions are useless.
4939
4940 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4941
4942         * cgraph.h (cgraph_node): Remove function declaration.
4943         (cgraph_create_node): Declare.
4944         (cgraph_get_create_node): Likewise.
4945         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4946         Updated all callers.
4947         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4948         the decl does not already exist.  Call cgraph_get_create_node instead
4949         of cgraph_node.
4950         (cgraph_get_create_node): New function.
4951         (cgraph_same_body_alias): Update comment.
4952         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4953         assert it does not return NULL.
4954         (cgraph_update_edges_for_call_stmt): Likewise.
4955         (cgraph_clone_edge): Likewise.
4956         (cgraph_create_virtual_clone): Likewise.
4957         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4958         instead of cgraph_node.
4959         (cgraph_add_new_function): Call cgraph_create_node or
4960         cgraph_get_create_node instead of cgraph_node.
4961         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4962         instead of cgraph_node.
4963         (record_eh_tables): Likewise.
4964         (mark_address): Likewise.
4965         (mark_load): Likewise.
4966         (build_cgraph_edges): Call cgraph_get_create_node instead
4967         of cgraph_node.
4968         (rebuild_cgraph_edges): Likewise.
4969         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4970         instead of cgraph_node.
4971         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4972         cgraph_node.
4973         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4974         cgraph_create_node instead of cgraph_node.
4975         * c-decl.c (finish_function): Call cgraph_get_create_node instead
4976         of cgraph_node.
4977         * lto-cgraph.c (input_node): Likewise.
4978         * lto-streamer-in.c (input_function): Likewise.
4979         * varasm.c (mark_decl_referenced): Likewise.
4980         (assemble_alias): Likewise.
4981
4982 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4983
4984         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4985         instead of cgraph_node and assert it does not return NULL.
4986         * lto-streamer-in.c (lto_read_body): Likewise.
4987         * omp-low.c (new_omp_context): Likewise.
4988         (create_task_copyfn): Likewise.
4989         * tree-emutls.c (lower_emutls_function_body): Likewise.
4990         * matrix-reorg.c (transform_allocation_sites): Likewise.
4991
4992 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4993
4994         PR c/48552
4995         * c-typeck.c (build_asm_expr): Error out on attempts to use
4996         void type outputs or inputs for constraints that allow reg or
4997         don't allow memory.
4998
4999 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5000             Richard Earnshaw  <rearnsha@arm.com>
5001
5002         PR target/48250
5003         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5004         to use sign-magnitude offsets. Reject unsupported unaligned
5005         cases. Add detailed description in comments.
5006         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5007         condition from TARGET_32BIT to TARGET_ARM.
5008
5009 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5010
5011         * tree.h (struct typed_tree): New.
5012         (struct tree_common): Include it instead of tree_base.
5013         (TREE_TYPE): Update for new location of type field.
5014         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5015         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5016         (union tree_node): Add typed field.
5017         * treestruct.def (TS_TYPED): New.
5018         * lto-streamer.c (check_handled_ts_structures): Handle it.
5019         * tree.c (MARK_TS_TYPED): New macro.
5020         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5021
5022 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5023
5024         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5025         (force_nonfallthru): Do not alter the loop nest if no basic block
5026         was created.
5027
5028 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5029
5030         * config/i386/sse.md (VI): New mode iterator.
5031         (SSEMODEI): Remove.
5032         (AVX256MODEI): Ditto.
5033         (AVXMODEF4P): Ditto.
5034         (avxvecpsmode): Ditto.
5035         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5036         (sse2_andnot<mode>3): New expander.
5037         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5038         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5039         (<any_logic:code><mode>3): Use VI mode iterator.
5040         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5041         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5042         (*andnottf3): Handle AVX three-operand constraints.
5043         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5044
5045 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5046             Robert Millan  <rmh@gnu.org>
5047
5048         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5049         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5050         GNU_USER_DYNAMIC_LINKER64): Define.
5051         (REG_NAME): Don't undefine.
5052         (MD_UNWIND_SUPPORT): Undefine.
5053         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5054         (REG_NAME): Don't undefine.
5055         (MD_UNWIND_SUPPORT): Undefine.
5056         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5057
5058 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5059
5060         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5061         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5062
5063 2011-04-11  Xinliang David Li  <davidxl@google.com>
5064
5065         * value-profile.c (check_ic_target): New function.
5066         (gimple_ic_transform): Sanity check indirect call target.
5067         * gimple-low.c (gimple_check_call_args): Interface change.
5068         (gimple_check_call_matching_types): New function.
5069         * tree-inline.c (tree_can_inline_p): Call new function.
5070
5071 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5072
5073         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5074         tree-pretty-print.h & realmpfr.h.
5075
5076 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5077
5078         PR middle-end/48464
5079         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5080         (setup_allocno_and_important_classes): Ditto.
5081
5082 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5083
5084         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5085         GNU_USER_DYNAMIC_LINKER.
5086         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5087         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5088         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5089         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5090         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5091         GNU_USER_TARGET_OS_CPP_BUILTINS.
5092         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5093         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5094         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5095         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5096         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5097         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5098         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5099         GNU_USER_TARGET_OS_CPP_BUILTINS.
5100         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5101         GNU_USER_DYNAMIC_LINKER.
5102         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5103         GNU_USER_TARGET_OS_CPP_BUILTINS.
5104         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5105         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5106         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5107         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5108         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5109         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5110         GNU_USER_DYNAMIC_LINKER64): Remove.
5111         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5112         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5113         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5114         GNU_USER_DYNAMIC_LINKER.
5115         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5116         GNU_USER_TARGET_OS_CPP_BUILTINS.
5117         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5118         GNU_USER_TARGET_OS_CPP_BUILTINS.
5119         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5120         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5121         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5122         GNU_USER_TARGET_OS_CPP_BUILTINS.
5123         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5124         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5125         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5126         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5127         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5128         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5129         GNU_USER_DYNAMIC_LINKER.
5130         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5131         GNU_USER_TARGET_OS_CPP_BUILTINS.
5132         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5133         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5134         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5135         GNU_USER_DYNAMIC_LINKER.
5136         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5137         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5138         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5139         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5140         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5141         GNU_USER_DYNAMIC_LINKER.
5142         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5143         GNU_USER_DYNAMIC_LINKERN32.
5144         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5145         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5146         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5147         GNU_USER_DYNAMIC_LINKER32.
5148         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5149         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5150         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5151         GNU_USER_DYNAMIC_LINKER.
5152         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5153         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5154         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5155         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5156         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5157         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5158         GNU_USER_DYNAMIC_LINKER32.
5159         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5160         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5161         GNU_USER_DYNAMIC_LINKER.
5162         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5163         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5164         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5165         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5166         GNU_USER_DYNAMIC_LINKER64.
5167         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5168         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5169         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5170         GNU_USER_DYNAMIC_LINKER.
5171         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5172         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5173         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5174         GNU_USER_DYNAMIC_LINKER.
5175         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5176         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5177         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5178         GNU_USER_DYNAMIC_LINKER32.
5179         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5180         GNU_USER_DYNAMIC_LINKER64.
5181         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5182         GNU_USER_DYNAMIC_LINKER64.
5183         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5184         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5185         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5186         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5187         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5188
5189 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5190
5191         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5192         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5193         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5194         GNU_USER_DYNAMIC_LINKER.
5195         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5196         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5197         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5198         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5199         GNU_USER_DYNAMIC_LINKER64.
5200         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5201         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5202         GNU_USER_LINK_EMULATION.
5203         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5204         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5205         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5206         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5207         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5208         CPP_SPEC, CC1_SPEC): Remove.
5209         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5210         (GNU_USER_DYNAMIC_LINKER): Define.
5211         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5212         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5213         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5214         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5215         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5216         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5217         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5218         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5219         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5220         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5221         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5222         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5223         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5224         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5225         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5226         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5227         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5228         GNU_USER_DYNAMIC_LINKER.
5229         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5230         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5231         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5232         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5233         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5234         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5235         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5236         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5237         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5238         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5239
5240 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5241
5242         PR target/9601
5243         PR target/11772
5244         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5245         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5246         comment.
5247         (ix86_is_msabi_thiscall): Removed.
5248         (ix86_is_type_thiscall): Likewise.
5249         (ix86_get_callcvt): New function.
5250         (ix86_comp_type_attributes): Simplify check.
5251         (ix86_function_regparm): Use ix86_get_callcvt for calling
5252         convention attribute checks.
5253         (ix86_return_pops_args): Likewise.
5254         (ix86_static_chain): Likewise.
5255         (x86_this_parameter): Likewise.
5256         (x86_output_mi_thunk): Likewise.
5257         (ix86_function_type_abi): Optimize check for types without attributes.
5258         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5259         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5260         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5261         by flag-values.
5262         (IX86_BASE_CALLCVT): Helper macro.
5263         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5264         Use ix86_get_callcvt for calling convention attribute checks and avoid
5265         symbol-decoration for stdcall in TARGET_RTD case.
5266         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5267         Likewise.
5268         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5269         for declaration.
5270
5271 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5272
5273         * config/i386/sse.md (VI_128): New mode iterator.
5274         (VI12_128): Rename from SSEMODE12.
5275         (VI14_128): Rename from SSEMODE14.
5276         (VI124_128): New mode iterator.
5277         (VI24_128): Rename from SSEMODE248.
5278         (VI248_128): Rename from SSEMODE248.
5279         (SSEMODE124C8): Remove.
5280         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5281         (*sse2_<plusminus_insn><mode>3): Merge with
5282         *avx_<plusminus_insn><mode>3.
5283         (*mulv8hi3): Merge with *avx_mulv8hi3.
5284         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5285         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5286         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5287         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5288         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5289         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5290         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5291         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5292         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5293         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5294         (*<smaxmin:code>v8hi3): Ditto.
5295         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5296         (*<smaxmin:code>v16qi3): Ditto.
5297         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5298         (*sse2_eq<mode>3): Ditto.
5299         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5300         (*sse2_gt<mode>3): Ditto.
5301         (vcondv2di): Split out of vcond<mode>.
5302         (vconduv2di): Split out of vcondu<mode>.
5303
5304 2011-04-11  Richard Guenther  <rguenther@suse.de>
5305
5306         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5307         before calling tree_low_cst.
5308
5309 2011-04-11  Richard Guenther  <rguenther@suse.de>
5310
5311         * stor-layout.c (layout_type): Compute all array index size operations
5312         in the original type.
5313         (initialize_sizetypes): Add comment.
5314         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5315
5316 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5317
5318         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5319
5320 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5321
5322         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5323         of cgraph_node, handle NULL return value.
5324         (cgraph_global_info): Likewise.
5325         (cgraph_rtl_info): Likewise.
5326         * tree-inline.c (estimate_num_insns): Likewise.
5327         * gimplify.c (unshare_body): Likewise.
5328         (unvisit_body): Likewise.
5329         (gimplify_body): Likewise.
5330         * predict.c (optimize_function_for_size_p): Likewise.
5331         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5332         (call_may_clobber_ref_p_1): Likewise.
5333         * varasm.c (function_section_1): Likewise.
5334         (assemble_start_function): Likewise.
5335
5336 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5337
5338         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5339         of cgraph_node.
5340         * final.c (rest_of_clean_state): Likewise.
5341         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5342         * passes.c (pass_init_dump_file): Likewise.
5343         (execute_all_ipa_transforms): Likewise.
5344         (function_called_by_processed_nodes_p): Likewise.
5345         * predict.c (maybe_hot_frequency_p): Likewise.
5346         (probably_never_executed_bb_p): Likewise.
5347         (compute_function_frequency): Likewise.
5348         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5349         (unnest_nesting_tree_1): Likewise.
5350         (lower_nested_functions): Likewise.
5351         * tree-optimize.c (execute_fixup_cfg): Likewise.
5352         (tree_rest_of_compilation): Likewise.
5353         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5354         * tree-sra.c (ipa_early_sra): Likewise.
5355         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5356         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5357         * ipa.c (record_cdtor_fn): Likewise.
5358         * ipa-inline.c (cgraph_early_inlining): Likewise.
5359         (compute_inline_parameters_for_current): Likewise.
5360         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5361         * ipa-pure-const.c (local_pure_const): Likewise.
5362         * ipa-split.c (split_function): Likewise.
5363         (execute_split_functions): Likewise.
5364         * cgraphbuild.c (build_cgraph_edges): Likewise.
5365         (rebuild_cgraph_edges): Likewise.
5366         (cgraph_rebuild_references): Likewise.
5367         (remove_cgraph_callee_edges): Likewise.
5368         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5369         (verify_cgraph_node): Likewise.
5370         (cgraph_analyze_functions): Likewise.
5371         (cgraph_preserve_function_body_p): Likewise.
5372         (save_inline_function_body): Likewise.
5373         (save_inline_function_body): Likewise.
5374         * tree-inline.c (copy_bb): Likewise.
5375         (optimize_inline_calls): Likewise.
5376
5377 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5378
5379         PR tree-optimization/48195
5380         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5381         ipa_check_create_edge_args.
5382         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5383         ipa_check_create_edge_args.
5384         * ipa-inline.c (inline_generate_summary): Do not call
5385         ipa_check_create_node_params and ipa_check_create_edge_args.
5386         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5387         ipa_check_create_edge_args.
5388
5389 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5390
5391         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5392         instead of loop.
5393         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5394         * function.c (record_hard_reg_sets): Likewise.
5395         * ira.c (compute_regs_asm_clobbered): Likewise.
5396         * sched-deps.c (sched_analyze_1): Likewise.
5397         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5398
5399 2011-04-09  Xinliang David Li  <davidxl@google.com>
5400
5401         PR tree-optimization/PR48484
5402         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5403         has_valid_pred lazily
5404
5405 2011-04-09  Duncan Sands  <baldrick@free.fr>
5406
5407         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5408
5409 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5410
5411         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5412         cost of I0 to zero at the end, if any.
5413
5414 2011-04-08  Xinliang David Li  <davidxl@google.com>
5415
5416         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5417         to insane profile data.
5418
5419 2011-04-08  Xinliang David Li  <davidxl@google.com>
5420
5421         * ipa-cp.c (ipcp_update_profiling): Correct
5422          negative scale factor due to insane profile data.
5423
5424 2011-04-08  Xinliang David Li  <davidxl@google.com>
5425
5426         * final.c (dump_basic_block_info): New function.
5427         (final): Dump basic block.
5428         (final_scan_insn): Remove old dump.
5429
5430 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5431
5432         PR target/47829
5433         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5434         crtbegin/crtend.
5435
5436 2011-04-08  Michael Matz  <matz@suse.de>
5437
5438         PR middle-end/48389
5439         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5440         functions.
5441         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5442         * rtl.h (rebuild_jump_labels_chain): Declare.
5443         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5444         insns inserted on edges.
5445
5446 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5447
5448         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5449         * config/arm/arm-arches.def: New.
5450         * config/arm/arm-opts.h: New.
5451         * config/arm/genopt.sh: New.
5452         * config/arm/arm-tables.opt: New (generated).
5453         * config/arm/arm.c (arm_handle_option, arm_target_help,
5454         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5455         (all_architectures): Get most table contents from arm-arches.def.
5456         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5457         arm_selected_tune here.
5458         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5459         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5460         (march=, mcpu=, mtune=): Use Enum and Var.
5461         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5462         (arm.o): Update dependencies.
5463
5464 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5465
5466         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5467         of header_file.
5468         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5469         (write_typed_alloc_defns): Likewise.
5470         (main): Calls write_typed_alloc_defns with output_header.
5471
5472 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5473
5474         PR inline-asm/48435
5475         * ira-color.c (setup_profitable_hard_regs): Add comments.
5476         Don't take prohibited hard regs into account.
5477         (setup_conflict_profitable_regs): Rename to
5478         get_conflict_profitable_regs.
5479         (check_hard_reg_p): Check prohibited hard regs.
5480
5481 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5482
5483         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5484         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5485         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5486
5487 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5488
5489         PR target/48366
5490         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5491         move from floating point to shift amount register.
5492         (emit_move_sequence): Remove secondary reload support for floating
5493         point to shift amount amount register copies.
5494         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5495         amount register copies.
5496         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5497         register, return false if mode isn't a scalar integer mode.
5498         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5499
5500 2011-04-08  Richard Guenther  <rguenther@suse.de>
5501
5502         * gimple.c (gimple_call_flags): Remove kludge.
5503
5504 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5505
5506         * sel-sched.c (sel_region_init): Move call to
5507         sel_setup_region_sched_flags after setup_current_loop_nest.
5508
5509 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5510
5511         PR rtl-optimization/48272
5512         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5513         init_insn_reg_pressure_info.  Adjust a caller.
5514         * sched-int.h (init_insn_reg_pressure_info): Declare.
5515         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5516         when sched-pressure is enabled.
5517
5518 2011-04-08  Richard Guenther  <rguenther@suse.de>
5519
5520         * gimple.c (gimple_set_modified): Do not queue calls to
5521         MODIFIED_NORETURN_CALLS here ...
5522         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5523
5524 2011-04-08  Richard Guenther  <rguenther@suse.de>
5525
5526         PR lto/48467
5527         * toplev.c (lang_dependent_init): Do not open asm_out_file
5528         in WPA mode, nor perform debug machinery initialization.
5529         (finalize): Do not unlink asm_out_file in WPA mode.
5530
5531 2011-04-08  Richard Guenther  <rguenther@suse.de>
5532
5533         * gimple.h (gimple_call_fntype): New function.
5534         (gimple_call_return_type): Use it.
5535         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5536         * gimple-low.c (gimple_check_call_args): Likewise.
5537         * gimple.c (gimple_call_flags): Likewise.
5538         (gimple_call_arg_flags): Likewise.
5539         (gimple_call_return_flags): Likewise.
5540         * tree-cfg.c (verify_gimple_call): Likewise.
5541         (do_warn_unused_result): Likewise.
5542         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5543         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5544
5545 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5546
5547         PR rtl-optimization/48235
5548         * sel-sched.c (code_motion_process_successors): Recompute the last
5549         insn in basic block if control flow changed.
5550         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5551         Update condition for ilist_remove.
5552
5553 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5554
5555         PR rtl-optimization/48302
5556         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5557         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5558         it to record added preheader blocks.
5559         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5560         on to sel_add_loop_preheaders.
5561         (sel_region_init): Move call to setup_current_loop_nest after
5562         sel_init_bbs.
5563
5564 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5565
5566         PR target/48273
5567         * cfgloop.h (loop_has_exit_edges): New helper.
5568         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5569         non-clonable.
5570         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5571         that have no exit edges.
5572
5573 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5574
5575         PR rtl-optimization/48442
5576         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5577         all callers.  Adjust assert.
5578
5579 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5580
5581         PR tree-optimization/48377
5582         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5583         is_packed to true even for types with smaller TYPE_ALIGN than
5584         TYPE_SIZE.
5585
5586 2011-04-08  Richard Guenther  <rguenther@suse.de>
5587
5588         PR bootstrap/48513
5589         * doc/tm.texi: Re-generate.
5590
5591 2011-04-08  Wei Guozhi  <carrot@google.com>
5592
5593         PR target/47855
5594         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5595         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5596         * config/arm/arm.md (*push_multi): Change the length computation to
5597         call a C function.
5598
5599 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5600
5601         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5602         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5603         * doc/tm.texi: Regenerate.
5604         * system.h (ASM_OUTPUT_BSS): Poison.
5605         * varasm.c (asm_output_bss): Remove function.
5606         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5607
5608         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5609         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5610         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5611         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5612         Likewise.
5613         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5614         Likewise.
5615         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5616         Likewise.
5617         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5618
5619 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5620
5621         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5622         EnumValue lines.
5623
5624 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5625
5626         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5627         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5628         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5629         OPT_mcpu32.
5630         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5631         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5632         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5633         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5634         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5635         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5636         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5637         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5638         options.  Don't map other m68k options manually.  Don't handle
5639         old-style options as canonical.
5640         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5641         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5642
5643 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5644
5645         * basic-block.h (force_nonfallthru): Move to...
5646         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5647         (force_nonfallthru): ...here.
5648         * cfghooks.c (force_nonfallthru): New function.
5649         * cfgrtl.c (force_nonfallthru): Rename into...
5650         (rtl_force_nonfallthru): ...this.
5651         (commit_one_edge_insertion): Do not set AUX field.
5652         (commit_edge_insertions): Do not discover new basic blocks.
5653         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5654         (cfg_layout_rtl_cfg_hooks): Likewise.
5655         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5656         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5657         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5658
5659 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5660
5661         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5662         Remove macros.
5663
5664 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5665
5666         * config/i386/sse.md: Update copyright year.
5667         (avxcvtvecmode): Remove.
5668         (sse_movhlps): Merge with *avx_movhlps.
5669         (sse_movlhps): Merge with *avx_movlhps.
5670         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5671         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5672         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5673         (sse_loadhps): Merge with *avx_loadhps.
5674         (sse_storelps): Merge with *avx_storelps.
5675         (sse_loadlps): Merge with *avx_loadlps.
5676         (sse_movss): Merge with *avx_movss.
5677         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5678         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5679         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5680         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5681         (vec_set<mode>_0): Ditto.
5682         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5683         (sse4_1_insertps): Merge with *avx_insertps.
5684         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5685         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5686         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5687         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5688         (sse2_storehpd): Merge with *avx_storehpd.
5689         (sse2_loadhpd): Merge with *avx_loadhpd.
5690         (sse2_loadlpd): Merge with *avx_loadlpd.
5691         (sse2_movsd): Merge with *avx_movsd.
5692         (*vec_concatv2df): Merge with *vec_concatv2df.
5693
5694 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
5695
5696         PR debug/48343
5697         * combine.c (combine_instructions): Add last_combined_insn,
5698         update it if insn is after it, pass it to all try_combine calls.
5699         (try_combine): Add last_combined_insn parameter, pass it instead of
5700         i3 to propagate_for_debug.
5701
5702 2011-04-07  Nick Clifton  <nickc@redhat.com>
5703
5704         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5705         to handle MDR <-> data register transfers.
5706         (movhi_internal): Likewise.
5707
5708 2011-04-07  Alan Modra  <amodra@gmail.com>
5709
5710         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5711         previous stack info.
5712
5713 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5714
5715         PR target/43920
5716         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5717         flow_find_cross_jump.  Swap variables to implement backward replacement.
5718         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5719
5720 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5721
5722         PR target/43920
5723         * cfgcleanup.c (walk_to_nondebug_insn): New function.
5724         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
5725         and bb2.
5726         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5727         src1 or src2.  Redirect edges to the last basic block.  Update
5728         frequency and count on multiple basic blocks in case of fallthru.
5729
5730 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5731
5732         PR target/43920
5733         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5734         function.
5735         (old_insns_match_p): Change return type.  Replace return false/true
5736         with return dir_none/dir_both.  Use can_replace_by.
5737         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
5738         direction from dir_p.  Register replacement direction in dir, last_dir
5739         and afterlast_dir.  Handle new return type of old_insns_match_p using
5740         merge_dir.  Return replacement direction in dir_p.
5741         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5742         return type of old_insns_match_p.
5743         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5744         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5745         flow_find_cross_jump.
5746         * basic-block.h (enum replace_direction): New type.
5747         (flow_find_cross_jump): Add parameter to declaration.
5748
5749 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5750
5751         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5752         (AVXMODEDCVTPS2DQ): Ditto.
5753         (VEC_FLOAT_MODE): Ditto.
5754         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
5755         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5756         (<any_logic:code><mode>3): Use VF mode iterator.
5757         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5758         Use VF mode iterator.
5759         (copysign<mode>3): Use VF mode iterator.
5760         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
5761         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5762         (*<any_logic:code><MODEF:mode>3): Merge with
5763         *avx_<any_logic:code><MODEF:mode>3.
5764         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5765         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5766         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5767         (avx_cvtdq2ps<avxmodesuffix>): Remove.
5768         (sse2_cvtdq2ps): Use %v modifier.
5769         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5770         (avx_cvtps2dq<avxmodesuffix>): Remove.
5771         (sse2_cvtps2dq): Use %v modifier.
5772         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5773         (avx_cvttps2dq<avxmodesuffix>): Remove.
5774         (sse2_cvttps2dq): Use %v modifier.
5775         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5776         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5777         (sse2_cvtsd2siq): Fix insn template.
5778         (sse2_cvtsd2siq_2): Ditto.
5779         (sse2_cvttsd2siq): Ditto.
5780         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5781         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5782
5783 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5784
5785         * gcov-io.c: Use GCC Runtime Library Exception.
5786
5787 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
5788
5789         PR debug/48466
5790         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5791         as base_reg whatever register reg has been eliminated to, instead
5792         of hardcoding STACK_POINTER_REGNUM.
5793
5794 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5795
5796         * doc/tm.texi.in: Document C target hooks as separate from general
5797         target hooks.
5798         * doc/tm.texi: Regenerate.
5799         * genhooks.c (struct hook_desc): Add docname field.
5800         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
5801         docname field.
5802         (hook_array): Include c-target.def.
5803         (emit_documentation): Use docname field in output.
5804         (emit_init_macros): Take docname argument.  Only emit definitions
5805         for hooks matching docname.
5806         (main): Expect additional arguments in all cases.  Pass argument
5807         to emit_init_macros.
5808         * target.def: Move initial macro definitions and comments to
5809         target-hooks-macros.h.
5810         (gcc_targetcm): Move to c-family/c-target.def.
5811         * target.h (targetcm): Move declaration to c-family/c-target.h.
5812         * targhooks.c (default_handle_c_option): Move to
5813         c-family/c-opts.c.
5814         * targhooks.h (default_handle_c_option): Move declaration to
5815         c-family/c-common.h.
5816         * target-hooks-macros.h: New file.
5817         * config.gcc (target_has_targetcm): Define and use to add to
5818         c_target_objs and cxx_target_objs.
5819         * config/default-c.c: New file.
5820         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5821         of target.h and target-def.h.
5822         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5823         (darwin_objc_construct_string, darwin_cfstring_ref_p,
5824         darwin_check_cfstring_format_arg): Make static.
5825         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5826         TARGET_STRING_OBJECT_REF_TYPE_P,
5827         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5828         * config/darwin-protos.h (darwin_objc_construct_string,
5829         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5830         declare.
5831         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5832         TARGET_STRING_OBJECT_REF_TYPE_P,
5833         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
5834         * config/t-darwin (darwin-c.o): Update dependencies.
5835         * system.h (TARGET_HAS_TARGETCM): Poison.
5836         * Makefile.in (TARGET_H): Update.
5837         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5838         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5839         (default-c.o): New target.
5840         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
5841         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
5842         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
5843         c-target.def.
5844         (build/genhooks.o): Update dependencies.
5845
5846 2011-04-06  Richard Guenther  <rguenther@suse.de>
5847
5848         * ipa-inline.c (enum inlining_mode): Remove.
5849         (cgraph_flatten): Use some other token.
5850         (cgraph_edge_early_inlinable_p): New function, split out from ...
5851         (cgraph_perform_always_inlining): New function, split out from ...
5852         (cgraph_decide_inlining_incrementally): ... here.
5853         (cgraph_mark_inline_edge): Adjust.
5854         (cgraph_early_inlining): Re-structure.
5855         (pass_early_inline): Require SSA form.
5856
5857 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
5858             Julian Brown  <julian@codesourcery.com>
5859             Mark Shinwell  <shinwell@codesourcery.com>
5860
5861         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5862         LO_REGS only for Thumb-1.
5863         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5864         be used in short instructions when optimising for size on Thumb-2.
5865
5866 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5867
5868         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5869         associated with user returns to be preserved.
5870
5871 2011-04-06  Tristan Gingold  <gingold@adacore.com>
5872
5873         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5874         symbol_queue_size, DBXOUT_DECR_NESTING,
5875         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5876         if XCOFF_DEBUGGING_INFO.
5877
5878 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5879
5880         * config/i386/i386.md (attribute isa): New.
5881         (attribute enabled): New.
5882         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5883         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5884         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5885         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5886         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5887         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5888         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5889         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5890
5891         * config/i386/sse.md (VF): New mode iterator.
5892         (VF1): Ditto.
5893         (VF2): Ditto.
5894         (VF_128): Ditto.
5895         (SSEMODEF4): Remove.
5896         (attribute sse): Handle V8SF and V4DF modes.
5897         (<absneg:code><mode>2): Use VF mode iterator.
5898         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
5899         mode iterator.
5900         (<plusminus_insn><mode>3): Use VF mode iterator.
5901         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5902         Use VF mode iterator.
5903         (<sse>_vm<plusminus_insn><mode>3): Merge with
5904         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
5905         (mul<mode>3): Use VF mode iterator.
5906         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
5907         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
5908         mode iterator.
5909         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5910         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5911         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
5912         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
5913         mode iterator.
5914         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5915         Use VF1 mode iterator.
5916         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5917         (sqrt<VF2:mode>2): New expander.
5918         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5919         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5920         and sqrtv2df2.  Use VF mode iterator.
5921         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
5922         mode iterator.
5923         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5924         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5925         Use VF1 mode iterator.
5926         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5927         (<smaxmin:code><mode>3): Use VF mode iterator.
5928         (*<smaxmin:code><mode>3_finite): Merge with
5929         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
5930         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5931         (<sse>_vm<smaxmin:code><mode>2): Merge with
5932         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
5933         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
5934         mode iterator.
5935         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
5936         mode iterator.
5937         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5938         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5939         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5940         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5941         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
5942         VF mode iterator.
5943         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5944         Use VF_128 mode iterator.
5945         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
5946         mode iterator.
5947         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
5948         VF_128 mode iterator.
5949         (vcond<mode>): Use VF mode iterator.
5950         * config/i386/predicates.md (sse_comparison_operator): Merge with
5951         avx_comparison_float_operator.  Do not declare as special_predicate.
5952         * config/i386/i386.c (struct builtin_description): Update for renamed
5953         compare patterns.
5954         (ix86_expand_args_builtin): Ditto.
5955         (ix86_expand_sse_compare_mask): Ditto.
5956
5957 2011-04-06  Richard Guenther  <rguenther@suse.de>
5958
5959         * tree-inline.c (estimate_num_insns): For calls simply account
5960         for all passed arguments and a used return value.
5961
5962 2011-04-06  Richard Guenther  <rguenther@suse.de>
5963
5964         PR tree-optimization/47663
5965         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5966         call_stmt_time fields.
5967         (cgraph_edge_inlinable_p): Declare.
5968         (cgraph_edge_recursive_p): New inline function.
5969         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5970         (cgraph_clone_edge): Copy it.
5971         * ipa-inline.c (cgraph_estimate_edge_time): New function.
5972         Account for call stmt time.
5973         (cgraph_estimate_time_after_inlining): Take edge argument.
5974         (cgraph_estimate_edge_growth): Account call stmt size.
5975         (cgraph_estimate_size_after_inlining): Take edge argument.
5976         (cgraph_mark_inline_edge): Adjust.
5977         (cgraph_check_inline_limits): Likewise.
5978         (cgraph_recursive_inlining_p): Remove.
5979         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5980         (cgraph_decide_recursive_inlining): Take edge argument and
5981         adjust.
5982         (cgraph_decide_inlining_of_small_functions): Do not avoid
5983         diags for recursive inlining here.
5984         (cgraph_flatten): Adjust.
5985         (cgraph_decide_inlining_incrementally): Likewise.
5986         (estimate_function_body_sizes): Remove call cost handling.
5987         (compute_inline_parameters): Initialize caller edge call costs.
5988         (cgraph_estimate_edge_growth): New function.
5989         (cgraph_estimate_growth): Use it.
5990         (cgraph_edge_badness): Likewise.
5991         (cgraph_check_inline_limits): Take an edge argument.
5992         (cgraph_decide_inlining_of_small_functions): Adjust.
5993         (cgraph_decide_inlining): Likewise.
5994         * tree-inline.c (estimate_num_insns): Only account for call
5995         return value if it is used.
5996         (expand_call_inline): Avoid diagnostics on recursive inline
5997         functions here.
5998         * lto-cgraph.c (lto_output_edge): Output edge call costs.
5999         (input_edge): Input edge call costs.
6000
6001 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6002
6003         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6004
6005 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6006
6007         * doc/invoke.texi (Spec Files): Fix typo.
6008
6009 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6010
6011         * profile.c (branch_prob): Move declaration of local variable.  Remove
6012         obsolete ??? comment.  Expand the location explicitly instead of using
6013         the LOCATION_FILE and LOCATION_LINE macros.
6014
6015 2011-04-06  Wei Guozhi  <carrot@google.com>
6016
6017         PR target/47855
6018         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6019         (arm_cond_branch): Likewise.
6020         (arm_cond_branch_reversed): Likewise.
6021         (arm_jump): Likewise.
6022         (push_multi): Likewise.
6023         * config/arm/constraints.md (Py): New constraint.
6024
6025 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6026
6027         PR bootstrap/48471
6028         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6029         Move these...
6030         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6031         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6032         #ifdef DBX_DEBUGGING_INFO.
6033
6034 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6035
6036         PR bootstrap/48403
6037         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6038         if old and new states differ.
6039
6040 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6041
6042         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6043         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6044         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6045         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6046         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6047         mcfv4e): Use Alias.
6048         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6049         ColdFire options to -mcpu= options.
6050
6051 2011-04-05  Jeff Law  <law@redhat.com>
6052
6053         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6054         check if BB is a successor of LOOP->header and return
6055         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6056
6057 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6058
6059         * cprop.c (struct reg_use): Remove.
6060         (reg_use_table): Make an array of RTX.
6061         (find_used_regs, constprop_register, local_cprop_pass,
6062         bypass_block): Simplify users of reg_use_table.
6063         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6064         on one of the uses found by find_used_regs.
6065
6066 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6067
6068         PR bootstrap/48469
6069         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6070         declaration.
6071
6072 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6073
6074         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6075         as an rtx.
6076         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6077
6078 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6079
6080         PR middle-end/48441
6081         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6082
6083 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6084
6085         * combine.c: Include obstack.h.
6086         (struct insn_link): Define.
6087         (uid_log_links): Adjust type.
6088         (FOR_EACH_LOG_LINK): New macro.
6089         (insn_link_obstack): Declare.
6090         (alloc_insn_link): Define.
6091         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6092         type of link variables.
6093         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6094         (try_combine, record_promoted_values, distribute_notes): Likewise.
6095         (distribute_links): Likewise.  Tweak prototype.
6096         (clear_log_links): Delete.
6097         (adjust_for_new_dest): Call alloc_insn_link.
6098         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6099
6100 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6101
6102         * gcse.c (modify_mem_list): Convert to an array of VECs.
6103         (canon_modify_mem_list, compute_transp): Tweak formatting.
6104         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6105         (load_killed_in_block_p): Likewise.
6106         (record_last_mem_set_info): Likewise.
6107         (clear_modify_mem_tables): Likewise.
6108
6109 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6110
6111         PR middle-end/48461
6112         * function.c (emit_use_return_register_into_block): Only define if
6113         HAVE_return.
6114
6115 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6116
6117         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6118
6119 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6120
6121         * config/rx/rx-opts.h: New.
6122         * config/rx/rx.c (rx_cpu_type): Remove.
6123         (rx_handle_option): Don't assert that global structures are in
6124         use.  Access variables via opts pointer.  Defer most handling of
6125         OPT_mint_register_.  Use error_at.
6126         (rx_option_override): Handle deferred OPT_mint_register_ here.
6127         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6128         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6129         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6130         (rx_cpu_types): New Enum and EnumValue entries.
6131         (mint-register=): Use Defer and use Var accordingly.
6132
6133 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6134
6135         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6136         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6137         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6138         Move these...
6139         (debug_free_queue, debug_nesting, symbol_queue_index):
6140         ...and these...
6141         * dbxout.c: ...to here.  Make static.
6142
6143 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6144
6145         * gcse.c (modify_pair): Define.  Define a VEC of it.
6146         (canon_modify_mem_list): Convert to an array of VECs.
6147         (free_insn_expr_list_list): Delete.
6148         (clear_modify_mem_tables): Call VEC_free instead.
6149         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6150         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6151         (canon_list_insert, compute_transp): Likewise.
6152
6153 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6154
6155         PR target/43920
6156         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6157         for size.
6158
6159 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6160
6161         PR target/43920
6162         * function.c (emit_use_return_register_into_block): New function.
6163         (thread_prologue_and_epilogue_insns): Use
6164         emit_use_return_register_into_block.
6165
6166 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6167
6168         PR target/43920
6169         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6170         insn.
6171
6172 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6173
6174         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6175
6176 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6177
6178         * config/arm/arm.md (define_constants for unspec): Replace with
6179         define_c_enum.
6180         (define_constants for unspecv): Replace with define_c_enum.
6181         * config/arm/neon.md (define_constants for unspec): Replace with
6182         define_c_enum.
6183
6184 2011-04-04  Richard Henderson  <rth@redhat.com>
6185
6186         PR bootstrap/48400
6187         * dwarf2out.c (output_line_info): Always emit line info from
6188         at least one section.
6189         (dwarf2out_init): Create text_section_line_info here ...
6190         (set_cur_line_info_table): ... not here.
6191
6192 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6193
6194         PR target/48380
6195         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6196         not called.
6197
6198         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6199
6200 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6201
6202         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6203         (expr_equiv_p): Remove.
6204         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6205         (hash_scan_set): Update call to insert_set_in_table.
6206         (dump_hash_table): Dump <dest, src> pair.
6207         (lookup_set): Simplify.  Lookup <dest, src> pair.
6208         (compute_transp): Remove, fold heavily simplified code into...
6209         (compute_local_properties): ...here.  Expect COMP and TRANSP
6210         unconditionally.
6211         (find_avail_set): Take set directly from struct expr.
6212         (find_bypass-set): Likewise.
6213         (bypass_block): Likewise.
6214         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6215
6216         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6217         checks on form of COND from find_implicit_sets to here.
6218         (find_implicit_sets): Cleanup control flow. Split critical edges
6219         if it exposes implicit sets.  Allocate/resize implicit_sets as
6220         necessary.
6221         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6222         changed something.  Run df_analyze after find_implicit_sets if any
6223         edges were split.  Do not allocate implicit_sets here.
6224
6225         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6226         (gcse_obstack): Renamed to cprop_obstack.
6227         (GNEW, GNEWVEC, GNEWVAR): Remove.
6228         (gmalloc): Remove.
6229         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6230         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6231         (gcse_alloc): Likewise, and rename to cprop_alloc.
6232         (alloc_gcse_men, free_gcse_mem): Remove.
6233         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6234         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6235         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6236
6237         * cprop.c (oprs_not_set_p): Remove.
6238         (mark_set, mark_clobber): Remove.
6239         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6240         (reg_not_set_p): New function.
6241         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6242         (cprop_insn): Likewise.
6243         (cprop_jump): Use FOR_EACH_EDGE.
6244
6245 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6246
6247         PR bootstrap/48403
6248         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6249         (rank_for_schedule): Use scheduled_insns vector instead of
6250         last_scheduled_insn.
6251         (ok_for_early_queue_removal): Likewise.
6252         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6253         we have a dbg_cnt.
6254         (choose_ready): Likewise.
6255         (commit_schedule): Use VEC_iterate.
6256         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6257         a dbg_cnt, use it and ensure the first insn is in the ready list.
6258         (haifa_sched_init): Allocate scheduled_insns.
6259         (sched_extend_ready_list): Don't allocate it; reserve space.
6260         (haifa_sched_finish): Free it.
6261
6262 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6263
6264         * optc-gen.awk: Always remove type from Variable entry before
6265         recording in var_seen.
6266
6267 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6268
6269         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6270         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6271         call to tidy_fallthru_edges.
6272
6273 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6274
6275         * doc/options.texi (ToLower): Document.
6276         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6277         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6278         * opts.h (cl_option): Add cl_tolower field.
6279         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6280         arguments with lowercase strings.
6281         * config/rx/rx.opt (mcpu=): Add ToLower.
6282         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6283         argument.
6284
6285 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6286
6287         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6288
6289 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6290
6291         * config/vax/vax.c: Include reload.h.
6292
6293 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6294
6295         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6296         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6297         (sparc_preferred_reload_class): New function.
6298
6299 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6300
6301         PR debug/48401
6302         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6303         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6304
6305 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6306
6307         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6308         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6309
6310 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6311
6312         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6313         (ASM_OUTPUT_ALIGNED_BSS): Define.
6314
6315 2011-04-03  Michael Matz  <matz@suse.de>
6316
6317         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6318         and next_slot members.
6319         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6320         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6321         (lto_streamer_cache_append): Declare.
6322         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6323         unsigned index, remove offset parameter, ensure that we append
6324         or update existing entries.
6325         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6326         parameter, update next_slot for append.
6327         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6328         parameter.
6329         (lto_streamer_cache_insert_at): Likewise.
6330         (lto_streamer_cache_append): New function.
6331         (lto_streamer_cache_lookup): Use unsigned index.
6332         (lto_streamer_cache_get): Likewise.
6333         (lto_record_common_node): Don't test tree_node_can_be_shared.
6334         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6335         (lto_streamer_cache_delete): Don't free offsets member.
6336         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6337         (lto_output_string_with_length): Use lto_output_data_stream.
6338         (lto_output_tree_header): Remove ix parameter, don't write it.
6339         (lto_output_builtin_tree): Likewise.
6340         (lto_write_tree): Adjust callers to above, don't track and write
6341         offset, write unsigned index.
6342         (output_unreferenced_globals): Don't emit all global vars.
6343         (write_global_references): Use unsigned indices.
6344         (lto_output_decl_state_refs): Likewise.
6345         (write_symbol): Likewise.
6346         * lto-streamer-in.c (lto_input_chain): Move earlier.
6347         (input_function): Use unsigned index.
6348         (input_alias_pairs): Don't read and then ignore all global vars.
6349         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6350         don't pass it back, use lto_streamer_cache_append.
6351         (lto_register_var_decl_in_symtab): Use unsigned index.
6352         (lto_register_function_decl_in_symtab): Likewise.
6353         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6354         index.
6355         (lto_get_builtin_tree): Don't read index, use
6356         lto_streamer_cache_append.
6357         (lto_read_tree): Adjust call to lto_materialize_tree.
6358
6359         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6360         don't use function calls in arguments to MIN.
6361
6362         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6363         twice.
6364
6365         * gimple.c (gimple_type_leader_entry): Mark deletable.
6366
6367 2011-04-03  Alan Modra  <amodra@gmail.com>
6368
6369         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6370
6371 2011-04-03  Michael Matz  <matz@suse.de>
6372
6373         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6374         an integer.
6375         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6376
6377 2011-04-03  Michael Matz  <matz@suse.de>
6378
6379         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6380         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6381         without function context.
6382         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6383         current_function_decl and cfun.
6384
6385 2011-04-03  Michael Matz  <matz@suse.de>
6386
6387         * tree.c (decl_init_priority_insert): Don't create entry for
6388         default priority.
6389         (decl_fini_priority_insert): Ditto.
6390         (fields_compatible_p, find_compatible_field): Remove.
6391         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6392         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6393
6394 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6395
6396         * combine.c (try_combine): Remove useless local variable.
6397
6398 2011-04-03  Richard Guenther  <rguenther@suse.de>
6399             Ira Rosen  <ira.rosen@linaro.org>
6400
6401         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6402         non-variable offsets and compare the remaining bases of the two
6403         accesses instead of looking for exact same data-ref.
6404
6405 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6406
6407         PR target/48416
6408         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6409
6410         * i386.c (ix86_is_msabi_thiscall): New helper function.
6411         (ix86_is_type_thiscall): New helper function.
6412         (ix86_comp_type_attributes): Handle thiscall for method-functions
6413         special.
6414         (init_cumulative_args): Likewise.
6415         (find_drap_reg): Likewise.
6416         (ix86_static_chain): Likewise.
6417         (x86_this_parameter): Likewise.
6418         (x86_output_mi_thunk): Likewise.
6419
6420 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6421             Nicolas Setton  <setton@adacore.com>
6422             Eric Botcazou  <ebotcazou@adacore.com>
6423
6424         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6425         (add_gnat_descriptive_type_attribute): New function.
6426         (gen_array_type_die): Call it.
6427         (gen_enumeration_type_die): Likewise.
6428         (gen_struct_or_union_type_die): Likewise.
6429         (modified_type_die): Likewise.
6430         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6431         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6432         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6433
6434 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6435
6436         PR bootstrap/48148
6437         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6438         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6439
6440         Revert:
6441         2011-03-17  Richard Guenther  <rguenther@suse.de>
6442
6443         PR bootstrap/48148
6444         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6445         origin for decls in other ltrans units.
6446         (input_varpool_node): Likewise.
6447
6448 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6449
6450         PR middle-end/48335
6451         * expr.c (expand_assignment): Handle all possibilities
6452         if TO_RTX is CONCAT.
6453         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6454         (store_split_bit_field): If SUBREG_REG (op0) or
6455         op0 itself has smaller mode than word, return it
6456         for offset 0 and const0_rtx for out-of-bounds stores.
6457         If word is const0_rtx, skip it.
6458
6459 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6460
6461         * config/h8300/h8300.c (print_operand_address): Rename to...
6462         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6463         Call h8300_print_operand and h8300_print_operand_address instead of
6464         print_operand and print_operand_address. Declare.
6465         (print_operand): Renake to...
6466         (h8300_print_operand): ...this. Make static. Adjust comments.
6467         Call h8300_print_operand instead of print_operand. Declare.
6468         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6469         (h8300_register_move_cost): Likewise.
6470         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6471         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6472         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6473         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6474         * config/h8300/h8300-protos.h (print_operand): Delete.
6475         (print_operand_address): Delete.
6476
6477 2011-04-01  Richard Henderson  <rth@redhat.com>
6478
6479         PR 48400
6480         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6481         in strict mode before dwarf4.  Re-order tests to early out
6482         before switching sections.
6483
6484 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6485
6486         * config/h8300/constraints.md: New file.
6487         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6488         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6489         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6490         * config/h8300/predicates.md (bit_operand): Likewise.
6491         (incdec_operand): Use satisfies_constraint_M and
6492         satisfies_constraint_O.  Don't use C code block.
6493         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6494         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6495         (compute_mov_length): Use satisfies_constraint_G.
6496         (fix_bit_operand): Use satisfies_constraint_U.
6497         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6498         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6499         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6500         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6501         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6502         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6503         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6504         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6505         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6506         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6507         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6508         (EXTRA_MEMORY_CONSTRAINT): Delete.
6509
6510 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6511             Michael Meissner  <meissner@linux.vnet.ibm.com>
6512
6513         PR target/48262
6514         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6515         operands, as per the specifications.
6516
6517         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6518         (vec_extract_evenv4sf): Ditto.
6519         (vec_extract_evenv8hi): Ditto.
6520         (vec_extract_evenv16qi): Ditto.
6521         (vec_extract_oddv4si): Ditto.
6522
6523 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6524
6525         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6526         high_pc attribute if the CU has no associated code. Only output
6527         DW_AT_entry_pc for CU if not generating strict dwarf and
6528         dwarf_version < 4.
6529
6530 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6531
6532         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6533         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6534         out of ...
6535         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6536         * final.c (final_start_function): Call the new function rather
6537         than using a NULL argument for dwarf2out_frame_debug.
6538
6539         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6540         that contains the prologue.
6541
6542         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6543         changed.  Print it in debugging output.
6544
6545         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6546
6547         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6548         Split most of the code into...
6549         (begin_move_insn): ... here.  New function.
6550         (ebb_sched_info): Add a pointer to it.
6551         * haifa-sched.c (scheduled_insns): New static variable.
6552         (sched_extend_ready_list): Allocate it.
6553         (schedule_block): Use it to record the order of scheduled insns.
6554         Perform RTL changes to move insns only after all scheduling
6555         decisions have been made.
6556         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6557         begin_move_insn field.
6558         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6559         * sched-int.h (struct haifa_sched_info): Remove second argument
6560         from begin_schedule_ready hook.  Add new member begin_move_insn.
6561         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6562         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6563
6564         * haifa-sched.c (prune_ready_list): New function, broken out of
6565         schedule_block.
6566         (schedule_block): Use it.
6567
6568 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6569
6570         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6571
6572 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6573
6574         * config.gcc (*-*-mingw*): Allow as option the
6575         posix threading model.
6576         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6577         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6578         definition.
6579         (CPP_SPEC): Add pthread/no-pthread handling.
6580         (LIB_SPEC): Likewise.
6581         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6582         (LIB_SPEC): Likewise.
6583         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6584         flag to pass -pthread option for shared libgcc build.
6585         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6586         for shared libgcc build.
6587         * config/i386/t-mingw-pthread: New file.
6588         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6589         New define to enable use of library pthread by default.
6590         * config/i386/mingw.opt (pthread): New driver option.
6591         (no-pthread): New driver option.
6592         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6593         * config/i386/mingw-w64.opt: Likewise.
6594
6595 2011-04-01  Gary Funck  <gary@intrepid.com>
6596
6597         * c-decl.c (grokdeclarator): Fix formatting.
6598
6599 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6600
6601         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6602         instead of n_operands.
6603         (set_storage_via_setmem): Likewise.
6604         * optabs.c (maybe_gen_insn): Likewise.
6605         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6606         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6607         (mips_expand_builtin_direct): Likewise.
6608         * config/spu/spu.c (expand_builtin_args): Likewise.
6609
6610 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6611
6612         * recog.h (insn_data_d): Add n_generator_args.
6613         * genoutput.c (data): Likewise.
6614         (output_insn_data): Print it.
6615         (max_opno, num_dups): Delete.
6616         (scan_operands): Just fill in "d->operand[...]".
6617         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6618
6619 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6620
6621         * gensupport.h (pattern_stats): New structure.
6622         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6623         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6624         (max_operand_1, max_operand_vec): Delete.
6625         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6626
6627 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6628
6629         * emit-rtl.c (emit_pattern_after_setloc): New function.
6630         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6631         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6632         (emit_pattern_after): New function.
6633         (emit_insn_after, emit_jump_insn_after): Call it.
6634         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6635         (emit_pattern_before_setloc): New function.
6636         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6637         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6638         Likewise.
6639         (emit_pattern_before): New function.
6640         (emit_insn_before, emit_jump_insn_before): Call it.
6641         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6642
6643 2011-03-31  Richard Henderson  <rth@redhat.com>
6644
6645         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6646         (dw_separate_line_info_entry): Remove.
6647         (enum dw_line_info_opcode): New.
6648         (dw_line_info_entry): Use it.
6649         (dw_line_info_table, dw_line_info_table_p): New.
6650         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6651         (line_info_table, line_info_label_num): Remove.
6652         (line_info_table_in_use): Remove.
6653         (separate_line_info_table): Remove.
6654         (separate_line_info_table_allocated): Remove.
6655         (separate_line_info_table_in_use): Remove.
6656         (LINE_INFO_TABLE_INCREMENT): Remove.
6657         (line_info_label_num): New.
6658         (cur_line_info_table): New.
6659         (text_section_line_info, cold_text_section_line_info): New.
6660         (separate_line_info): New.
6661         (SEPARATE_LINE_CODE_LABEL): Remove.
6662         (print_dwarf_line_table): Remove.
6663         (debug_dwarf): Don't dump it.
6664         (output_one_line_info_table): New.
6665         (output_line_info): Use it.
6666         (new_line_info_table): New.
6667         (set_cur_line_info_table): New.
6668         (dwarf2out_switch_text_section): Use it.
6669         (dwarf2out_begin_function): Likewise.
6670         (push_dw_line_info_entry): New.
6671         (dwarf2out_source_line): Rewrite for new line info tables.
6672         (dwarf2out_init): Remove dead initailizations.
6673
6674 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6675
6676         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
6677         various flags.
6678         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6679         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6680         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6681         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6682         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6683         * opt-functions.awk (flag_init, switch_bit_fields): New.
6684         (switch_flags): Don't handle flags moved to bit-fields.  Don't
6685         generate CL_MISSING_OK or CL_SAVE.
6686         * optc-gen.awk: Update to generate bit-field output as well as
6687         flags field.
6688         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6689         bit-field instead of CL_REJECT_DRIVER flag.
6690         * opts-common.c (generate_canonical_option,
6691         decode_cmdline_option): Use bit-fields instead of CL_* flags.
6692         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6693         instead of CL_REJECT_NEGATIVE flag.
6694         * toplev.c (print_switch_values): Use cl_report bit-field instead
6695         of CL_REPORT flag.
6696
6697 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6698
6699         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6700         a zero minimum index only if it is redundant.
6701
6702 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6703
6704         PR rtl-optimization/48381
6705         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6706         instead of ira_class_hard_reg_index for calculating conflicting
6707         hard registers.
6708
6709 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6710
6711         * cprop.c: Clean up hash table building.
6712         (reg_avail_info): Remove.
6713         (oprs_available_p): Remove.
6714         (record_last_reg_set_info): Remove.
6715         (record_last_set_info): Remove.
6716         (reg_available_p): New function.
6717         (gcse_constant_p): Do not treat unfolded conditions as constants.
6718         (make_set_regs_unavailable): New function.
6719         (hash_scan_set): Simplify with new reg_available_p.
6720         (compute_hash_table_work): Traverse insns stream only once.
6721         Do not compute reg_avail_info. Traverse insns in reverse order.
6722         Record implicit sets after recording explicit sets from the block.
6723
6724 2011-03-31  Michael Matz  <matz@suse.de>
6725
6726         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
6727
6728 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
6729
6730         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6731         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6732         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6733         (h8300_mode_dependent_address_p): New function.
6734         (h8300_get_index): Make static.
6735
6736 2011-03-31  Jeff Law  <law@redhat.com>
6737
6738         * reload1.c (elimination_effects): Fix typo in recent change.
6739
6740         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
6741         typo potentially leading to null pointer dereference.
6742
6743         * caller-save.c (new_saved_hard_reg): Eliminate return value.
6744         (setup_save_areas): Corresponding changes to avoid useless
6745         assignments.
6746
6747         * jump.c (reversed_comparison_code_parts): Avoid successive return
6748         statements when REVERSE_CONDITION is defined.
6749
6750         * expr.c (expand_assignment): Avoid useless assignments.
6751         (expand_expr_real_1): Likewise.
6752         (expand_expr_real_2): Avoid useless statements.
6753
6754         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6755
6756         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6757
6758         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6759         statements.
6760
6761         * stmt.c (expand_expr_stmt): Avoid useless assignment.
6762
6763 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6764
6765         PR target/47109
6766         * doc/tm.texi.in (TARGET_VERSION): Remove.
6767         * doc/tm.texi: Regenerate.
6768         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6769         * collect2.c (main): Don't use TARGET_VERSION.
6770         * mips-tdump.c (main): Don't use TARGET_VERSION.
6771         * mips-tfile.c (main): Don't use TARGET_VERSION.
6772         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
6773         * config/rs6000/vxworksae.h: Remove.
6774         * config/alpha/alpha.h (TARGET_VERSION): Remove.
6775         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6776         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6777         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6778         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6779         * config/arm/arm.h (TARGET_VERSION): Remove.
6780         * config/arm/coff.h (TARGET_VERSION): Remove.
6781         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6782         * config/arm/elf.h (TARGET_VERSION): Remove.
6783         * config/arm/freebsd.h (TARGET_VERSION): Remove.
6784         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6785         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6786         * config/arm/pe.h (TARGET_VERSION): Remove.
6787         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6788         * config/arm/semi.h (TARGET_VERSION): Remove.
6789         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6790         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6791         * config/arm/vxworks.h (TARGET_VERSION): Remove.
6792         * config/avr/avr.h (TARGET_VERSION): Remove.
6793         * config/bfin/bfin.h (TARGET_VERSION): Remove.
6794         * config/fr30/fr30.h (TARGET_VERSION): Remove.
6795         * config/frv/frv.h (TARGET_VERSION): Remove.
6796         * config/h8300/h8300.h (TARGET_VERSION): Remove.
6797         * config/i386/cygwin.h (TARGET_VERSION): Remove.
6798         * config/i386/darwin.h (TARGET_VERSION): Remove.
6799         * config/i386/darwin64.h (TARGET_VERSION): Remove.
6800         * config/i386/djgpp.h (TARGET_VERSION): Remove.
6801         * config/i386/freebsd.h (TARGET_VERSION): Remove.
6802         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6803         * config/i386/gnu.h (TARGET_VERSION): Remove.
6804         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6805         * config/i386/i386elf.h (TARGET_VERSION): Remove.
6806         * config/i386/linux.h (TARGET_VERSION): Remove.
6807         * config/i386/linux64.h (TARGET_VERSION): Remove.
6808         * config/i386/lynx.h (TARGET_VERSION): Remove.
6809         * config/i386/mingw32.h (TARGET_VERSION): Remove.
6810         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6811         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6812         * config/i386/netware.h (TARGET_VERSION): Remove.
6813         * config/i386/nto.h (TARGET_VERSION): Remove.
6814         * config/i386/openbsd.h (TARGET_VERSION): Remove.
6815         * config/i386/vxworks.h (TARGET_VERSION): Remove.
6816         * config/ia64/elf.h (TARGET_VERSION): Remove.
6817         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6818         * config/ia64/hpux.h (TARGET_VERSION): Remove.
6819         * config/ia64/linux.h (TARGET_VERSION): Remove.
6820         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6821         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6822         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6823         * config/lm32/lm32.h (TARGET_VERSION): Remove.
6824         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6825         * config/m32c/m32c.h (TARGET_VERSION): Remove.
6826         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6827         * config/m32r/m32r.h (TARGET_VERSION): Remove.
6828         * config/m68k/linux.h (TARGET_VERSION): Remove.
6829         * config/m68k/m68k.h (TARGET_VERSION): Remove.
6830         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6831         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6832         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6833         * config/mep/mep.h (TARGET_VERSION): Remove.
6834         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6835         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6836         * config/mips/iris6.h (MACHINE_TYPE): Remove.
6837         * config/mips/linux.h (TARGET_VERSION): Remove.
6838         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6839         * config/mips/vxworks.h (TARGET_VERSION): Remove.
6840         * config/mmix/mmix.h (TARGET_VERSION): Remove.
6841         * config/mn10300/linux.h (TARGET_VERSION): Remove.
6842         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6843         * config/pa/pa.h (TARGET_VERSION): Remove.
6844         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6845         * config/picochip/picochip.h (TARGET_VERSION): Remove.
6846         * config/rs6000/aix.h (TARGET_VERSION): Remove.
6847         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6848         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6849         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6850         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6851         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6852         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6853         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6854         * config/rs6000/linux.h (TARGET_VERSION): Remove.
6855         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6856         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6857         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6858         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6859         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6860         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6861         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6862         * config/s390/linux.h (TARGET_VERSION): Remove.
6863         * config/s390/s390.h (TARGET_VERSION): Remove.
6864         * config/s390/tpf.h (TARGET_VERSION): Remove.
6865         * config/score/score.h (TARGET_VERSION): Remove.
6866         * config/sh/linux.h (TARGET_VERSION): Remove.
6867         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6868         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6869         * config/sh/sh.h (TARGET_VERSION): Remove.
6870         * config/sh/sh64.h (TARGET_VERSION): Remove.
6871         * config/sh/superh.h (TARGET_VERSION): Remove.
6872         * config/sh/vxworks.h (TARGET_VERSION): Remove.
6873         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6874         * config/sparc/linux.h (TARGET_VERSION): Remove.
6875         * config/sparc/linux64.h (TARGET_VERSION): Remove.
6876         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6877         TARGET_NAME32, TARGET_NAME): Remove.
6878         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6879         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6880         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6881         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6882         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6883         * config/spu/spu.h (TARGET_VERSION): Remove.
6884         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6885         * config/v850/v850.h (TARGET_VERSION): Remove.
6886         * config/vax/linux.h (TARGET_VERSION): Remove.
6887         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6888         * config/xtensa/elf.h (TARGET_VERSION): Remove.
6889         * config/xtensa/linux.h (TARGET_VERSION): Remove.
6890
6891 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6892
6893         PR target/48142
6894         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6895         frame-related from frame-unrelated adjustments to the stack pointer.
6896
6897 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
6898
6899         * common.opt (fdebug-types-section): Move earlier.
6900         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6901
6902 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
6903
6904         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6905         var.
6906
6907 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
6908
6909         * tree.h (CASE_CHAIN): Define.
6910         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6911         (gimple_redirect_edge_and_branch): Likewise.
6912
6913 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6914
6915         PR middle-end/48367
6916         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6917         calculation.
6918
6919 2011-03-30  Jeff Law  <law@redhat.com>
6920
6921         * PR bootstrap/48371
6922         * reload1.c (reload): Fix botch in last change.
6923
6924         * reload.h (struct reload): Fix typo introduced in last change.
6925
6926 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6927
6928         * config/arm/arm.opt (mhard-float, msoft-float): Mark
6929         Undocumented.  Remove help text.
6930         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6931         -mhard-float.
6932
6933 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6934
6935         * doc/options.texi (NegativeAlias): Document.
6936         (Alias): Mention NegativeAlias.
6937         * opt-functions.awk: Handle NegativeAlias.
6938         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
6939         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6940         * opts.h (CL_NEGATIVE_ALIAS): Define.
6941         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6942         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6943         OPT_mspe_.
6944         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6945         Alias entries.
6946         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6947         mno-spe and mno-isel instead of mspe=no and -misel=no.
6948
6949 2011-03-29  Mark Wielaard  <mjw@redhat.com>
6950
6951         * common.opt (fdebug-types-section): New flag.
6952         * doc/invoke.texi: Document new -fno-debug-types-section flag.
6953         * dwarf2out.c (use_debug_types): New define.
6954         (struct die_struct): Mark die_id with GTY desc use_debug_types.
6955         (print_die): Guard output of type unit signatures using
6956         use_debug_types.
6957         (build_abbrev_table): Replace assert of dwarf_version >= 4
6958         with assert on use_debug_types.
6959         (size_of_die): Likewise.
6960         (unmark_dies): Likewise.
6961         (value_format): Decide AT_ref_external form on use_debug_types.
6962         (output_die): Replace dwarf_version version check guard with
6963         use_debug_types where appropriate.
6964         (modified_type_die): Likewise.
6965         (gen_reference_type_die): Likewise.
6966         (dwarf2out_start_source_file): Likewise.
6967         (dwarf2out_end_source_file): Likewise.
6968         (prune_unused_types_walk_attribs): Likewise.
6969         (dwarf2out_finish): Likewise.
6970
6971 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6972
6973         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6974
6975 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6976
6977         PR rtl-optimization/48332
6978         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6979         mode of input operand N and modeN to its actual mode.
6980
6981 2011-03-30  Jeff Law  <law@redhat.com>
6982
6983         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6984         define accessor macro.
6985         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6986         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6987         (reg_equiv_init): Likewise.
6988         (reg_equivs_size): New variable.
6989         (reg_equiv_init_size): Remove.
6990         (allocate_initial_values): Move prototype to here from....
6991         * integrate.h (allocate_initial_values): Remove prototype.
6992         * integrate.c: Include reload.h.
6993         (allocate_initial_values): Corresponding changes.
6994         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6995         (fix_reg_equiv_init, no_equiv): Corresponding changes.
6996         (update_equiv_regs): Corresponding changes.
6997         (ira): Corresponding changes.
6998         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6999         (push_secondary_reload): Corresponding changes.
7000         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7001         (make_memloc, find_reloads_address): Corresponding changes.
7002         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7003         (find_reloads_address_1): Corresponding changes.
7004         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7005         (refers_to_regno_for_reload_p): Corresponding changes.
7006         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7007         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7008         * reload1.c: Include ggc.h.
7009         (grow_reg_equivs): New function.
7010         (replace_pseudos_in, reload): Corresponding changes.
7011         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7012         (eliminate_regs_1, elimination_effects): Corresponding changes.
7013         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7014         (delete_output_reload): Likewise.
7015         * caller-save.c (mark_referenced_regs): Corresponding changes.
7016         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7017         * frv/predicates.md (frv_load_operand): Corresponding changes.
7018         * microblaze/microblaze.c (double_memory_operand): Corresponding
7019         changes.
7020         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7021         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7022         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7023         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7024         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7025         changes.
7026         * pa/pa.c (emit_move_sequence): Corresponding changes.
7027         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7028
7029 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7030
7031         PR target/47551
7032         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7033         structure modes.  Don't check neon_vector_mem_operand for
7034         vector or structure modes.
7035
7036 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7037             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7038
7039         PR target/43590
7040         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7041         operand 1 and reshuffle the operands to match.
7042         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7043
7044 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7045
7046         PR driver/48208
7047         * config/c.opt (F): Added 'Driver' to -F option.
7048
7049         PR driver/48260
7050         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7051           handler function.
7052         * config/darwin.opt: Added '-arch' option.
7053
7054 2011-03-30  Nick Clifton  <nickc@redhat.com>
7055
7056         * config/rx/rx.md: Add peepholes and patterns to combine
7057         extending loads and simple arithmetic instructions.
7058         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7059         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7060         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7061         modes to use pre-decrement and post-increment addressing.
7062         (rx_is_restricted_memory_address): Add range checking of REG+INT
7063         addresses.
7064         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7065         (rx_memory_move_cost): Adjust cost of stores.
7066         (rx_adjust_insn_length): New function.
7067
7068 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7069
7070         PR c/48305
7071         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7072         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7073         matching arg00/arg01 types.
7074
7075 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7076
7077         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7078         last_location to UNKNOWN_LOCATION.
7079
7080 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7081
7082         PR target/48349
7083         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7084         FLOAT_SSE_REGS.
7085
7086 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7087             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7088
7089         PR bootstrap/48337
7090         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7091         Init(PROCESSOR_V7).
7092         (sparc_cpu): Likewise.
7093         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7094         PROCESSOR_V7.
7095
7096 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7097
7098         PR target/48336
7099         PR middle-end/48342
7100         PR rtl-optimization/48345
7101         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7102         hard regs for given mode from profitable regs when doing secondary
7103         allocation.
7104
7105 2011-03-29  Jeff Law  <law@redhat.com>
7106
7107         PR bootstrap/48327
7108         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7109         do_not_duplicate field.
7110         (lookup_redirection_data): Corresponding changes.
7111         (create_duplicates): Always create a template block.
7112         (redirect_edges): Remove code which reused the original block
7113         when it was going to become unreachable code.
7114         (thread_block): Don't set do_not_duplicate field.
7115
7116 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7117
7118         * lto-opts.c (register_user_option_p, lto_register_user_option):
7119         Make type argument unsigned.
7120         * lto-streamer.h (lto_register_user_option): Make type argument
7121         unsigned.
7122         * opth-gen.awk: Make CL_* macros unsigned.
7123         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7124         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7125         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7126         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7127         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7128         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7129         (find_opt): Make lang_mask argument unsigned.
7130
7131 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7132
7133         PR rtl-optimization/48331
7134         PR rtl-optimization/48334
7135         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7136         for any used algorithm.
7137
7138 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7139
7140         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7141         to parent_max.
7142
7143 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7144
7145         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7146         (alpha_option_override): Don't set alpha_sr_alias_set.
7147         (emit_frame_store_1): Use gen_frame_mem rather than calling
7148         set_mem_alias_set.
7149         (alpha_expand_epilogue): Ditto.
7150
7151 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7152
7153         PR tree-optimization/48290
7154         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7155         vectorization, check that relevant phis in the basic block after
7156         the inner loop are really inner loop's exit phis.
7157
7158 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7159
7160         PR debug/48190
7161         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7162         (cached_dw_loc_list_def): New structure.
7163         (cached_dw_loc_list): New typedef.
7164         (cached_dw_loc_list_table): New variable.
7165         (cached_dw_loc_list_table_hash): New function.
7166         (cached_dw_loc_list_table_eq): Likewise.
7167         (add_location_or_const_value_attribute): Take a bool cache_p.
7168         Cache the list when the parameter is true.
7169         (gen_formal_parameter_die): Update caller.
7170         (gen_variable_die): Likewise.
7171         (dwarf2out_finish): Likewise.
7172         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7173         while generating debug info for the decl.
7174         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7175         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7176         (resolve_addr): Cache the result of resolving a chain of
7177         location lists.
7178
7179 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7180
7181         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7182         conflict object hard regset nodes have intersecting hard reg sets.
7183
7184         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7185         after regstat_init_n_sets_and_refs.
7186
7187         * ira.c: Add more comments at the top.
7188         (setup_stack_reg_pressure_class, setup_pressure_classes):
7189         Add comments how we compute the register pressure classes.
7190         (setup_allocno_and_important_classes): Add more comments.
7191         (setup_class_translate_array, reorder_important_classes)
7192         (setup_reg_class_relations): Add comments.
7193
7194         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7195         start of the file.
7196
7197         * ira-color.c: Add 2011 to the Copyright line.
7198         (assign_hard_reg):  Add more comments.
7199         (improve_allocation): Ditto.
7200
7201         * ira-costs.c: Add 2011 to the Copyright line.
7202         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7203         comments.
7204         (setup_regno_cost_classes_by_mode): Ditto.
7205
7206         Initial patches from ira-improv branch:
7207
7208         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7209
7210         * ira-build.c (ira_create_object): Remove initialization of
7211         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7212         (ira_create_allocno): Remove initialization of
7213         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7214         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7215         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7216         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7217         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7218         Initialize ALLOCNO_ADD_DATA.
7219         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7220         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7221         ALLOCNO_REG.
7222         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7223         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7224
7225         * ira.c (ira_reallocate): Remove.
7226         (setup_pressure_classes): Call
7227         ira_init_register_move_cost_if_necessary.  Use
7228         ira_register_move_cost instead of ira_get_register_move_cost.
7229         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7230         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7231
7232         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7233         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7234         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7235         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7236         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7237         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7238         Fix formatting.
7239         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7240         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7241         (struct allocno_color_data): New.
7242         (allocno_color_data_t): New typedef.
7243         (allocno_color_data): New definition.
7244         (ALLOCNO_COLOR_DATA): New macro.
7245         (struct object_color_data): New.
7246         (object_color_data_t): New typedef.
7247         (object_color_data): New definition.
7248         (OBJECT_COLOR_DATA): New macro.
7249         (update_copy_costs, calculate_allocno_spill_cost): Call
7250         ira_init_register_move_cost_if_necessary.  Use
7251         ira_register_move_cost instead of ira_get_register_move_cost.
7252         (move_spill_restore, update_curr_costs): Ditto.
7253         (allocno_spill_priority): Make it inline.
7254         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7255         (struct coalesce_data, coalesce_data_t): New.
7256         (allocno_coalesce_data): New definition.
7257         (ALLOCNO_COALESCE_DATA): New macro.
7258         (merge_allocnos, coalesced_allocno_conflict_p): Use
7259         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7260         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7261         (coalesce_allocnos): Ditto.
7262         (setup_coalesced_allocno_costs_and_nums): Ditto.
7263         (collect_spilled_coalesced_allocnos): Ditto.
7264         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7265         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7266         (coalesce_spill_slots): Ditto.
7267         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7268         free allocno_coalesce_data.
7269
7270         * ira-conflicts.c: Fix formatting.
7271         (process_regs_for_copy): Call
7272         ira_init_register_move_cost_if_necessary.  Use
7273         ira_register_move_cost instead of ira_get_register_move_cost.
7274         (build_object_conflicts): Optimize.
7275
7276         * ira-costs.c (record_reg_classes): Optimize.  Call
7277         ira_init_register_move_cost_if_necessary.  Use
7278         ira_register_move_cost, ira_may_move_in_cost, and
7279         ira_may_move_out_cost instead of ira_get_register_move_cost and
7280         ira_get_may_move_cost.
7281         (record_address_regs): Ditto.
7282         (scan_one_insn): Optimize.
7283         (find_costs_and_classes): Optimize.
7284         (process_bb_node_for_hard_reg_moves): Call
7285         ira_init_register_move_cost_if_necessary.  Use
7286         ira_register_move_cost instead of ira_get_register_move_cost.
7287
7288         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7289         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7290         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7291         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7292         definitions.
7293         (ira_initiate_emit_data, ira_finish_emit_data)
7294         (create_new_allocno): New functions.
7295         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7296         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7297         Use ira_register_move_cost instead of ira_get_register_move_cost.
7298
7299         * ira-int.h: Fix some comments.
7300         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7301         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7302         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7303         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7304         add_data.
7305         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7306         bitfield after mode.  Make hard_regno a short int.  Make
7307         hard_regno short.  Remove first_coalesced_allocno and
7308         next_coalesced_allocno.  Move mem_optimized_dest_p,
7309         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7310         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7311         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7312         temp, colorable_p.  Add new member add_data.
7313         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7314         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7315         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7316         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7317         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7318         (ALLOCNO_ADD_DATA): New macro.
7319         (ira_emit_data_t): New typedef.
7320         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7321         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7322         from struct ira_allocno.
7323         (ALLOCNO_EMIT_DATA): New macro.
7324         (ira_allocno_emit_data, allocno_emit_reg): New.
7325         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7326         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7327         (OBJECT_ADD_DATA): New macro.
7328         (ira_reallocate): Remove.
7329         (ira_initiate_emit_data, ira_finish_emit_data): New.
7330         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7331         (ira_init_register_move_cost_if_necessary): New.
7332         (ira_object_conflict_iter_next): Merge into
7333         ira_object_conflict_iter_cond.
7334         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7335
7336         * ira-live.c (process_single_reg_class_operands): Call
7337         ira_init_register_move_cost_if_necessary.  Use
7338         ira_register_move_cost instead of ira_get_register_move_cost.
7339
7340         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7341
7342         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7343
7344         * ira-costs.c: Fix formatting.
7345         (cost_classes, cost_classes_num): Remove.
7346         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7347         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7348         (cost_classes_del, cost_classes_htab): New.
7349         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7350         (initiate_regno_cost_classes, setup_cost_classes): New.
7351         (setup_regno_cost_classes_by_aclass): New.
7352         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7353         (record_reg_classes): Use regno_cost_classes instead of
7354         cost_classes.  Move checking opposite operand up.
7355         (record_address_regs): Use regno_cost_classes
7356         instead of cost_classes.
7357         (scan_one_insn): Ditto.  Use always general register.
7358         (print_allocno_costs): Use regno_cost_classes instead of
7359         cost_classes.
7360         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7361         (find_costs_and_classes): Set up cost classes for each registers.
7362         Use also their mode for this.  Use regno_cost_classes instead of
7363         cost_classes.
7364         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7365         cost_classes.
7366         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7367         (ira_costs, ira_set_pseudo_classes): Call
7368         initiate_regno_cost_classes and finish_regno_cost_classes.
7369
7370         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7371
7372         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7373
7374         * target.def (ira_cover_classes): Remove.
7375
7376         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7377
7378         * doc/tm.texi.in: Ditto.
7379
7380         * ira-conflicts.c: Remove mentioning cover classes from the file.
7381         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7382         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7383
7384         * targhooks.c (default_ira_cover_classes): Remove.
7385
7386         * targhooks.h (default_ira_cover_classes): Ditto.
7387
7388         * haifa-sched.c: Remove mentioning cover classes from the file.
7389         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7390         ira_pressure_classes and ira_pressure_classes_num instead of
7391         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7392         sched_regno_pressure_class instead of sched_regno_cover_class.
7393         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7394         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7395
7396         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7397         classes from the file.
7398         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7399         (struct object_hard_regs, struct object_hard_regs_node): New.
7400         (struct ira_object): New members profitable_hard_regs,
7401         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7402         (struct ira_allocno): Rename cover_class to aclass.  Rename
7403         cover_class_cost and updated_cover_class_cost to class_cost and
7404         updated_class_cost.  Remove splay_removed_p and
7405         left_conflict_size.  Add new members colorable_p.
7406         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7407         (ALLOCNO_COLORABLE_P): New macro.
7408         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7409         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7410         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7411         (OBJECT_...): Rename parameter C to O.
7412         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7413         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7414         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7415         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7416         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7417         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7418         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7419         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7420         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7421         x_ira_reg_class_subunion.
7422         (ira_max_memory_move_cost, ira_max_register_move_cost)
7423         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7424         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7425         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7426         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7427         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7428         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7429         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7430         (ira_tune_allocno_costs_and_cover_classes): Rename to
7431         ira_tune_allocno_costs.
7432         (ira_debug_hard_regs_forest): New.
7433         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7434         (ira_object_conflict_iter_next): Fix comments.
7435         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7436         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7437         cover_class to aclass.
7438         (ira_allocate_and_accumulate_costs): Ditto.
7439         (ira_allocate_and_set_or_copy_costs): Ditto.
7440
7441         * opts.c (decode_options): Remove ira_cover_class check.
7442
7443         * ira-color.c: Remove mentioning cover classes from the file.  Use
7444         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7445         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7446         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7447         (splay-tree.h): Remove include.
7448         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7449         before copy_freq_compare_func.
7450         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7451         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7452         New definitions.
7453         (hard_regs_roots, hard_regs_node_vec): Ditto.
7454         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7455         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7456         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7457         (create_new_object_hard_regs_node): Ditto.
7458         (add_new_object_hard_regs_node_to_forest): Ditto.
7459         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7460         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7461         Ditto.
7462         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7463         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7464         (remove_unused_object_hard_regs_nodes): Ditto.
7465         (enumerate_object_hard_regs_nodes): Ditto.
7466         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7467         (object_hard_regs_subnode_t): Ditto.
7468         (struct object_hard_regs_subnode): Ditto.
7469         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7470         (setup_object_hard_regs_subnode_index): Ditto.
7471         (get_object_hard_regs_subnodes_num): Ditto.
7472         (form_object_hard_regs_nodes_forest): Ditto.
7473         (finish_object_hard_regs_nodes_tree): Ditto.
7474         (finish_object_hard_regs_nodes_forest): Ditto.
7475         (allocnos_have_intersected_live_ranges_p): Rename to
7476         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7477         (pseudos_have_intersected_live_ranges_p): Rename to
7478         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7479         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7480         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7481         (update_copy_costs): Remove assert.  Skip cost update if the hard
7482         reg does not belong the class.
7483         (assign_hard_reg): Process only profitable hard regs.
7484         (uncolorable_allocnos_num): Make it scalar.
7485         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7486         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7487         and ira_reg_class_max_nregs.
7488         (bucket_allocno_compare_func): Check frequency first.
7489         (sort_bucket): Add compare function as a parameter.
7490         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7491         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7492         (push_allocno_to_stack): Rewrite for checking new allocno
7493         colorability.
7494         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7495         (push_only_colorable): Pass new parameter to sort_bucket.
7496         (push_allocno_to_spill): Remove.
7497         (allocno_spill_priority_compare): Make it inline and rewrite.
7498         (splay_tree_allocate, splay_tree_free): Remove.
7499         (allocno_spill_sort_compare): New function.
7500         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7501         build and use splay tree.  Choose first allocno in uncolorable
7502         allocno bucket to spill.  Remove setting spill cost.
7503         (all_conflicting_hard_regs): Remove.
7504         (setup_allocno_available_regs_num): Check only profitable hard
7505         regs.  Print info about hard regs nodes.
7506         (setup_allocno_left_conflicts_size): Remove.
7507         (put_allocno_into_bucket): Don't call
7508         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7509         (improve_allocation): New.
7510         (color_allocnos): Call setup_profitable_hard_regs,
7511         form_object_hard_regs_nodes_forest, improve_allocation,
7512         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7513         (print_loop_title): Use pressure classes.
7514         (color_allocnso): Ditto.
7515         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7516         and allocnos_for_spilling.
7517         (ira_sort_regnos_for_alter_reg): Don't setup members
7518         {first,next}_coalesced_allocno.
7519         (color): Remove allocating and freeing removed_splay_allocno_vec.
7520         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7521         prohibited_class_mode_regs.
7522
7523         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7524         formatting.
7525         (update_allocno_pressure_excess_length): Use pressure classes.
7526         (inc_register_pressure, dec_register_pressure): Check for pressure
7527         class.
7528         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7529         pressure class.  Use ira_reg_class_nregs instead of
7530         ira_reg_class_max_nregs.
7531         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7532         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7533         (single_reg_class): Use ira_reg_class_nregs instead of
7534         ira_reg_class_max_nregs.
7535         (process_bb_node_lives): Use pressure classes.
7536
7537         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7538         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7539         (change_loop): Use pressure classes.
7540         (modify_move_list): Call ira_set_allocno_class instead of
7541         ira_set_allocno_cover_class.
7542
7543         * ira-build.c: Remove mentioning cover classes from the file.  Use
7544         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7545         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7546         ALLOCNO_UPDATED_CLASS_COST instead of
7547         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7548         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7549         (ira_create_allocno): Remove initialization of
7550         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7551         ALLOCNO_COLORABLE_P.
7552         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7553         Update conflict regs for the objects.
7554         (create_cap_allocno): Remove assert.  Don't propagate
7555         ALLOCNO_AVAILABLE_REGS_NUM.
7556         (ira_free_allocno_costs): New function.
7557         (finish_allocno): Change a part of code into call of
7558         ira_free_allocno_costs.
7559         (low_pressure_loop_node_p): Use pressure classes.
7560         (object_range_compare_func): Don't compare classes.
7561         (setup_min_max_conflict_allocno_ids): Ditto.
7562
7563         * loop-invariant.c: Remove mentioning cover classes from the file.
7564         Use ira_pressure_classes and ira_pressure_classes_num instead of
7565         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7566         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7567         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7568         Use reg_allocno_class instead of reg_cover_class.
7569         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7570         STACK_REG_COVER_CLASS.
7571         (get_regno_cover_class): Rename to get_regno_pressure_class.
7572         (move_loop_invariants): Initialize and finalize regstat.
7573
7574         * ira.c: Remove mentioning cover classes from the file.  Add
7575         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7576         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7577         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7578         setup_class_subset_and_memory_move_costs.
7579         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7580         (setup_cover_and_important_classes): Rename to
7581         setup_allocno_and_important_classes.
7582         (setup_class_translate_array): New.
7583         (setup_class_translate): Call it for allocno and pressure classes.
7584         (cover_class_order): Rename to allocno_class_order.
7585         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7586         of ira_class_translate.
7587         (reorder_important_classes): Set up ira_important_class_nums.
7588         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7589         (print_class_cover): Rename to print_classes.  Add parameter.
7590         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7591         Print pressure classes too.
7592         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7593         setup_reg_subclasses.
7594         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7595         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7596         (setup_prohibited_class_mode_regs): Use
7597         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7598         (clarify_prohibited_class_mode_regs): New function.
7599         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7600         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7601         (ira_init_once): Initialize them.
7602         (free_register_move_costs): Process them.
7603         (ira_init): Move calls of find_reg_classes and
7604         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7605         Call clarify_prohibited_class_mode_regs.
7606         (ira_no_alloc_reg): Remove.
7607         (too_high_register_pressure_p): Use pressure classes.
7608
7609         * sched-deps.c: Remove mentioning cover classes from the file.
7610         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7611         ira_pressure_classes and ira_pressure_classes_num instead of
7612         ira_reg_class_cover_size and ira_reg_class_cover.
7613         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7614         sched_regno_pressure_class instead of sched_regno_cover_class.
7615         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7616         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7617
7618         * ira.h: Add 2010 to Copyright.
7619         (ira_no_alloc_reg): Remove external.
7620         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7621         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7622         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7623         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7624         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7625         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7626         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7627         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7628         x_ira_no_alloc_regs.
7629         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7630         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7631         ira_allocno_classes_num and ira_allocno_classes.
7632         (ira_class_translate): Rename to ira_allocno_class_translate.
7633         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7634         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7635         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7636         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7637         (ira_no_alloc_regs): New.
7638
7639         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7640         classes from the file.  Use ALLOCNO_CLASS instead of
7641         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7642         ALLOCNO_COVER_CLASS_COST.
7643         (regno_cover_class): Rename to regno_aclass.
7644         (record_reg_classes): Use ira_reg_class_subunion instead of
7645         ira_reg_class_union.
7646         (record_address_regs): Check overflow.
7647         (scan_one_insn): Ditto.
7648         (print_allocno_costs): Print total mem cost fore regional allocation.
7649         (print_pseudo_costs): Use REG_N_REFS.
7650         (find_costs_and_classes): Use classes intersected with them on the
7651         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7652         ira_reg_class_union.  Use ira_allocno_class_translate and
7653         regno_aclass instead of ira_class_translate and regno_cover_class.
7654         Modify code for finding regno_aclass.  Setup preferred classes for
7655         the next pass.
7656         (setup_allocno_cover_class_and_costs): Rename to
7657         setup_allocno_class_and_costs.  Use regno_aclass instead of
7658         regno_cover_class.  Use ira_set_allocno_class instead of
7659         ira_set_allocno_cover_class.
7660         (init_costs, finish_costs): Use regno_aclass instead of
7661         regno_cover_class.
7662         (ira_costs): Use setup_allocno_class_and_costs instead of
7663         setup_allocno_cover_class_and_costs.
7664         (ira_tune_allocno_costs_and_cover_classes): Rename to
7665         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7666         by processing objects.  Use ira_reg_class_max_nregs instead of
7667         ira_reg_class_nregs.
7668
7669         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7670
7671         * sched-int.h: Remove mentioning cover classes from the file.
7672         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7673
7674         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
7675         classes from the file.
7676         (struct reg_pref): Rename coverclass into allocnoclass.
7677         (reg_cover_class): Rename to reg_allocno_class.
7678
7679         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
7680
7681         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7682
7683         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7684
7685         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7686
7687         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7688
7689         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7690
7691         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7692
7693         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7694
7695         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7696
7697         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7698
7699         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7700         (i386_ira_cover_classes): Ditto.
7701
7702         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7703
7704         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7705
7706         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7707
7708         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7709
7710         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7711
7712         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7713
7714         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7715         (mips_ira_cover_classes): Ditto.
7716
7717         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7718
7719         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7720
7721         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7722
7723         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7724
7725         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7726
7727         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7728         (IRA_COVER_CLASSES_VSX): Ditto.
7729
7730         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7731         (rs6000_ira_cover_classes): Ditto.
7732
7733         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7734
7735         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7736
7737         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7738
7739         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7740
7741         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7742
7743         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7744
7745         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7746
7747         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7748
7749         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7750
7751         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7752
7753 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR debug/48253
7756         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7757         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7758         dw_fde_unlikely_section_end_label, cold_in_std_section,
7759         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7760         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7761         fields.
7762         (output_fde): Use dw_fde_second_{begin,end} if second is
7763         true, otherwise dw_fde_{begin,end}.
7764         (output_call_frame_info): Test dw_fde_second_begin != NULL
7765         instead of dw_fde_switched_sections.
7766         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7767         fields, initialize new fields.  Initialize in_std_section
7768         unconditionally from the first partition.
7769         (dwarf2out_end_epilogue): Don't override dw_fde_end when
7770         dw_fde_second_begin is non-NULL.
7771         (dwarf2out_switch_text_section): Stop initializing removed
7772         dw_fde_struct fields, initialize new fields, initialize
7773         also dw_fde_end here.  Set dw_fde_switch_cfi even when
7774         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
7775         (struct var_loc_list_def): Add last_before_switch field.
7776         (arange_table, arange_table_allocated, arange_table_in_use,
7777         ARANGE_TABLE_INCREMENT, add_arange): Removed.
7778         (size_of_aranges): Count !in_std_section and !second_in_std_section
7779         hunks in fdes, instead of looking at arange_table_in_use.
7780         (output_aranges): Add aranges_length argument, don't call
7781         size_of_aranges here.  Instead of using aranges_table*
7782         emit ranges for fdes when !in_std_section resp.
7783         !second_in_std_section.
7784         (dw_loc_list): Break ranges crossing section switch.
7785         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
7786         use dw_fde_second_end instead of dw_fde_end as end of last range.
7787         (gen_subprogram_die): Don't call add_arange.  Use
7788         dw_fde_{begin,end} for first partition and if switched
7789         section dw_fde_second_{begin,end} for the second.
7790         (var_location_switch_text_section_1,
7791         var_location_switch_text_section): New functions.
7792         (dwarf2out_begin_function): Initialize cold_text_section even
7793         when function_section () isn't text_section.
7794         (prune_unused_types): Don't walk arange_table.
7795         (dwarf2out_finish): Don't needlessly test
7796         flag_reorder_blocks_and_partition when testing cold_text_section_used.
7797         If info_section_emitted, call size_of_aranges and if it indicates
7798         non-empty .debug_aranges, call output_aranges with the computed
7799         size.  Stop using removed dw_fde_struct fields, use
7800         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7801         for second.
7802
7803         PR debug/48203
7804         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7805         create ENTRY_VALUE if incoming or address of incoming's MEM
7806         is a hard REG.
7807         * dwarf2out.c (mem_loc_descriptor): Don't emit
7808         DW_OP_GNU_entry_value of DW_OP_fbreg.
7809         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7810         on ENTRY_VALUE is able to find the canonical parameter VALUE.
7811         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7812         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7813         ENTRY_VALUE_EXPs.
7814         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7815         is a REG_P or MEM_P with REG_P address, compute hash directly
7816         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7817         (preserve_only_constants): Don't clear VALUES forwaring
7818         ENTRY_VALUE to some other VALUE.
7819
7820 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
7821
7822         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7823         instead of GEN_INT.
7824
7825 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7826
7827         * cfgexpand.c (expand_gimple_cond): Always set the source location and
7828         block before expanding the statement.
7829         (expand_gimple_stmt_1): Likewise.  Set them here...
7830         (expand_gimple_stmt): ...and not here.  Tidy.
7831         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7832         unknown.
7833
7834 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7835
7836         * Makefile.in: New rule for cprop.o.
7837         * gcse.c: Move constant/copy propagation to cprop.c.
7838         (compute_local_properties): Only handle expression tables.
7839         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7840         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7841         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7842         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7843         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
7844         compute_cprop_data, find_used_regs, try_replace_reg,
7845         find_avail_set, cprop_jump, constprop_register, cprop_insn,
7846         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7847         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7848         find_bypass_set, reg_killed_on_edge, bypass_block,
7849         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7850         execute_rtl_cprop, pass_rtl_cprop): Move to...
7851         * cprop.c: ...here.  New file, constant/copy propagation for RTL
7852         moved from gcse.c to here with minor cleanups in duplicated code.
7853
7854 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7855
7856         * config/i386/i386.c (flag_opts): Fix a typo in
7857         -mavx256-split-unaligned-store.
7858
7859 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7860
7861         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7862         LIBCALL_VALUE): Remove macros.
7863         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7864         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7865         (h8300_function_value, h8300_libcall_value,
7866         h8300_function_value_regno_p): New functions.
7867
7868 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7869
7870         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7871
7872 2011-03-28  Jeff Law  <law@redhat.com>
7873
7874         * tree-ssa-threadupdate.c (redirect_edges): Call
7875         create_edge_and_update_destination_phis as needed.
7876         (create_edge_and_update_destination_phis): Accept new BB argument.
7877         All callers updated.
7878         (thread_block): Do not update the profile when threading around
7879         intermediate blocks.
7880         (thread_single_edge): Likewise.
7881         (determine_bb_domination_status): If BB is not a successor of the
7882         loop header, return NONDOMINATING.
7883         (register_jump_thread): Note when we register a jump thread around
7884         an intermediate block.
7885         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7886         (thread_across_edge): Use it.
7887
7888 2011-03-28  Tristan Gingold  <gingold@adacore.com>
7889
7890         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7891         when for_return is 2.
7892
7893 2011-03-28  Jeff Law  <law@redhat.com>
7894
7895         * var-tracking.c (canonicalize_values_mark): Delete unused
7896         lhs assignment.
7897         (canonicalize_values_star, set_variable_part): Likewise.
7898         (clobber_variable_part, delete_variable_part): Likewise.
7899
7900 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7901
7902         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7903
7904 2011-03-28  Martin Jambor  <mjambor@suse.cz>
7905
7906         * tree-inline.c (expand_call_inline): Do not check that destination
7907         node is analyzed.
7908         (optimize_inline_calls): Assert that destination node is analyzed.
7909         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7910         not call tree_lowering_passes.
7911         * cgraph.h (cgraph_analyze_function): Declare.
7912         * cgraphunit.c (cgraph_analyze_function): Make public.
7913
7914 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
7915
7916         * config/sparc/sparc-opts.h: New.
7917         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7918         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7919         (sparc_option_override): Store processor_type enumeration rather
7920         than string in cpu_default.  Remove name and enumeration from
7921         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
7922         without using sparc_select.  Use target_flags_explicit instead of
7923         fpu_option_set.
7924         * config/sparc/sparc.h (enum processor_type): Move to
7925         sparc-opts.h.
7926         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7927         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7928         HeaderInclude entry.
7929         (mcpu=, mtune=): Use Var and Enum.
7930         (sparc_processor_type): New Enum and EnumValue entries.
7931
7932 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7933             Iain Sandoe  <iains@gcc.gnu.org>
7934
7935         PR target/48245
7936         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7937
7938 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7939
7940         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7941         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7942         Insert new statements at it in lieu of STMT.
7943         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7944         * tree-vect-stmts.c (vectorizable_store): Likewise.
7945         (vectorizable_load): Likewise.
7946
7947 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
7948
7949         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7950         (divtf3): Ditto.
7951         (multf3): Ditto.
7952         (subtf3): Ditto.
7953
7954 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7955
7956         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7957         unaligned 256bit load/store.
7958         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7959         (*avx_movdqu<avxmodesuffix>): Likewise.
7960
7961 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7962
7963         PR target/48288
7964         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7965         * config/pa/pa.md (iordi3): Use new predicate in expander.
7966         (iorsi3): Likewise.
7967
7968 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
7969
7970         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
7971         FUNCTION_VALUE_REGNO_P): Remove macros.
7972         * config/mips/mips-protos.h (mips_function_value): Remove.
7973         * config/mips/mips.c (mips_function_value): Rename to...
7974         (mips_function_value_1): ... this. Make static.  Handle receiving
7975         the function type in 'fn_decl_or_type' argument.
7976         (mips_function_value, mips_libcall_value,
7977         mips_function_value_regno_p): New function.
7978         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7979         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7980
7981 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7982
7983         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7984         and -mavx256-split-unaligned-store.
7985         (ix86_option_override_internal): Split 32-byte AVX unaligned
7986         load/store by default.
7987         (ix86_avx256_split_vector_move_misalign): New.
7988         (ix86_expand_vector_move_misalign): Use it.
7989
7990         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7991         -mavx256-split-unaligned-store.
7992
7993         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7994         256bit load/store.  Generate unaligned store on misaligned memory
7995         operand.
7996         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7997         256bit load/store.
7998         (*avx_movdqu<avxmodesuffix>): Likewise.
7999
8000         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8001         -mavx256-split-unaligned-store.
8002
8003 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8004
8005         PR target/38598
8006         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8007         Update commentary.
8008
8009 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8010
8011         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8012         opno arguments with an expand_operand.  Use create_input_operand.
8013         (mips_prepare_builtin_target): Delete.
8014         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8015         functions.
8016         (mips_expand_builtin_direct): Use create_output_operand and
8017         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8018         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8019         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8020
8021 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8022
8023         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8024         function.
8025         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8026
8027 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8028
8029         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8030         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8031         basic blocks and call commit_edge_insertions directly.
8032         (fixup_abnormal_edges): Move from here to...
8033         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8034         on the edges and return whether some have actually been inserted.
8035         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8036         compensation code.
8037
8038 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8039
8040         PR rtl-optimization/48144
8041         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8042         (merge_expr_data): ... here.
8043         (av_set_intersect): Rename to av_set_code_motion_filter.
8044         Update all callers.  Call merge_history_vect when an expression
8045         is found in both sets.
8046         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8047
8048 2011-03-26  Alan Modra  <amodra@gmail.com>
8049
8050         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8051         cmodel medium addresses.
8052         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8053         64-bit gpr loads and stores.
8054         (rs6000_secondary_reload_ppc64): New function.
8055         * config/rs6000/rs6000-protos.h: Declare it.
8056         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8057
8058 2011-03-26  Alan Modra  <amodra@gmail.com>
8059
8060         PR target/47487
8061         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8062         GNU Go in traceback table.
8063
8064 2011-03-25  Richard Henderson  <rth@redhat.com>
8065
8066         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8067         if there are exactly 6 operands.
8068         (set_storage_via_setmem): Similarly.
8069
8070 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8071
8072         * collect2.c (write_c_file_stat): Handle backslash
8073         as right-hand directory separator.
8074         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8075         checking just for slash.
8076         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8077         instead of checking for trailing slash.
8078         * gcc.c (record_temp_file): Use filename_cmp instead
8079         of strcmp.
8080         (do_spec_1): Likewise.
8081         (replace_outfile_spec_function): Likewise.
8082         (is_directory): Use filename_ncmp instead of strncmp.
8083         (print_multilib_info): Likewise.
8084         * gcov.c (find_source): Use filename_cmp instead
8085         instead of strcmp.
8086         (make_gcov_file_name): Fix order of slash/backslash
8087         checks.
8088         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8089         (add_standard_paths): Likewise.
8090         * mips-tfile.c (saber_stop): Handle backslash.
8091         * prefix.c (update_path): Use filename_ncmp instead of
8092         strncmp.
8093         * profile.c (output_location): Use filename_cmp instead
8094         of strcmp.
8095         * read-md.c (handle_toplevel_file): Handle backslash.
8096         * tlink.c (frob_extension):  Likewise.
8097         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8098         strcmp.
8099         * tree-dump.c (dequeue_and_dump): Handle backslash.
8100         * tree.c (get_file_function_name): Likewise.
8101         * gengtype.c (read_input_list): Likewise.
8102         (get_file_realbasename): Likewise.
8103         (get_output_file_with_visibility): Use filename_cmp
8104         instead of strcmp.
8105
8106 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8107
8108         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8109         case to VFPv1.
8110
8111 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8112
8113         * fold-const.c (expr_location_or): New function.
8114         (fold_truth_not_expr): Call it.
8115
8116 2011-03-25  Jeff Law  <law@redhat.com>
8117
8118         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8119         va_end.
8120         * c-family/c-common.c (def_fn_type): Likewise.
8121         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8122         * emit-rtl.c (gen_rtvec): Likewise.
8123         * lto/lto-lang.c (def_fn_type): Likewise.
8124
8125 2011-03-25  Richard Guenther  <rguenther@suse.de>
8126
8127         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8128         also generate copies.
8129         (fini_copy_prop): Handle constant values properly.
8130
8131 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8132
8133         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8134         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8135         (hash_loc_operands, compare_loc_operands): Handle
8136         DW_OP_GNU_entry_value.
8137
8138 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8139
8140         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8141         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8142         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8143         comment and use macro TARGET_64BIT_MS_ABI instead.
8144         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8145         and change default behavior for 32-bit MS_ABI.
8146         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8147         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8148         32-bit, too.
8149         (ix86_cfun_abi): Likewise.
8150         (ix86_maybe_switch_abi): Adjust comment.
8151         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8152         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8153         instead of checking for SYSV_ABI.
8154         (ix86_nsaved_sseregs): Likewise.
8155         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8156         to 16 bytes.
8157         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8158         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8159         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8160         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8161         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8162
8163 2011-03-25  Richard Guenther  <rguenther@suse.de>
8164
8165         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8166         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8167         (verify_gimple): Remove.
8168         * tree-cfg.c (verify_gimple_call): Merge verification
8169         from verify_stmts.
8170         (verify_gimple_phi): Merge verification from verify_stmts.
8171         (verify_gimple_label): New function.
8172         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8173         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8174         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8175         (verify_stmts): Rename to verify_gimple_in_cfg.
8176         (verify_gimple_in_cfg): New function.
8177         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8178         * tree-ssa.c (verify_ssa): Likewise.
8179         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8180
8181 2011-03-25  Richard Guenther  <rguenther@suse.de>
8182
8183         * passes.c (init_optimization_passes): Add FRE pass after
8184         early SRA.
8185
8186 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8187             Andrew Stubbs  <ams@codesourcery.com>
8188
8189         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8190         for Cortex-A8.
8191         (arm_movdi_vfp_cortexa8): New pattern.
8192         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8193         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8194         instructions when tuning for Cortex-A8.  Set attribute "arch".
8195         * config/arm/arm.md: Move include arm-tune.md up a bit.
8196         (define_attr "arch"): Add "onlya8" and "nota8" values.
8197         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8198
8199 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8200
8201         PR bootstrap/48282
8202         Revert:
8203         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8204
8205         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8206         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8207         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8208         * passes.c (init_optimization_passes): Move
8209         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8210
8211 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8212
8213         * c-typeck.c (comptypes_internal): Replace target
8214         hook call of comp_type_attributes by version in tree.c file.
8215         * gimple.c (gimple_types_compatible_p_1): Likewise.
8216         * tree-ssa.c (useless_type_conversion_p): Likewise.
8217         * tree.c (build_type_attribute_qual_variant): Likewise.
8218         (attribute_value_equal): New static helper function.
8219         (comp_type_attributes): New function.
8220         (merge_attributes): Use attribute_value_equal for comparison.
8221         (attribute_list_contained): Likewise.
8222         * tree.h (comp_type_attributes): New prototype.
8223
8224 2011-03-25  Richard Guenther  <rguenther@suse.de>
8225
8226         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8227         of complex types at -O0.
8228         (verify_gimple_assign_binary): Likewise.
8229         (verify_gimple_assign_ternary): Likewise.
8230
8231 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8232
8233         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8234         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8235
8236 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8237
8238         PR debug/48041
8239         * dwarf2out.c (output_abbrev_section): Only write table when
8240         abbrev_die_table_in_use > 1.
8241
8242 2011-02-24  Richard Henderson  <rth@redhat.com>
8243
8244         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8245         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8246         (alpha_expand_unaligned_load_words): Use extql.
8247         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8248         (emit_insxl): Handle all modes for consistency.
8249
8250 2011-02-24  Richard Henderson  <rth@redhat.com>
8251
8252         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8253         (alpha_expand_unaligned_load): Likewise.
8254         (alpha_expand_unaligned_store): Likewise.
8255         (alpha_expand_unaligned_load_words): Likewise.
8256         (alpha_expand_unaligned_store_words): Likewise.
8257         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8258         (alpha_split_lock_test_and_set_12): Likewise.
8259         (print_operand, alpha_fold_builtin_extxx): Likewise.
8260         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8261         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8262         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8263         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8264         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8265         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8266         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8267         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8268         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8269         (extwl, extll, extql): Similarly.
8270         (inswh, inslh, insqh): Similarly.
8271         (mskbl, mskwl, mskll, mskql): Similarly.
8272         (mskwh, msklh, mskqh): Similarly.
8273
8274 2011-02-24  Richard Henderson  <rth@redhat.com>
8275
8276         * config/alpha/alpha.md (attribute isa): Add er, ner.
8277         (attribute enabled): Handle them.
8278         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8279
8280 2011-02-24  Richard Henderson  <rth@redhat.com>
8281
8282         * config/alpha/alpha.md (attribute isa): Add vms.
8283         (attribute enabled): Handle it.
8284         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8285         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8286         (*movtf): Rename from *movtf_internal for consistency.
8287         (*movsi): Merge with *movsi_nt_vms.
8288         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8289         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8290         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8291         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8292
8293 2011-02-24  Richard Henderson  <rth@redhat.com>
8294
8295         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8296         (extendqisi2, extendhisi2): Likewise.
8297         (extendqidi2): Simplify BWX/non-BWX expansions.
8298         (extendhidi2): Similarly.
8299
8300 2011-02-24  Richard Henderson  <rth@redhat.com>
8301
8302         * config/alpha/alpha.md (attribute isa): New.
8303         (attribute enabled): New.
8304         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8305         (zero_extendqisi2, zero_extendqidi2): Similarly.
8306         (zero_extendhisi2, zero_extendhidi2): Similarly.
8307         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8308
8309 2011-02-24  Richard Henderson  <rth@redhat.com>
8310
8311         * config/alpha/predicates.md (input_operand): Revert last change;
8312         update comment to mention 32-bit VMS rather than Windows.
8313
8314 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8315
8316         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8317         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8318         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8319         * passes.c (init_optimization_passes): Move
8320         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8321
8322 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8323
8324         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8325
8326 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8327
8328         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8329         correctly.
8330
8331 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8332
8333         PR debug/48204
8334         * simplify-rtx.c (simplify_const_unary_operation): Call
8335         real_convert when changing mode class with FLOAT_EXTEND.
8336
8337 2011-03-24  Nick Clifton  <nickc@redhat.com>
8338
8339         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8340         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8341         * config/rx/rx.c (rx_option_override): Set align_jumps,
8342         align_loops and align_labels if not set by the user.
8343         (rx_align_for_label): New function.
8344         (rx_max_skip_for_label): New function.
8345         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8346         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8347         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8348         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8349         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8350
8351 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8352
8353         PR rtl-optimization/48263
8354         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8355         and original commutative_p handling.  Use maybe_gen_insn.
8356
8357 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8358
8359         * reload.c (find_reloads_subreg_address): Add address_reloaded
8360         parameter and return true there if the full address has been
8361         reloaded.
8362         (find_reloads_toplev): Pass address_reloaded flag.
8363         (find_reloads_address_1): Don't use address_reloaded parameter.
8364
8365 2011-03-24  Jeff Law  <law@redhat.com>
8366
8367         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8368         unused variable "ann".
8369         (remove_unused_locals): Likewise.
8370
8371         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8372         statement.
8373
8374         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8375         after it is freed.
8376
8377 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8378
8379         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8380         for invalid symbolic addresses.
8381         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8382         larl operands.
8383
8384 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8387         the argument in calls to fold_truth_not_expr.
8388
8389 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8390
8391         * tree.c (record_node_allocation_statistics): New function.
8392         (make_node_stat, copy_node_stat, build_string): Call it.
8393         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8394         (build1_stat, build_omp_clause): Likewise.
8395
8396 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8397
8398         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8399         last commit.
8400
8401 2011-03-24  Richard Guenther  <rguenther@suse.de>
8402
8403         PR tree-optimization/48271
8404         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8405         blocks that still exist.
8406
8407 2011-03-24  Richard Guenther  <rguenther@suse.de>
8408
8409         PR tree-optimization/48270
8410         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8411         not free datarefs before ddrs.
8412
8413 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8414
8415         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8416         from the address built for a reference with variable offset.
8417
8418 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8419
8420         PR target/48237
8421         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8422         alternatives that can be handled with movq or movabsq insn.
8423         (*movdf_internal): Disable for !TARGET_64BIT.
8424         (*movdf_internal_nointeger): Ditto.
8425         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8426
8427 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8428
8429         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8430         (FUNCTION_ARG_ADVANCE): Likewise.
8431         * tm.texi.in: Change references to them to hook references.
8432         * tm.texi: Regenerate.
8433         * targhooks.c (default_function_arg): Eliminate check for target macro.
8434         (default_function_incoming_arg): Likewise.
8435         (default_function_arg_advance): Likewise.
8436         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8437         (function_arg_advance): Likewise.
8438         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8439
8440 2011-03-24  Richard Guenther  <rguenther@suse.de>
8441
8442         PR middle-end/48269
8443         * tree-object-size.c (addr_object_size): Do not double-account
8444         for MEM_REF offsets.
8445
8446 2011-03-24  Diego Novillo  <dnovillo@google.com>
8447
8448         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8449         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8450         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8451         Update all users.
8452         (lto_input_string): Rename from input_string.  Make extern.
8453         Update all users.
8454         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8455         output_string_with_length.
8456         Output 0 to indicate a non-NULL string.  Update all callers to
8457         not emit 0.
8458         (lto_output_string): Rename from output_string.  Make extern.
8459         Update all users.
8460         (lto_output_decl_state_streams): Make extern.
8461         (lto_output_decl_state_refs): Make extern.
8462         * lto-streamer.h (lto_input_string): Declare.
8463         (lto_input_data_block): Declare.
8464         (lto_output_string): Declare.
8465         (lto_output_string_with_length): Declare.
8466         (lto_output_decl_state_streams): Declare.
8467         (lto_output_decl_state_refs): Declare.
8468
8469 2011-03-24  Richard Guenther  <rguenther@suse.de>
8470
8471         PR tree-optimization/46562
8472         * tree.c (build_invariant_address): New function.
8473         * tree.h (build_invariant_address): Declare.
8474         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8475         a renamed function moved ...
8476         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8477         Take valueization callback parameter.
8478         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8479         * gimple-fold.h: New file.
8480         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8481         (ccp_fold, fold_const_aggregate_ref,
8482         fold_ctor_reference, fold_nonarray_ctor_reference,
8483         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8484         get_base_constructor): Move ...
8485         * gimple-fold.c: ... here.
8486         (gimple_fold_stmt_to_constant_1): New function
8487         split out from ccp_fold.  Take a valueization callback parameter.
8488         Valueize all operands.
8489         (gimple_fold_stmt_to_constant): New wrapper function.
8490         (fold_const_aggregate_ref_1): New function split out from
8491         fold_const_aggregate_ref.  Take a valueization callback parameter.
8492         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8493         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8494         invariant POINTER_PLUS_EXPRs to invariant form.
8495         (vn_valueize): New function.
8496         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8497         * tree-vrp.c (vrp_valueize): New function.
8498         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8499         to fold statements to constants.
8500         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8501         function declarations.
8502         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8503         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8504
8505 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8506
8507         * config/h8300/predicates.md (jump_address_operand): Fix register
8508         mode check.
8509
8510 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8511
8512         * doc/invoke.texi (max-stores-to-sink): Document.
8513         * params.h (MAX_STORES_TO_SINK): Define.
8514         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8515         if either vectorization or if-conversion is disabled.
8516         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8517         tree-vect-data-refs.c vect_equal_offsets.
8518         (dr_equal_offsets_p): New function.
8519         (find_data_references_in_bb): Remove static.
8520         * tree-data-ref.h (find_data_references_in_bb): Declare.
8521         (dr_equal_offsets_p): Likewise.
8522         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8523         (vect_drs_dependent_in_basic_block): Update calls to
8524         vect_equal_offsets.
8525         (vect_check_interleaving): Likewise.
8526         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8527         (cond_if_else_store_replacement): Rename to...
8528         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8529         documentation.
8530         (cond_if_else_store_replacement): New function.
8531         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8532         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8533
8534 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8535
8536         PR target/46934
8537         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8538         to subtract lower bound instead of GEN_INT().
8539
8540 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8541
8542         PR other/48179
8543         PR other/48221
8544         PR other/48234
8545         * doc/extend.texi (Alignment): Move section to match order in TOC.
8546         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8547         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8548
8549 2011-03-23  Jeff Law  <law@redhat.com>
8550
8551         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8552         before removing the edge.
8553
8554         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8555         it may have been freed by redirect_branch_edge or
8556         redirect_edge_succ_nodup.
8557
8558 2011-03-23  Richard Guenther  <rguenther@suse.de>
8559
8560         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8561         (check_va_list_escapes): Likewise.
8562         (check_all_va_list_escapes): Likewise.
8563
8564 2011-03-23  Richard Guenther  <rguenther@suse.de>
8565
8566         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8567         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8568         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8569         (alias.o): Likewise.
8570         (ipa-type-escape.o): Remove.
8571         (ipa-struct-reorg.o): Likewise.
8572         (GTFILES): Remove ipa-struct-reorg.c.
8573         * alias.c: Do not include ipa-type-escape.h.
8574         * tree-ssa-alias.c: Likewise.
8575         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8576         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8577         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8578         and ipa-type-escape passes.
8579         * tree-pass.h (pass_ipa_type_escape): Remove.
8580         (pass_ipa_struct_reorg): Likewise.
8581         * ipa-struct-reorg.h: Remove.
8582         * ipa-struct-reorg.c: Likewise.
8583         * ipa-type-escape.h: Likewise.
8584         * ipa-type-escape.c: Likewise.
8585         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8586         (--param struct-reorg-cold-struct-ratio): Likewise.
8587         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8588         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8589         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8590
8591 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8592
8593         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8594         cpu attribute value.
8595         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8596         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8597         * config/s390/s390.c (processor_flags_table): New constant array.
8598         (s390_handle_arch_option): Remove.
8599         (s390_handle_option): Remove s390_handle_arch_option invocations
8600         and OPT_mwarn_framesize_ handling.
8601         (s390_option_override): Remove s390_handle_arch_option invocation.
8602         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8603         warnings.
8604         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8605         * config/s390/s390.opt (s390_tune, s390_arch)
8606         (march=): Replace s390_arch_option enum and values with
8607         processor_type.  Set variable name to s390_arch.  Set
8608         initialization value.
8609         (mtune=): Replace s390_arch_option with processor_type.  Set
8610         variable name to s390_tune.  Set initialization value.
8611
8612 2011-03-23  Julian Brown  <julian@codesourcery.com>
8613
8614         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8615         accesses which are not naturally aligned.
8616
8617 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8618
8619         PR target/47553
8620         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8621
8622 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8623
8624         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8625         parameter from "int" to "enum insn_code".
8626         (expand_operand_type): New enum.
8627         (expand_operand): New structure.
8628         (create_expand_operand): New function.
8629         (create_fixed_operand, create_output_operand): Likewise
8630         (create_input_operand, create_convert_operand_to): Likewise.
8631         (create_convert_operand_from, create_address_operand): Likewise.
8632         (create_integer_operand): Likewise.
8633         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8634         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8635         (expand_insn, expand_jump_insn): Likewise.
8636         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8637         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8638         (expand_movstr, expand_builtin___clear_cache): Likewise.
8639         (expand_builtin_lock_release): Likewise.
8640         * explow.c (allocate_dynamic_stack_space): Likewise.
8641         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8642         and use the default handling in that case.
8643         * expmed.c (check_predicate_volatile_ok): Delete.
8644         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8645         (emit_cstore): Likewise.
8646         * expr.c (emit_block_move_via_movmem): Likewise.
8647         (set_storage_via_setmem, expand_assignment): Likewise.
8648         (emit_storent_insn, try_casesi): Likewise.
8649         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8650         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8651         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8652         (expand_twoval_unop, expand_twoval_binop): Likewise.
8653         (expand_unop_direct, emit_indirect_jump): Likewise.
8654         (emit_conditional_move, vector_compare_rtx): Likewise.
8655         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8656         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8657         (expand_sync_lock_test_and_set): Likewise.
8658         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8659         (emit_unop_insn): Likewise.
8660         (expand_copysign_absneg): Change icode to an insn_code.
8661         (create_convert_operand_from_type): New function.
8662         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8663         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8664         (expand_insn, expand_jump_insn): Likewise.
8665         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8666         than const_int_operand for operand 2.
8667
8668 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8669
8670         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8671         if possible.
8672
8673 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8674
8675         * emit-rtl.c (emit_pattern_before_noloc): New function.
8676         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8677         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8678         (emit_pattern_after_noloc): New function.
8679         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8680         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8681
8682 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8683
8684         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8685         (__ffsDI2): Likewise.
8686
8687 2011-03-22  Richard Henderson  <rth@redhat.com>
8688
8689         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8690         of !TARGET_ABI_OPEN_VMS.
8691         (alpha_trampoline_init, alpha_start_function): Likewise.
8692         (alpha_expand_epilogue, alpha_file_start): Likewise.
8693         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8694         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8695         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8696         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8697         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8698
8699 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8700
8701         * config/s390/s390-opts.h: New.
8702         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8703         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8704         s390_stack_guard): Remove.
8705         (s390_handle_arch_option): Return void.  Take enum
8706         s390_arch_option value instead of string and searching array.
8707         (s390_handle_option): Don't assert that global structures are in
8708         use.  Access variables via opts pointer.  Use error_at.  Don't use
8709         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8710         s390_handle_arch_option.
8711         (s390_option_override): Update call to s390_handle_arch_option.
8712         (s390_emit_prologue): Use %d format for s390_stack_size in
8713         diagnostic.  Use %wd for HOST_WIDE_INT.
8714         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8715         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8716         * config/s390/s390.opt (config/s390/s390-opts.h): New
8717         HeaderInclude entry.
8718         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8719         s390_arch_flags, s390_warn_framesize): New Variable entries.
8720         (s390_arch_option): New Enum and EnumValue entries.
8721         (march=): Use Enum instead of Var.
8722         (mstack-guard=, mstack-size=): Use UInteger and Var.
8723         (mtune=): Use Enum.
8724
8725 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8726
8727         * config/score/score.c (score_handle_option): Don't assert that
8728         global structures are in use.  Access target_flags via opts
8729         pointer.  Use value of -march= option to determine target_flags
8730         settings.
8731         * config/score/score.opt (march=): Use Enum.
8732         (score_arch): New Enum and EnumValue entries.
8733
8734 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8735
8736         * config/mep/mep.c (option_mtiny_specified): Remove.
8737         (mep_option_override): Move register handling for -mivc2 from
8738         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
8739         instead of option_mtiny_specified.
8740         (mep_handle_option): Access target_flags via opts pointer.  Don't
8741         assert that global structures are in use.  Defer part of -mivc2
8742         handling and move it to mep_option_override.
8743         * config/mep/mep.opt (IVC2): New Mask entry.
8744         (mivc2): Use Var and Defer instead of Mask.
8745
8746 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8747
8748         * config/v850/v850-opts.h: New.
8749         * config/v850/v850.c (small_memory): Replace with
8750         small_memory_physical_max array.  Make that array static const.
8751         (v850_handle_memory_option): Take integer value of argument.  Take
8752         gcc_options pointer, option text and location.  Return void.
8753         Update for changes to small memory structures.
8754         (v850_handle_option): Access target_flags via opts pointer.  Don't
8755         assert that global structures are in use.  Update calls to
8756         v850_handle_memory_option.
8757         (v850_encode_data_area): Update references to small memory settings.
8758         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
8759         (enum small_memory_type): Move to v850-opts.h.
8760         * config/v850/v850.opt (config/v850/v850-opts.h): New
8761         HeaderInclude entry.
8762         (small_memory_max): New Variable entry.
8763         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
8764         (mtda, mzda): Likewise.
8765
8766 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8767
8768         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8769         pointer.  Don't assert that global structures are in use.
8770
8771 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8772
8773         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8774         via opts pointer.  Don't assert that global structures are in use.
8775
8776 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8777
8778         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8779         (munix=93): Use Var.
8780         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8781         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8782         * config/pa/pa-opts.h: New.
8783         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8784         (pa_handle_option): Don't assert that global structures are in
8785         use.  Access target_flags via opts pointer.  Don't handle
8786         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8787         OPT_munix_98 here.
8788         (pa_option_override): Handle deferred OPT_mfixed_range_.
8789
8790 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8791
8792         * config/mn10300/mn10300-opts.h: New.
8793         * config/mn10300/mn10300.c (mn10300_processor,
8794         mn10300_tune_string): Remove.
8795         (mn10300_handle_option): Don't assert that global structures are
8796         in use.  Access mn10300_processor via opts pointer.  Don't handle
8797         OPT_mtune_ here.
8798         * config/mn10300/mn10300.h (enum processor_type): Move to
8799         mn10300-opts.h.
8800         (mn10300_processor): Remove.
8801         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8802         HeaderInclude entry.
8803         (mn10300_processor): New Variable entry.
8804         (mtune=): Use Var.
8805
8806 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8807
8808         * config/microblaze/microblaze.c: Don't include opts.h.
8809         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8810         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8811         (mno-clearbss): Use Var and Warn.
8812
8813 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8814
8815         * config/m32r/m32r-opts.h: New.
8816         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8817         (m32r_handle_option): Don't assert that global structures are in
8818         use.  Access target_flags and m32r_cache_flush_func via opts
8819         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
8820         OPT_mno_flush_trap here.
8821         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8822         include of m32r-opts.h.
8823         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8824         HeaderInclude entry.
8825         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8826         (mmodel=): Use Enum and Var.
8827         (m32r_model): New Enum and EnumValue entries.
8828         (mno-flush-trap): Use Var.
8829         (msdata=): Use Enum and Var.
8830         (m32r_sdata): New Enum and EnumValue entries.
8831
8832 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8833
8834         * config/m32c/m32c.c: Don't include opts.h.
8835         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8836         m32c_handle_option): Remove.
8837         (m32c_option_override): Check global_options_set.x_target_memregs
8838         instead of target_memregs_set.
8839         * config/m32c/m32c.h (target_memregs): Remove.
8840         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8841         variable.
8842
8843 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8844
8845         * config/iq2000/iq2000-opts.h: New.
8846         * config/iq2000/iq2000.c: Don't include opts.h.
8847         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
8848         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
8849         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8850         HeaderInclude entry.
8851         (iq2000_tune): New Variable entry.
8852         (march=): Add comment.  Use Enum.
8853         (iq2000_arch): New Enum and EnumValue entries.
8854         (mcpu=): Use Enum and Var.
8855         (iq2000_tune): New Enum and EnumValue entries.
8856
8857 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8858
8859         * config/ia64/ia64-opts.h: New.
8860         * config/ia64/ia64.c (ia64_tune): Remove.
8861         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8862         here.  Use error_at.
8863         (ia64_option_override): Handle deferred OPT_mfixed_range_.
8864         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8865         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8866         HeaderInclude entry.
8867         (ia64_tune): New Variable entry.
8868         (mfixed-range=): Use Defer and Var.
8869         (mtune=): Use Enum and Var.
8870         (ia64_tune): New Enum and EnumValue entries.
8871
8872 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8873
8874         * config/frv/frv-opts.h: New.
8875         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8876         frv-opts.h.
8877         (frv_cpu_type): Remove.
8878         * config/frv/frv.c: Don't include opts.h.
8879         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
8880         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
8881         (frv_cpu_type): New Variable entry.
8882         (frv_cpu): New Enum and EnumValue entries.
8883
8884 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8885
8886         * config/cris/cris.c (cris_handle_option): Access target_flags via
8887         opts pointer.  Don't assert that global structures are in use.
8888         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8889         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8890
8891 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8892
8893         * config/bfin/bfin-opts.h: New.
8894         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8895         bfin_si_revision, bfin_workarounds): Remove.
8896         (bfin_cpus): Make static const.
8897         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8898         not bfin_lib_id_given.
8899         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
8900         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
8901         pointer. Use error_at.  Don't assert that global structures are in use.
8902         * config/bfin/bfin.h: Include bfin-opts.h.
8903         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8904         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8905         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8906         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8907         entries.
8908
8909 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8910
8911         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8912         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8913         or -msoft-float here.
8914         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8915         -msoft-float and -mhard-float.
8916         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
8917         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8918         msoft-float.
8919         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8920         -msoft-float.
8921         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8922         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8923         not mhard-float.
8924         (LIBGCC_SPEC): Don't handle -msoft-float.
8925         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8926         -mhard-float.
8927         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8928         msoft-float.
8929         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8930         -mfloat-abi=*, not -msoft-float and -mhard-float.
8931         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8932         -msoft-float.
8933         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8934         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8935         mhard-float and msoft-float.
8936         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8937         mfloat-abi=soft in comments, not mhard-float and msoft-float.
8938         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8939         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8940         mhard-float.
8941         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8942         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8943         msoft-float.
8944         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8945         not mhard-float.
8946         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8947         not msoft-float.
8948
8949 2011-03-22  Richard Henderson  <rth@redhat.com>
8950
8951         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8952         TARGET_ABI_WINDOWS_NT.
8953         (alpha_output_function_end_prologue): Likewise.
8954         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8955         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8956         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8957         (trap, *movsi_nt_vms): Likewise.
8958         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8959         (*tablejump_osf_nt_internal): Remove.
8960         * config/alpha/predicates.md (input_operand): Only test Pmode.
8961
8962 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8963
8964         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8965         via opts pointer.  Use error_at.  Don't assert that global
8966         structures are in use.
8967
8968 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8969
8970         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8971         (ix86_handle_option): Access ix86_isa_flags and
8972         ix86_isa_flags_explicit via opts pointer.  Don't assert that
8973         global structures are in use.
8974         (ix86_function_specific_save, ix86_function_specific_restore):
8975         Update ix86_isa_flags_explicit field name.
8976         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
8977         (ix86_isa_flags_explicit): Rename TargetSave entry to
8978         x_ix86_isa_flags_explicit.
8979
8980 2011-03-22  Richard Henderson  <rth@redhat.com>
8981
8982         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8983         (alpha_option_override, direct_return): Likewise.
8984         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8985         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8986         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8987         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8988         (alpha_expand_epilogue, alpha_end_function): Likewise.
8989         (alpha_init_libfuncs): Likewise.
8990         (struct machine_function): Remove unicosmk members.
8991         (print_operand) ['t']: Remove.
8992         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8993         unicosmk_output_module_name, unicosmk_output_common,
8994         current_section_align, unicosmk_output_text_section_asm_op,
8995         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8996         unicosmk_section_type_flags, unicosmk_unique_section,
8997         unicosmk_asm_named_section, unicosmk_insert_attributes,
8998         unicosmk_output_align, unicosmk_defer_case_vector,
8999         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9000         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9001         unicosmk_output_ssib, unicosmk_add_call_info_word,
9002         unicosmk_extern_head, unicosmk_output_default_externs,
9003         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9004         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9005         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9006         * config/alpha/alpha-protos.h: Update.
9007         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9008         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9009         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9010         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9011         (*mulsi_se, mulvsi3): Likewise.
9012         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9013         (*divmodsi_internal, call, call_value, realign): Likewise.
9014         (moddi3, umoddi3): Likewise; remove duplicate expander.
9015         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9016         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9017         (*movdi_nofix): Remove r/U alternative.
9018         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9019         * config/alpha/constraints.md ("U"): Remove.
9020         * config/alpha/predicates.md (call_operand"): Don't test
9021         TARGET_ABI_UNICOSMK.
9022
9023 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9024
9025         * target.def (handle_option): Take gcc_options and
9026         cl_decoded_option pointers and location_t.
9027         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9028         * doc/tm.texi: Regenerate.
9029         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9030         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9031         * lto-opts.c (lto_reissue_options): Generate option structure for
9032         targetm.handle_option call.
9033         * opts.c (target_handle_option): Update call to
9034         targetm.handle_option.  Remove assertions about values now passed
9035         down to hook.
9036         * targhooks.c (default_target_handle_option): New.
9037         * targhooks.h (default_target_handle_option): Declare.
9038         * config/alpha/alpha.c: Include opts.h.
9039         (alpha_handle_option): Update to new hook interface.
9040         * config/arm/arm.c: Include opts.h.
9041         (arm_handle_option): Update to new hook interface.
9042         * config/arm/t-arm (arm.o): Update dependencies.
9043         * config/bfin/bfin.c: Include opts.h.
9044         (bfin_handle_option): Update to new hook interface.
9045         * config/cris/cris.c: Include opts.h.
9046         (cris_handle_option): Update to new hook interface.
9047         * config/frv/frv.c: Include opts.h.
9048         (frv_handle_option): Update to new hook interface.
9049         * config/i386/i386.c: Include opts.h.
9050         (ix86_handle_option): Update to new hook interface.
9051         (ix86_valid_target_attribute_inner_p): Generate option structure
9052         for call to ix86_handle_option.
9053         * config/i386/t-i386 (i386.o): Update dependencies.
9054         * config/ia64/ia64.c: Include opts.h.
9055         (ia64_handle_option): Update to new hook interface.
9056         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9057         * config/iq2000/iq2000.c: Include opts.h.
9058         (iq2000_handle_option): Update to new hook interface.
9059         * config/m32c/m32c.c: Include opts.h.
9060         (m32c_handle_option): Update to new hook interface.
9061         * config/m32r/m32r.c: Include opts.h.
9062         (m32r_handle_option): Update to new hook interface.
9063         * config/m68k/m68k.c: Include opts.h.
9064         (m68k_handle_option): Update to new hook interface.
9065         * config/mep/mep.c: Include opts.h.
9066         (mep_handle_option): Update to new hook interface.
9067         * config/microblaze/microblaze.c: Include opts.h.
9068         (microblaze_handle_option): Update to new hook interface.
9069         * config/mips/mips.c: Include opts.h.
9070         (mips_handle_option): Update to new hook interface.
9071         * config/mn10300/mn10300.c: Include opts.h.
9072         (mn10300_handle_option): Update to new hook interface.
9073         * config/pa/pa.c: Include opts.h.
9074         (pa_handle_option): Update to new hook interface.
9075         * config/pdp11/pdp11.c: Include opts.h.
9076         (pdp11_handle_option): Update to new hook interface.
9077         * config/rs6000/rs6000.c: Include opts.h.
9078         (rs6000_handle_option): Update to new hook interface.
9079         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9080         * config/rx/rx.c: Include opts.h.
9081         (rx_handle_option): Update to new hook interface.
9082         * config/s390/s390.c: Include opts.h.
9083         (s390_handle_option): Update to new hook interface.
9084         * config/score/score.c: Include opts.h.
9085         (score_handle_option): Update to new hook interface.
9086         * config/sh/sh.c: Include opts.h.
9087         (sh_handle_option): Update to new hook interface.
9088         * config/sparc/sparc.c: Include opts.h.
9089         (sparc_handle_option): Update to new hook interface.
9090         * config/v850/v850.c: Include opts.h.
9091         (v850_handle_option): Update to new hook interface.
9092
9093 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9094
9095         * gcc.c (driver_unknown_option_callback): Only permit and save
9096         unknown -Wno- options.
9097         (driver_wrong_lang_callback): Save options directly instead of via
9098         driver_unknown_option_callback.
9099
9100 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9101
9102         * combine.c (simplify_set): Try harder to find the best CC mode when
9103         simplifying a nested COMPARE on the RHS.
9104
9105 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9106
9107         * config/alpha/gnu.h: Remove.
9108         * config/arc: Remove directory.
9109         * config/arm/netbsd.h: Remove.
9110         * config/arm/t-pe: Remove.
9111         * config/crx: Remove directory.
9112         * config/i386/netbsd.h: Remove.
9113         * config/m68hc11: Remove directory.
9114         * config/m68k/uclinux-oldabi.h: Remove.
9115         * config/mcore/mcore-pe.h: Remove.
9116         * config/mcore/t-mcore-pe: Remove.
9117         * config/netbsd-aout.h: Remove.
9118         * config/rs6000/gnu.h: Remove.
9119         * config/sh/sh-symbian.h: Remove.
9120         * config/sh/symbian-base.c: Remove.
9121         * config/sh/symbian-c.c: Remove.
9122         * config/sh/symbian-cxx.c: Remove.
9123         * config/sh/symbian-post.h: Remove.
9124         * config/sh/symbian-pre.h: Remove.
9125         * config/sh/t-symbian: Remove.
9126         * config/svr3.h: Remove.
9127         * config/vax/netbsd.h: Remove.
9128         * config.build: Don't handle i[34567]86-*-pe.
9129         * config.gcc: Remove handling of deprecations for most deprecated
9130         targets.
9131         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9132         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9133         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9134         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9135         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9136         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9137         Remove cases.
9138         * config.host: Don't handle i[34567]86-*-pe.
9139         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9140         (ASM_SPEC32): Don't handle -mcall-gnu.
9141         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9142         -mcall-gnu.
9143         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9144         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9145         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9146         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9147         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9148         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9149         conditional on SYMBIAN.
9150         * configure.ac: Don't handle powerpc*-*-gnu*.
9151         * configure: Regenerate.
9152         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9153         * doc/install-old.texi (m6811, m6812): Don't mention.
9154         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9155         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9156         (m68k-uclinuxoldabi): Don't mention.
9157         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9158         Remove.
9159         (-mcall-gnu): Remove.
9160         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9161         families): Remove constraint documentation.
9162
9163 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9164
9165         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9166         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9167         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9168
9169 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9170
9171         PR target/48226
9172         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9173         vector when peeking at the next token for vector, don't expand the
9174         keywords.
9175
9176 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9177
9178         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9179         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9180         * config/avr/avr.c (init_cumulative_args)
9181         (avr_function_arg_advance): Use it.
9182         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9183         sibcall epilogues.
9184         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9185         (avr_function_ok_for_sibcall): ...this new function.
9186         (avr_lookup_function_attribute1): New static Function.
9187         (avr_naked_function_p, interrupt_function_p)
9188         (signal_function_p, avr_OS_task_function_p)
9189         (avr_OS_main_function_p): Use it.
9190         * config/avr/avr.md ("sibcall", "sibcall_value")
9191         ("sibcall_epilogue"): New expander.
9192         ("*call_insn", "*call_value_insn"): New insn.
9193         ("call_insn", "call_value_insn"): Remove
9194         ("call", "call_value", "epilogue"): Change expander to handle
9195         sibling calls.
9196
9197 2011-03-21  Nick Clifton  <nickc@redhat.com>
9198
9199         * doc/invoke.texi (Overall Options): Move closing brace to end of
9200         options list.
9201         (Optimization Options): Add missing @gol.
9202         (Directory Options): Likewise.
9203         (i386 and x86-64 Options): Likewise.
9204         (RS6000 and PowerPC Options): Likewise.
9205         (i386 and x86-64 Windows Options): Likewise.
9206         (V850 Options): Add text missing from descriptions.
9207
9208 2011-03-22  Richard Henderson  <rth@redhat.com>
9209
9210         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9211         (avr_incoming_return_addr_rtx): New.
9212         (emit_push_byte): New.
9213         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9214         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9215         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9216         (emit_pop_byte): New.
9217         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9218         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9219         (INCOMING_RETURN_ADDR_RTX): New.
9220         (INCOMING_FRAME_SP_OFFSET): New.
9221         (ARG_POINTER_CFA_OFFSET): New.
9222         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9223         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9224         (pophi): Remove.
9225
9226         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9227
9228 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9229
9230         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9231         (FUNCTION_ARG_ADVANCE): Likewise.
9232         * tm.texi.in: Change references to them to hook references.
9233         * tm.texi: Regenerate.
9234         * targhooks.c (default_function_arg): Eliminate check for target
9235         macro.
9236         (default_function_incoming_arg): Likewise.
9237         (default_function_arg_advance): Likewise.
9238         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9239         (function_arg_advance): Likewise.
9240         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9241
9242 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9243
9244         * tree.c (build_call_1): New function.
9245         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9246
9247 2011-03-22  Richard Guenther  <rguenther@suse.de>
9248
9249         PR tree-optimization/48228
9250         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9251         for single-arg PHIs.
9252
9253 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9254
9255         PR rtl-optimization/48143
9256         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9257         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9258         sse2_cvtps2pd): Likewise.
9259
9260 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9261
9262         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9263
9264 2011-03-22  Richard Guenther  <rguenther@suse.de>
9265
9266         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9267         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9268         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9269         and REALIGN_LOAD_EXPR.
9270         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9271         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9272         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9273         DOT_PROD_EXPR case ...
9274         (expand_expr_real_2): ... here.
9275         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9276         and REALIGN_LOAD_EXPR.
9277         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9278         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9279         (vect_create_epilog_for_reduction): Likewise.
9280         (vectorizable_reduction): Likewise.
9281         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9282         * tree-vect-stmts.c (vectorizable_load): Likewise.
9283
9284 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9285
9286         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9287
9288 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9289
9290         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9291         handling for PLTOFF/GOTOFF.
9292
9293 2011-03-22  Nick Clifton  <nickc@redhat.com>
9294
9295         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9296         trailing backslash from the end of the macro definition.
9297
9298 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9299
9300         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9301         and PLT unspecs.
9302
9303 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9304
9305         * expr.h (prepare_operand): Move to...
9306         * optabs.h (prepare_operand): ...here and change the insn code
9307         parameter from "int" to "enum insn_code".
9308         (insn_operand_matches): Declare.
9309         * expr.c (init_expr_target): Use insn_operand_matches.
9310         (compress_float_constant): Likewise.
9311         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9312         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9313         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9314         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9315         Likewise.
9316         (gen_cond_trap): Likewise.
9317         (prepare_operand): Likewise.  Change icode to an insn_code.
9318         (insn_operand_matches): New function.
9319         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9320         * reload1.c (gen_reload): Likewise.
9321         * targhooks.c (default_secondary_reload): Likewise.
9322
9323 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9324
9325         * config/alpha/alpha.md (unspec): New define_c_enum.
9326         (unspecv): Ditto.
9327
9328 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9329
9330         PR debug/48214
9331         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9332         between a call and its CALL_ARG_LOCATION note.
9333
9334 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9335
9336         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9337
9338 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9339
9340         PR c/42544
9341         PR c/48197
9342         * c-common.c (shorten_compare): If primopN is first sign-extended
9343         to opN and then zero-extended to result type, set primopN to opN.
9344
9345 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9346
9347         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9348         for barrier handlers.
9349
9350 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9351
9352         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9353         UNSPEC constants to be in the unspec enumeration, and redefine
9354         all UNSPECV constants to be in the unspecv enumeration, so that
9355         dumps print which unspec/unspec_volatile this is.
9356         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9357         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9358         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9359         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9360         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9361
9362         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9363         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9364         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9365         * config/rs6000/sync.md (isync, lwsync): Ditto.
9366
9367 2011-03-21  Richard Guenther  <rguenther@suse.de>
9368
9369         * params.def (lto-min-partition): Fix typo.
9370
9371 2011-03-21  Richard Guenther  <rguenther@suse.de>
9372
9373         PR c/47939
9374         * c-decl.c (grokdeclarator): Drop to the main variant only
9375         for array types.  Drop flag_gen_aux_info check.
9376
9377 2011-03-21  Richard Guenther  <rguenther@suse.de>
9378
9379         PR translation/47911
9380         * params.def (lto-partitions): Fix typo.
9381         (lto-min-partition): Fix wording.
9382
9383 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9384
9385         * config/rs6000/t-freebsd: Remove duplication from file.
9386
9387 2011-03-21  Richard Guenther  <rguenther@suse.de>
9388
9389         PR middle-end/47661
9390         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9391
9392 2011-03-21  Richard Guenther  <rguenther@suse.de>
9393
9394         PR lto/48210
9395         * params.def (lto-partitions): Require at least 1 partition.
9396
9397 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9398
9399         * gthr-solaris.h: Remove.
9400         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9401         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9402         (LIB_SPEC): Likewise.
9403         * config/sol2.opt (threads): Remove.
9404         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9405         (sparc*-*-solaris2*): Likewise.
9406         * configure.ac (enable_threads): Enable solaris support.
9407         * configure: Regenerate.
9408         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9409         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9410         solaris.
9411
9412 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9413
9414         * config.gcc: Obsolete *-*-solaris2.8*.
9415         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9416
9417 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9418
9419         PR bootstrap/48135
9420         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9421         reference.  Solaris 8 perl works.
9422
9423 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9424
9425         PR bootstrap/48135
9426         * doc/install.texi (Prerequisites): Move jar etc. up.
9427         Explain support library version requirements.
9428
9429 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9430
9431         PR bootstrap/48135
9432         * doc/install.texi (Prerequisites): Move Perl to build
9433         requirements.  Always necessary on Solaris 2 with Sun ld.
9434
9435 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9436
9437         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9438         binutils 2.21.
9439         (Specific, i?86-*-solaris2.[89]): Likewise.
9440         (Specific, i?86-*-solaris2.10): Likewise.
9441         (Specific, mips-sgi-irix6): Likewise.
9442         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9443         Update for binutils 2.21.
9444
9445 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9446
9447         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9448         Allow -fuse-linker-plugin for non-default plugin linker.
9449         * configure: Regenerate.
9450
9451 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9452
9453         PR bootstrap/48167
9454         * gengtype.c (files_rules): Added rule for cp/parser.h.
9455
9456 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9457
9458         PR target/48213
9459         * config/s390/s390.c (s390_delegitimize_address): Don't call
9460         lowpart_subreg if orig_x has BLKmode.
9461
9462 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9463
9464         PR target/12171
9465         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9466         * tree.h (attribute_spec): Add new member affects_type_identity.
9467         * attribs.c (empty_attribute_table): Adjust attribute_spec
9468         initializers.
9469         * config/alpha/alpha.c: Likewise.
9470         * config/arc/arc.c: Likewise.
9471         * config/arm/arm.c: Likewise.
9472         * config/avr/avr.c: Likewise.
9473         * config/bfin/bfin.c: Likewise.
9474         * config/crx/crx.c: Likewise.
9475         * config/darwin.h: Likewise.
9476         * config/h8300/h8300.c: Likewise.
9477         * config/i386/cygming.h: Likewise.
9478         * config/i386/i386.c: Likewise.
9479         * config/ia64/ia64.c: Likewise.
9480         * config/m32c/m32c.c: Likewise.
9481         * config/m32r/m32r.c: Likewise.
9482         * config/m68hc11/m68hc11.c: Likewise.
9483         * config/m68k/m68k.c: Likewise.
9484         * config/mcore/mcore.c: Likewise.
9485         * config/mep/mep.c: Likewise.
9486         * config/microblaze/microblaze.c: Likewise.
9487         * config/mips/mips.c: Likewise.
9488         * config/rs6000/rs6000.c: Likewise.
9489         * config/rx/rx.c: Likewise.
9490         * config/sh/sh.c: Likewise.
9491         * config/sol2.h: Likewise.
9492         * config/sparc/sparc.c: Likewise.
9493         * config/spu/spu.c: Likewise.
9494         * config/stormy16/stormy16.c: Likewise.
9495         * config/v850/v850.c: Likewise.
9496
9497 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9498
9499         * simplify-rtx.c (simplify_binary_operation_1): Handle
9500         (xor (and A B) C) case when B and C are both constants.
9501
9502 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9503
9504         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9505
9506 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9507
9508         PR bootstrap/48168
9509         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9510
9511 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9512
9513         PR rtl-optimization/48156
9514         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9515         assume df and df_lr are not NULL.
9516
9517 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9518
9519         PR debug/48023
9520         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9521         between a call and its CALL_ARG_LOCATION note.
9522
9523 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9524
9525         PR debug/48178
9526         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9527         between a call and its corresponding CALL_ARG_LOCATION note.
9528
9529 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9530
9531         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9532         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9533         * haifa-sched.c (setup_ref_regs): Ditto.
9534         * caller-save.c (add_used_regs_1): Ditto.
9535         * dse.c (look_for_hardregs): Ditto.
9536         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9537         * sched-rgn.c (check_live_1): Ditto.
9538
9539 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9540
9541         * c-decl.c (diagnose_mismatched_decls): Give an error for
9542         redefining a typedef with variably modified type.
9543
9544 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9545
9546         * c-decl.c (grokfield): Don't allow typedefs for structures or
9547         unions with no tag by default.
9548         * doc/extend.texi (Unnamed Fields): Update.
9549
9550 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9551
9552         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9553         Rewrite using indirect functions.
9554         (lwp_slwpcb): Ditto.
9555         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9556         (avx_vinsertf128<mode>): Ditto.
9557
9558 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9559
9560         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9561         unspecs.
9562
9563 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9564
9565         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9566         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9567
9568 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9569
9570         PR rtl-optimization/48170
9571         * gcse.c (hoist_code): Remove bogus asserts.
9572
9573 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9574
9575         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9576         computation for prologue/epilogue.
9577
9578 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9579
9580         * Makefile.in (check-consistency): Remove.
9581
9582 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9583
9584         PR debug/48176
9585         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9586         arange_table_in_use is 0, but either text_section_used or
9587         cold_text_section_used is true.  Don't call it if
9588         !info_section_emitted.
9589
9590 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9591
9592         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9593         FUNCTION_VALUE_REGNO_P): Remove.
9594         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9595         Remove.
9596         * config/avr/avr.c (avr_ret_register): Make static inline.
9597         (avr_function_value_regno_p): New function.
9598         (avr_libcall_value): Make static. Add 'func' argument.
9599         (avr_function_value): Make static. Rename 'func' argument to
9600         'fn_decl_or_type', forward it to avr_libcall_value. Call
9601         avr_ret_register function instead of RET_REGISTER macro.
9602         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9603
9604 2011-03-18  Jason Merrill  <jason@redhat.com>
9605
9606         PR c++/23372
9607         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9608
9609 2011-03-18  Richard Guenther  <rguenther@suse.de>
9610
9611         * doc/install.texi (--enable-gold): Remove.
9612         (--with-plugin-ld): Document.
9613         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9614
9615 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9616
9617         PR middle-end/47790
9618         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9619         again after expansion changes.
9620
9621 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9622
9623         * combine.c (try_combine): Do simplification only call of
9624         subst() on i2 even when i1 is present. Update comments.
9625
9626 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9627
9628         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9629         and UNSPEC_PCREL_SYMOFF.
9630
9631 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9632
9633         * config/s390/s390.md: Use define_c_enum for the unspec constant
9634         definitions.
9635
9636 2011-03-18  Richard Henderson  <rth@redhat.com>
9637             Jakub Jelinek  <jakub@redhat.com>
9638
9639         PR bootstrap/48161
9640         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9641         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9642
9643 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9644
9645         PR middle-end/47725
9646         * combine.c (cant_combine_insn_p): Don't check zero/sign
9647         extended hard registers.
9648
9649 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9650
9651         PR middle-end/47725
9652         * combine.c (cant_combine_insn_p): Check zero/sign extended
9653         hard registers.
9654
9655 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9656
9657         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9658         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9659         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9660         Change return type to bool.
9661         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9662
9663 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR debug/48163
9666         * var-tracking.c (prepare_call_arguments): If CALL target
9667         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9668         pc instead of looking it up using cselib_lookup and use
9669         Pmode for it if x has VOIDmode.
9670         * dwarf2out.c (gen_subprogram_die): If also both first and
9671         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9672
9673         PR debug/48163
9674         * function.c (assign_parms): For data.passed_pointer parms
9675         use MEM of data.entry_parm instead of data.entry_parm itself
9676         as DECL_INCOMING_RTL.
9677         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9678         also when passed and declared mode is the same, DECL_RTL
9679         is a MEM with pseudo as address and DECL_INCOMING_RTL is
9680         a MEM too.
9681
9682 2011-03-16  Jeff Law  <law@redhat.com>
9683
9684         PR rtl-optimization/37273
9685         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9686         handle them like argument loads from stack slots.  Do not double
9687         count memory for memory constants and argument loads from stack slots.
9688
9689 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9690
9691         PR debug/48160
9692         * var-tracking.c (prepare_call_arguments): Check SUBREG.
9693
9694 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9695
9696         PR target/48171
9697         * config/i386/i386.opt: Add Save to -mavx and -mfma.
9698
9699 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9700
9701         PR bootstrap/48153
9702         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9703         if dwarf_strict.
9704         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9705         Clear call_arg_locations and call_arg_loc_last always.
9706
9707         PR middle-end/48152
9708         * var-tracking.c (prepare_call_arguments): If argument needs to be
9709         passed by reference, adjust argtype and mode.
9710
9711 2011-03-17  Richard Guenther  <rguenther@suse.de>
9712
9713         PR middle-end/48134
9714         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9715         a value make sure to fold the statement.
9716
9717 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
9718
9719         PR target/43872
9720         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9721         return condition with !cfun->calls_alloca.
9722
9723 2011-03-17  Richard Guenther  <rguenther@suse.de>
9724
9725         PR bootstrap/48148
9726         * lto-cgraph.c (input_overwrite_node): Clear the abstract
9727         origin for decls in other ltrans units.
9728         (input_varpool_node): Likewise.
9729
9730 2011-03-17  Richard Guenther  <rguenther@suse.de>
9731
9732         PR middle-end/48165
9733         * tree-object-size.c (compute_object_offset): Properly return
9734         the offset operand of MEM_REFs as sizetype.
9735
9736 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9737
9738         PR rtl-optimization/48141
9739         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9740         * dse.c: Include params.h.
9741         (active_local_stores_len): New variable.
9742         (add_wild_read, dse_step1): Clear it when setting active_local_stores
9743         to NULL.
9744         (record_store, check_mem_read_rtx): Decrease it when removing
9745         from the chain.
9746         (scan_insn): Likewise.  Increase it when adding to chain, if it
9747         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9748         set active_local_stores to NULL before the addition.
9749         * Makefile.in (dse.o): Depend on $(PARAMS_H).
9750
9751         PR rtl-optimization/48141
9752         * dse.c (record_store): If no positions are needed in an insn
9753         that cannot be deleted, at least unchain it from active_local_stores.
9754
9755 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
9756
9757         PR debug/47510
9758         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9759         (lookup_type_die_strip_naming_typedef): ... here.
9760         (get_context_die): Use it.
9761         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9762         the anonymous struct named by the naming typedef.
9763
9764 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9765
9766         PR target/48154
9767         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9768         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9769
9770 2011-03-16  Jeff Law  <law@redhat.com>
9771
9772         * tree-vrp.c (identify_jump_threads): Slightly simplify type
9773         check for operands of conditional.  Allow type to be a pointer.
9774
9775 2011-03-16  Richard Guenther  <rguenther@suse.de>
9776
9777         PR tree-optimization/48149
9778         * fold-const.c (fold_binary_loc): Fold
9779         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9780
9781 2011-03-16  Richard Guenther  <rguenther@suse.de>
9782
9783         PR tree-optimization/26134
9784         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9785         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9786         (non_rewritable_mem_ref_base): Handle complex type component
9787         accesses, constrain offsets for vector and complex extracts
9788         more properly.
9789
9790 2011-03-16  Richard Guenther  <rguenther@suse.de>
9791
9792         PR tree-optimization/48146
9793         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9794         operands avoiding the need for renaming.
9795
9796 2011-03-16  Richard Guenther  <rguenther@suse.de>
9797
9798         * gimple-fold.c (maybe_fold_reference): Open-code relevant
9799         constant folding.  Move MEM_REF canonicalization first.
9800         Rely on fold_const_aggregate_ref for initializer folding.
9801         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9802
9803 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9804
9805         PR middle-end/48136
9806         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9807         arg0/arg1 or their arguments are always fold converted to matching
9808         types.
9809
9810         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9811         to nargs.
9812
9813 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9814
9815         PR lto/46944
9816         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9817         Handle in-tree gold.
9818         (ld_vers): Extract binutils version for gold.
9819         (gcc_cv_ld_hidden): Handle gold here.
9820         (gcc_cv_lto_plugin): Determine level of linker plugin support.
9821         * configure: Regenerate.
9822         * config.in: Regenerate.
9823         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9824         -fuse-linker-plugin otherwise.
9825         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
9826         (LINK_COMMAND_SPEC): Use it.
9827         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9828
9829 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9830
9831         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9832         * calls.c: Remove debug.h include.
9833         (emit_call_1): Don't call virtual_call_token debug hook.
9834         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9835         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9836         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9837         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9838         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9839         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9840         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9841         dwarf2out_virtual_call): Remove.
9842         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9843         copy_call_info and virtual_call hooks.
9844         (dwarf2out_init): Don't initialize vcall_insn_table,
9845         debug_dcall_section and debug_vcall_section.
9846         (prune_unused_types): Don't mark nodes from dcall_table.
9847         (dwarf2out_finish): Don't output dcall or vcall tables.
9848         * final.c (final_scan_insn): Don't call direct_call or
9849         virtual_call debug hooks.
9850         * debug.h (struct gcc_debug_hooks): Remove direct_call,
9851         virtual_call_token, copy_call_info and virtual_call hooks.
9852         (debug_nothing_uid): Remove prototype.
9853         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9854         copy_call_info and virtual_call hooks.
9855         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9856         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9857         * debug.c (do_nothing_debug_hooks): Likewise.
9858         (debug_nothing_uid): Remove.
9859         * doc/invoke.texi (-fenable-icf-debug): Remove.
9860         * common.opt (-fenable-icf-debug): Likewise.
9861
9862         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9863         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9864         call's MEM.  Handle functions returning aggregate through a hidden
9865         first pointer.  For virtual calls add clobbered pc to call arguments
9866         chain.
9867         * dwarf2out.c (gen_subprogram_die): Emit
9868         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9869         can't be emitted.
9870
9871         PR debug/45882
9872         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9873         * rtl.h (ENTRY_VALUE_EXP): Define.
9874         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9875         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9876         * print-rtl.c (print_rtx): Likewise.
9877         * gengtype.c (adjust_field_rtx_def): Likewise.
9878         * var-tracking.c (vt_add_function_parameter): Adjust
9879         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9880         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9881         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9882         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9883         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9884
9885         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9886         Call var_location debug hook even on CALL_INSNs.
9887         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9888         * rtl.def (ENTRY_VALUE): New.
9889         * dwarf2out.c: Include cfglayout.h.
9890         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9891         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9892         (struct call_arg_loc_node): New type.
9893         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9894         tail_call_site_count): New variables.
9895         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9896         DW_TAG_GNU_call_site_parameter.
9897         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9898         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9899         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9900         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9901         and DW_AT_GNU_all_source_call_sites.
9902         (mem_loc_descriptor): Handle ENTRY_VALUE.
9903         (add_src_coords_attributes): Don't add enything if
9904         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9905         (dwarf2out_abstract_function): Save and clear call_arg_location,
9906         call_site_count and tail_call_site_count around dwarf2out_decl call.
9907         (gen_call_site_die): New function.
9908         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9909         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9910         (dwarf2out_function_decl): Clear call_arg_locations,
9911         call_arg_loc_last, set call_site_count and tail_call_site_count
9912         to -1 and free block_map.
9913         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9914         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
9915         followed by any real instructions.
9916         (dwarf2out_begin_function): Set call_site_count and
9917         tail_call_site_count to 0.
9918         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9919         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9920         attempt to force a DIE for it and worst case remove the attribute.
9921         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9922         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9923         the decl itself.
9924         * var-tracking.c: Include tm_p.h.
9925         (vt_stack_adjustments): For calls call note_register_arguments.
9926         (argument_reg_set): New variable.
9927         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9928         ensure the VALUE is resolved.
9929         (call_arguments): New variable.
9930         (prepare_call_arguments): New function.
9931         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9932         (struct expand_loc_callback_data): Add ignore_cur_loc field.
9933         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9934         always use the best expression.
9935         (vt_expand_loc): Add ignore_cur_loc argument.
9936         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9937         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9938         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9939         note for all calls.
9940         (vt_add_function_parameter): Use cselib_lookup_from_insn.
9941         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9942         argument.  Don't call cselib_preserve_only_values and
9943         cselib_reset_table.
9944         (note_register_arguments): New function.
9945         (vt_initialize): Compute argument_reg_set.  Call
9946         vt_add_function_parameters before processing basic blocks instead of
9947         afterwards.  For calls call prepare_call_arguments before calling
9948         cselib_process_insn.
9949         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9950         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9951         (var-tracking.o): Depend on $(TM_P_H).
9952         * cfglayout.h (insn_scope): New prototype.
9953         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9954         * cfglayout.c (insn_scope): No longer static.
9955         * insn-notes.def (CALL_ARG_LOCATION): New.
9956         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9957         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9958         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9959         nothing for DECL_EXTERNAL BLOCK_VARS.
9960
9961 2011-03-16  Alan Modra  <amodra@gmail.com>
9962
9963         PR target/45844
9964         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9965         create invalid offset address for vsx splat insn.
9966         * config/rs6000/predicates.md (splat_input_operand): New.
9967         * config/rs6000/vsx.md (vsx_splat_*): Use it.
9968
9969 2011-03-15  Xinliang David Li  <davidxl@google.com>
9970
9971         PR c/47837
9972         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9973         (normalize_preds): New function.
9974         (is_use_properly_guarded): Normalize def predicates.
9975
9976 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9977
9978         PR target/46788
9979         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9980         in the output template.
9981
9982 2011-03-15  Richard Guenther  <rguenther@suse.de>
9983
9984         PR middle-end/47650
9985         * tree-pretty-print.c (dump_function_declaration): Properly
9986         dump unprototyped and varargs function types.
9987
9988 2011-03-15  Richard Guenther  <rguenther@suse.de>
9989
9990         PR tree-optimization/13954
9991         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9992         and friends.
9993
9994 2011-03-15  Richard Guenther  <rguenther@suse.de>
9995
9996         PR tree-optimization/48037
9997         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9998         selects into BIT_FIELD_REFs.
9999         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10000         vector select.
10001
10002 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10003
10004         PR tree-optimization/48129
10005         * builtins.c (fold_builtin_snprintf): Convert to type of
10006         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10007         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10008
10009 2011-03-15  Richard Guenther  <rguenther@suse.de>
10010
10011         PR tree-optimization/41490
10012         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10013         value but with VUSE.
10014         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10015         return statements.
10016         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10017         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10018         * tree-tailcall.c (find_tail_calls): Ignore returns.
10019
10020 2011-03-15  Richard Guenther  <rguenther@suse.de>
10021
10022         PR middle-end/48031
10023         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10024         or variable-indexed array accesses when in gimple form.
10025
10026 2011-03-15  Richard Guenther  <rguenther@suse.de>
10027
10028         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10029
10030 2011-03-15  Alan Modra  <amodra@gmail.com>
10031
10032         PR target/48032
10033         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10034         presume symbol_refs without a symbol_ref_decl are suitably
10035         aligned, nor other trees we may see here.  Handle anchor symbols.
10036         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10037         Check cmodel=medium addresses.  Adjust all calls.
10038         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10039         creating cmodel=medium optimized access to locals.
10040         * config/rs6000/constraints.md (R): Pass QImode to
10041         legitimate_constant_pool_address_p.
10042         * config/rs6000/predicates.md (input_operand): Pass mode to
10043         legitimate_constant_pool_address_p.
10044         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10045         Update prototype.
10046
10047 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10048
10049         PR target/48053
10050         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10051         64-bit constants being loaded into registers other than GPRs such
10052         as loading 0 into a VSX register.
10053
10054 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10055
10056         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10057
10058 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10059
10060         PR middle-end/47917
10061         * builtins.c (fold_builtin_snprintf): New function.
10062         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10063         (fold_builtin_4): Likewise.
10064
10065         PR middle-end/38878
10066         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10067         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10068         and C - X == X also strip nops from +/-/p+ operand.
10069         When optimizing -X == C, fold C to arg0's type.
10070
10071         PR debug/47946
10072         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10073         emit it as add_AT_int instead of add_AT_unsigned.
10074
10075 2011-03-14  Tom Tromey  <tromey@redhat.com>
10076
10077         * unwind-dw2.c: Include sys/sdt.h if it exists.
10078         (_Unwind_DebugHook): Use STAP_PROBE2.
10079         * config.in, configure: Rebuild.
10080         * configure.ac: Check for sys/sdt.h.
10081
10082 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10083
10084         * config/i386/i386.md (ROUND_FLOOR): New constant.
10085         (ROUND_CEIL): Ditto.
10086         (ROUND_TRUNC): Ditto.
10087         (ROUND_MXCSR): Ditto.
10088         (ROUND_NO_EXC): Ditto.
10089         (rint<mode>2): Use new defines instead of numerical constants.
10090         (floor<mode>2): Ditto.
10091         (ceil<mode>2): Ditto.
10092         (btrunc<mode>2): Ditto.
10093         * config/i386/i386-builtin-types.def: Define ROUND function type
10094         aliases.
10095         * config/i386/i386.c (enum ix86_builtins): Add
10096         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10097         (struct builtin_description): Add
10098         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10099         (ix86_expand_sse_round): New static function.
10100         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10101         function types.
10102         (ix86_builtin_vectorized_function): Handle
10103         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10104
10105 2011-03-14  Tom Tromey  <tromey@redhat.com>
10106
10107         * c-parser.c (c_parser_asm_string_literal): Clear
10108         warn_overlength_strings.
10109
10110 2011-03-14  Tom Tromey  <tromey@redhat.com>
10111
10112         * c-parser.c (disable_extension_diagnostics): Save
10113         warn_overlength_strings.
10114         (restore_extension_diagnostics): Restore warn_overlength_strings.
10115
10116 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10117
10118         * BASE-VER: Change to 4.7.0.
10119
10120 2011-03-14  Richard Guenther  <rguenther@suse.de>
10121
10122         PR middle-end/48098
10123         * tree.c (build_vector_from_val): Adjust assert to requirements
10124         and reality.
10125
10126 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10127
10128         PR bootstrap/48102
10129         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10130
10131 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10132
10133         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10134         terms of target_flags_explicit. Adjust copyright year.
10135
10136         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10137         * config/rs6000/t-freebsd: New file. Add override for
10138         LIB2FUNCS_EXTRA.
10139
10140 2011-03-13  Chris Demetriou  <cgd@google.com>
10141
10142         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10143         (-fno-diagnostics-show-option): this, to reflect current default.
10144         (-Werror=): Update text about -fno-diagnostics-show-option.
10145
10146 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10147
10148         PR target/48053
10149         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10150         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10151         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10152         mode is not V2DImode or V2DFmode.
10153         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10154         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10155         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10156         registers to 0.
10157         (movdi_internal64): Likewise.
10158
10159 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10160
10161         PR tree-optimization/47127
10162         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10163         parameter.
10164         (set_cloog_options): Same.
10165         (scop_to_clast): Same.
10166         (print_clast_stmt): Do not call cloog_state_malloc and
10167         cloog_state_free.
10168         (print_generated_program): Same.
10169         (gloog): Same.
10170         * graphite-clast-to-gimple.h (cloog_state): Declared.
10171         (scop_to_clast): Adjust declaration.
10172         * graphite.c (cloog_state): Defined here.
10173         (graphite_initialize): Call cloog_state_malloc.
10174         (graphite_finalize): Call cloog_state_free.
10175
10176 2011-03-11  Jason Merrill  <jason@redhat.com>
10177
10178         * attribs.c (lookup_attribute_spec): Take const_tree.
10179         * tree.h: Adjust.
10180
10181 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10182
10183         * config/sparc/sparc.c (sparc_option_override): Use
10184         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10185
10186 2011-03-11  Richard Guenther  <rguenther@suse.de>
10187
10188         PR tree-optimization/48067
10189         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10190         multiplication result will be only used once on the target
10191         stmt.
10192
10193 2011-03-11  Richard Guenther  <rguenther@suse.de>
10194
10195         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10196
10197 2011-03-11  Richard Guenther  <rguenther@suse.de>
10198
10199         PR lto/48073
10200         * tree.c (find_decls_types_r): Do not walk types only reachable
10201         from IDENTIFIER_NODEs.
10202
10203 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10204
10205         PR middle-end/48044
10206         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10207         all vnode->force_output nodes as needed.
10208
10209 2011-03-11  Jason Merrill  <jason@redhat.com>
10210
10211         PR c++/48069
10212         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10213         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10214
10215 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10216
10217         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10218         cgraph_node.
10219
10220 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10221
10222         PR tree-optimization/48063
10223         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10224         inline functions called once if !tree_can_inline_p (node->callers).
10225
10226 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10227
10228         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10229         extra_objs.
10230         * config/score/score3.c: Delete.
10231         * config/score/score3.h: Delete.
10232         * config/score/mul-div.S: Delete.
10233         * config/score/sfp-machine.h: Add new file.
10234         * config/score/constraints.md: Add new file.
10235         * config/score/t-score-softfp: Add new file.
10236         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10237         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10238         (score7_extra_constraint): Delete.
10239         (score7_option_override): Remove unused code.
10240         * config/score/score.c: Remove score3 and score5 define and code.
10241         * config/score/score.h: Remove score3 and score5 define and code.
10242         * config/score/score.md: Remove score3 template and unusual insn.
10243         * config/score/score.opt: Remove score3 and score5 options.
10244
10245 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10246
10247         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10248         when _HPUX_SOURCE is defined.
10249         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10250
10251 2011-03-10  Jason Merrill  <jason@redhat.com>
10252
10253         PR c++/48029
10254         * stor-layout.c (layout_type): Don't set structural equality
10255         on arrays of incomplete type.
10256         * tree.c (type_hash_eq): Handle comparing them properly.
10257
10258 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10259
10260         PR debug/48043
10261         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10262         result mode matches original rtl mode.
10263
10264 2011-03-10  Nick Clifton  <nickc@redhat.com>
10265
10266         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10267         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10268
10269 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10270
10271         PR rtl-optimization/47866
10272         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10273         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10274         if target wasn't scalar.
10275         * function.c (assign_stack_temp_for_type): Assert that neither
10276         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10277         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10278         macro.
10279         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10280
10281 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10282
10283         * config/s390/s390-protos.h (s390_label_align): New prototype.
10284         * config/s390/s390.c (s390_label_align): New function.
10285         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10286
10287 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10288
10289         PR target/47755
10290         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10291         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10292         (output_vec_const_move): Ditto.
10293
10294 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10295
10296         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10297         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10298         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10299         Change 'rclass' argument and result type to reg_class_t.
10300         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10301
10302 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10303
10304         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10305         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10306         (TARGET_MEMORY_MOVE_COST): Define.
10307         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10308
10309 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10310
10311         PR debug/47881
10312         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10313         removed anything.
10314
10315         PR tree-optimization/48022
10316         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10317         for EQ/NE_EXPR.
10318
10319 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10320
10321         PR debug/47991
10322         * var-tracking.c (find_use_val): Return NULL for
10323         cui->sets && cui->store_p BLKmode MEMs.
10324
10325 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10326
10327         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10328         Remove.
10329         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10330         xstormy16_print_operand_address): Remove.
10331         * config/stormy16/stormy16.c (xstormy16_print_operand,
10332         xstormy16_print_operand_address): Make static.
10333         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10334
10335 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10336
10337         PR target/47862
10338         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10339         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10340         before definition.
10341
10342 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10343
10344         PR bootstrap/48000
10345         * cfgloopmanip.c (fix_bb_placements): Return immediately
10346         if FROM is BASE_LOOP's header.
10347
10348 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10349
10350         * gimplify.c (gimplify_function_tree): Fix building calls
10351         to __builtin_return_address.
10352
10353 2011-03-07  Alan Modra  <amodra@gmail.com>
10354
10355         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10356         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10357         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10358         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10359         return_mode args.
10360         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10361         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10362         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10363         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10364         * config/rs6000/rs6000.c
10365         (rs6000_elf_end_indicate_exec_stack): Rename to..
10366         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10367         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10368         (rs6000_file_start): ..here.
10369         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10370         file scope variables.
10371         (call_ABI_of_interest): New function.
10372         (init_cumulative_args): Set above vars when function return value
10373         is a float, vector, or small struct.
10374         (rs6000_function_arg_advance_1): Likewise for function args.
10375         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10376         references float args.
10377
10378 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10379
10380         * doc/cfg.texi: Remove "See" before @ref.
10381         * doc/invoke.texi: Likewise.
10382
10383 2011-03-05  Jason Merrill  <jason@redhat.com>
10384
10385         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10386
10387 2011-03-05  Anthony Green  <green@moxielogic.com>
10388
10389         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10390
10391 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10392
10393         PR rtl-optimization/47899
10394         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10395         to flow_loop_nested_p when moving the loop upward.
10396
10397 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10398
10399         PR target/47719
10400         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10401
10402 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10403
10404         PR tree-optimization/47967
10405         * ipa-cp.c (build_const_val): Return NULL instead of creating
10406         VIEW_CONVERT_EXPR for mismatching sizes.
10407         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10408         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10409         give up on versioning.
10410
10411 2011-03-05  Alan Modra  <amodra@gmail.com>
10412
10413         PR target/47986
10414         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10415         full cmodel medium/large lo_sum + high addresses.
10416
10417 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10418
10419         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10420         pool references in UNSPEC_LTREL_OFFSET.
10421
10422 2011-03-04  Jan Hubicka  <jh@suse.cz>
10423
10424         PR lto/47497
10425         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10426         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10427         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10428         Add node pointers.
10429         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10430         cgraph_add_thunk): Add node pointers.
10431         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10432         associated to right node.
10433         (input_node): Update use of cgraph_same_body_alias
10434         and cgraph_add_thunk.
10435
10436 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10437
10438         * config/i386/i386.opt (mprefer-avx128): New flag.
10439         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10440         modes when the flag -mprefer-avx128 is on.
10441
10442 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10443
10444         * dwarf2out.c (compare_loc_operands): Fix address handling.
10445
10446 2011-03-04  Alan Modra  <amodra@gmail.com>
10447
10448         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10449
10450 2011-03-04  Richard Guenther  <rguenther@suse.de>
10451
10452         PR middle-end/47968
10453         * expmed.c (extract_bit_field_1): Prefer vector modes that
10454         vec_extract patterns can handle.
10455
10456 2011-03-04  Richard Guenther  <rguenther@suse.de>
10457
10458         PR middle-end/47975
10459         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10460
10461 2011-03-04  Richard Henderson  <rth@redhat.com>
10462
10463         * explow.c (emit_stack_save): Remove 'after' parameter.
10464         (emit_stack_restore): Likewise.
10465         * expr.h: Update to match.
10466         * builtins.c, calls.c, stmt.c: Likewise.
10467         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10468         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10469         * function.c (expand_function_end): Insert the emit_stack_save
10470         sequence before parm_birth_insn instead of after.
10471
10472 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10473
10474         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10475         (ssse3_pmaddubsw128): Ditto.
10476         (ssse3_pmaddubsw): Ditto.
10477
10478 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10479
10480         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10481
10482 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10483
10484         PR c/47963
10485         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10486         on TYPE_SIZE_UNIT if it is a DECL.
10487
10488         PR debug/47283
10489         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10490         first operand is not is_gimple_mem_ref_addr, try to fold it.
10491         If the operand still isn't is_gimple_mem_ref_addr, clear
10492         MEM_EXPR on op0.
10493
10494 2011-03-03  Richard Guenther  <rguenther@suse.de>
10495
10496         PR middle-end/47283
10497         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10498         match comment.
10499         (refs_may_alias_p_1): For release branches return true if
10500         we are confused by our input.
10501
10502 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10503
10504         * config/s390/s390.c (s390_function_value): Rename to ...
10505         (s390_function_and_libcall_value): ... this.
10506         (s390_function_value): New function.
10507         (s390_libcall_value): New function.
10508         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10509         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10510         target macro definitions.
10511         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10512
10513 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10514
10515         * config/i386/freebsd64.h (CC1_SPEC): Define.
10516         * config/i386/linux64.h (CC1_SPEC): Define.
10517         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10518
10519 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10520
10521         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10522         Remove.
10523         * config/stormy16/stormy16.c: Include reload.h.
10524         (xstormy16_memory_move_cost): New function.
10525         (TARGET_MEMORY_MOVE_COST): Define.
10526
10527 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10528
10529         PR rtl-optimization/47925
10530         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10531         with side effects.  Remove the more-specific check for volatile asms.
10532
10533 2011-03-02  Alan Modra  <amodra@gmail.com>
10534
10535         PR target/47935
10536         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10537         toc relative addresses for valid offsets.
10538
10539 2011-03-01  Richard Guenther  <rguenther@suse.de>
10540
10541         PR tree-optimization/47890
10542         * tree-vect-loop.c (get_initial_def_for_induction): Set
10543         related stmt properly.
10544
10545 2011-03-01  Richard Guenther  <rguenther@suse.de>
10546
10547         PR lto/47924
10548         * lto-streamer.c (lto_record_common_node): Also register
10549         the canonical type.
10550
10551 2011-03-01  Richard Guenther  <rguenther@suse.de>
10552
10553         PR lto/46911
10554         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10555         Do not stream DECL_ABSTRACT_ORIGIN.
10556         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10557         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10558         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10559         Do not stream DECL_ABSTRACT_ORIGIN.
10560         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10561         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10562
10563 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10564
10565         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10566         FUNCTION_VALUE_REGNO_P): Remove.
10567         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10568         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10569         Add 'outgoing' argument.
10570         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10571         function.
10572         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10573         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10574
10575 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10576
10577         PR debug/28047
10578         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10579         (lookup_filename): Likewise.
10580         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10581
10582 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10583             Jakub Jelinek  <jakub@redhat.com>
10584
10585         PR middle-end/47893
10586         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10587         (assign_stack_local_1): Change last argument type to int.
10588         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10589         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10590         don't record padding space into frame_space_list nor use those areas.
10591         (assign_stack_local): Adjust caller.
10592         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10593         of assign_stack_local, pass 0 as last argument.
10594         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10595         callers.
10596
10597 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10598
10599         PR debug/47283
10600         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10601         Use target address_mode and pointer_mode hooks instead of hardcoded
10602         Pmode and ptr_mode.  Handle some simple cases of extending if
10603         POINTERS_EXTEND_UNSIGNED < 0.
10604         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10605         Call convert_debug_memory_address.
10606         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10607         convert_debug_memory_address.
10608
10609         PR middle-end/46790
10610         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10611         * configure: Regenerated.
10612         * config.in: Regenerated.
10613         * varasm.c (default_function_section): Return NULL
10614         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10615
10616 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10617
10618         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10619         the description to match the printed values.
10620
10621 2011-02-28  Richard Guenther  <rguenther@suse.de>
10622
10623         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10624         of the copied scope tree.
10625
10626 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10627
10628         * doc/extend.texi (Function Attributes): Avoid deeply (and
10629         wrongly) nested tables.
10630
10631 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10632
10633         PR middle-end/47903
10634         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10635         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10636         r isn't op0 nor op1.
10637
10638 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10639
10640         * config/avr/avr.md: Remove magic comment for emacs.
10641
10642 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10643
10644         PR target/45261
10645         * config/avr/avr.c (avr_option_override): Use error on bad options.
10646         (avr_help): New function.
10647         (TARGET_HELP): Define.
10648
10649 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10650
10651         PR target/42240
10652         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10653         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10654
10655 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10656
10657         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10658         (ARM Options): Ditto.
10659         (i386 and x86-64 Options): Ditto.
10660         (RX Options): Ditto.
10661         (SPARC Options): Ditto.
10662
10663 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10664
10665         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10666         FreeBSD 6 and later.  Generally use cpu generic.
10667
10668 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10669
10670         * doc/cpp.texi: Update copyright years.
10671
10672 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10673
10674         PR target/46898
10675         * config/lm32/lm32.md (ashrsi3): Added needed variable.
10676
10677 2011-02-25  Jon Beniston  <jon@beniston.com>
10678
10679         PR target/46898
10680         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10681         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10682         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10683         (lm32_block_move_inline): Add type cast to remove warning.
10684         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
10685         (gen_int_relational): Move declarations to start of function.
10686
10687 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10688
10689         PR tree-optimization/45470
10690         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10691         can throw internally only.
10692         * tree-vect-stmts.c (vectorizable_call): Likewise.
10693
10694 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
10695
10696         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10697         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10698         * config/stormy16/stormy16-protos.h
10699         (xstormy16_preferred_reload_class): Remove.
10700         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10701         static. Change 'rclass' argument and return type to reg_class_t.
10702         (TARGET_PREFERRED_RELOAD_CLASS,
10703         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10704
10705 2011-02-24  Richard Guenther  <rguenther@suse.de>
10706
10707         * lto-streamer-in.c (input_bb): Do not find referenced vars
10708         in debug statements.
10709
10710 2011-02-23  Jason Merrill  <jason@redhat.com>
10711
10712         * common.opt (fabi-version): Document v5 and v6.
10713
10714 2011-02-23  Richard Guenther  <rguenther@suse.de>
10715
10716         PR tree-optimization/47849
10717         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10718
10719 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10720
10721         * opts-common.c (decode_cmdline_option): Print empty string
10722         argument as "" in decoded->orig_option_with_args_text.
10723         * gcc.c (execute): Print empty string argument as ""
10724         in the verbose output.
10725         (do_spec_1): Keep empty string argument.
10726
10727 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
10728
10729         * config.gcc: Declare score-* and crx-* obsolete.
10730
10731 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10732
10733         PR rtl-optimization/47763
10734         * web.c (web_main): Ignore naked clobber when replacing register.
10735
10736 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
10737
10738         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10739         Remove.
10740
10741 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10742
10743         PR doc/47848
10744         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10745
10746 2011-02-22  Mike Stump  <mikestump@comcast.net>
10747
10748         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10749         assembler.
10750         * configure: Regenerate.
10751
10752 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
10753
10754         PR rtl-optimization/46002
10755         * ira-color.c (update_copy_costs): Change class intersection
10756         test to reg_class_contents[] test of 'hard_regno'.
10757
10758 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
10759
10760         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10761         than Driver option.
10762         * config/hpux11.opt (mt): Likewise.
10763         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10764         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10765         * config/vax/elf.opt (mno-asm-pic): Likewise.
10766         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10767
10768 2011-02-21  Mike Stump  <mikestump@comcast.net>
10769
10770         PR target/47822
10771         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10772         tree so we can get save the type.
10773         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10774         for CFString instead of trying to use past the end of the builtins.
10775         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10776         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10777         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10778         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10779         Rename to darwin_builtin_cfstring.
10780         (darwin_init_cfstring_builtins): Return the built type.
10781
10782 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
10783
10784         PR target/47840
10785         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10786         (_mm256_insert_epi64): Use _mm_insert_epi64.
10787
10788 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
10789
10790         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10791         * config/stormy16/stormy16-protos.h
10792         (xstormy16_mode_dependent_address_p): Remove.
10793         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10794         Make static. Change return type to bool. Change argument type to
10795         const_rtx. Remove dead code.
10796         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10797
10798 2011-02-21  Richard Guenther  <rguenther@suse.de>
10799
10800         PR lto/47820
10801         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10802         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10803         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10804         TUs context.
10805         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10806         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10807
10808 2011-02-20  Richard Guenther  <rguenther@suse.de>
10809
10810         PR lto/47822
10811         * tree.c (free_lang_data_in_decl): Clean builtins from
10812         the TU decl BLOCK_VARS.
10813
10814 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
10815
10816         PR debug/47620
10817         PR debug/47630
10818         * haifa-sched.c (fix_tick_ready): Skip tick computation
10819         for debug insns.
10820
10821 2011-02-19  Richard Guenther  <rguenther@suse.de>
10822
10823         PR lto/47647
10824         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10825         Remove lazy BLOCK_VARS streaming.
10826         (lto_input_ts_block_tree_pointers): Likewise.
10827         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10828
10829 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10830
10831         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10832
10833 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10834
10835         * config/i386/biarch32.h, config/i386/mach.h,
10836         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10837
10838 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
10839
10840         PR target/47800
10841         * config/i386/i386.md (peephole2 for shift and plus): Use
10842         operands[1] original mode in the first insn.
10843
10844 2011-02-18  Mike Stump  <mikestump@comcast.net>
10845
10846         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
10847
10848 2011-02-18  Jan Hubicka  <jh@suse.cz>
10849
10850         PR middle-end/47788
10851         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10852         to zero when the function is not inlinable at all.
10853
10854 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10855
10856         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10857         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10858         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10859         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10860         * config/pa/t-pa64: Likewise.
10861         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10862
10863 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10864
10865         PR driver/47787
10866         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10867
10868 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10869
10870         PR target/47792
10871         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10872
10873 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
10874
10875         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10876         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10877         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10878         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10879         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10880         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10881         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10882         m32r_load_postinc_p, m32r_store_preinc_predec_p,
10883         m32r_legitimate_address_p): New functions.
10884         * config/m32r/constraints.md (constraint "S"): Don't use
10885         STORE_PREINC_PREDEC_P.
10886         (constraint "U"): Don't use LOAD_POSTINC_P.
10887
10888 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
10889
10890         PR rtl-optimization/46178
10891         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10892         compute ira_hard_regno_cover_class[].
10893
10894 2011-02-18  Richard Guenther  <rguenther@suse.de>
10895
10896         PR lto/47798
10897         * lto-streamer.h (lto_global_var_decls): Declare.
10898         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10899         statics for global var processing.
10900
10901 2011-02-18  Richard Guenther  <rguenther@suse.de>
10902
10903         PR tree-optimization/47737
10904         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10905         edge dominance check.
10906
10907 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10908
10909         PR debug/47780
10910         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10911         avoid invalid rtx sharing.
10912
10913 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
10914
10915         * doc/cpp.texi (Obsolete Features): Add background on the
10916         origin of assertions.
10917
10918 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
10919
10920         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
10921         objc_abi == 2.
10922         * config/darwin.c (output_objc_section_asm_op): Added support for
10923         ABI v1 and v2.
10924         (is_objc_metadata): New.
10925         (darwin_objc2_section): New.
10926         (darwin_objc1_section): New.
10927         (machopic_select_section): Added support for ABI v1 and v2.
10928         (darwin_emit_objc_zeroed): New.
10929         (darwin_output_aligned_bss): Detect objc metadata and treat it
10930         appropriately.
10931         (darwin_asm_output_aligned_decl_common): Same.
10932         (darwin_asm_output_aligned_decl_local): Same.
10933         * config/darwin-sections.def: Updated for ABI v1 and v2.
10934         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10935         compiling Objective-C code for the NeXT runtime, default to using
10936         ABI version 0 for 32-bit, and version 2 for 64-bit.
10937
10938 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10939
10940         * common.opt (optimize_fast): New Variable.
10941         * opts.c (default_options_optimization): Use opts->x_optimize_fast
10942         instead of local variable ofast.
10943
10944 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
10945
10946         * doc/invoke.texi (fobjc-abi-version): Documented.
10947         (fobjc-nilcheck): Documented.
10948         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10949         version.
10950
10951 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10952
10953         PR driver/47390
10954         * common.opt (export-dynamic): New Driver option.
10955         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10956
10957 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10958
10959         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10960
10961 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
10962             Jan Hubicka  <jh@suse.cz>
10963
10964         PR debug/47106
10965         PR debug/47402
10966         * cfgexpand.c (account_used_vars_for_block): Remove.
10967         (estimated_stack_frame_size): Use referenced vars.
10968         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10969         that were referenced in the original function.  Test src_fn
10970         rather than cfun.  Drop redundant get_var_ann.
10971         (setup_one_parameter): Drop redundant get_var_ann.
10972         (declare_return_variable): Likewise.
10973         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10974         (copy_arguments_for_versioning): Drop redundant get_var_ann.
10975         * ipa-inline.c (compute_inline_parameters): Do not compute
10976         disregard_inline_limits here.
10977         (compute_inlinable_for_current, pass_inlinable): New.
10978         (pass_inline_parameters): Require PROP_referenced_vars.
10979         * cgraphunit.c (cgraph_process_new_functions): Don't run
10980         compute_inline_parameters explicitly unless function is in SSA form.
10981         (cgraph_analyze_function): Set .disregard_inline_limits.
10982         * tree-sra.c (convert_callers): Compute inliner parameters
10983         only for functions already in SSA form.
10984
10985 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10986
10987         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10988         -mlittle-endian-data.
10989
10990 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10991
10992         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10993         -mno-fpu, not -fpu and -no-fpu.
10994         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10995         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10996
10997 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
10998
10999         PR target/43653
11000         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11001         input reload with PLUS RTX.
11002
11003 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11004
11005         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11006         of InverseVar(MDMX).
11007
11008 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11009
11010         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11011         --m4-340.
11012
11013 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11014
11015         * config/mn10300/mn10300.opt (mno-crt0): New.
11016
11017 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11018
11019         * config/m68k/uclinux.opt (static-libc): New Driver option.
11020
11021 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11022
11023         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11024
11025 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11026
11027         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11028         %{muser-extend-enabled}.
11029
11030 2011-02-16  Richard Guenther  <rguenther@suse.de>
11031
11032         PR tree-optimization/47738
11033         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11034         the TODO from tree_predictive_commoning.
11035
11036 2011-02-15  Jeff Law  <law@redhat.com>
11037
11038         Revert
11039         2011-01-25  Jeff Law  <law@redhat.com>
11040
11041         PR rtl-optimization/37273
11042         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11043         handle them like argument loads from stack slots.  Do not double
11044         count memory for memory constants and argument loads from stack slots.
11045
11046 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11047
11048         PR middle-end/47725
11049         * combine.c (cant_combine_insn_p): Revert the last change.
11050
11051 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11052
11053         PR target/47755
11054         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11055         mode for vector constants.  Remove code that checks for TImode.
11056
11057 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11058
11059         PR debug/47106
11060         PR debug/47402
11061         * cgraph.h (compute_inline_parameters): Return void.
11062         * ipa-inline.c (compute_inline_parameters): Adjust.
11063
11064 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11065
11066         PR debug/47106
11067         PR debug/47402
11068         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11069         rather than decl.
11070         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11071         * ipa-inline.c (compute_inline_parameters): Adjust.
11072
11073 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11074
11075         PR debug/47106
11076         PR debug/47402
11077         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11078         Adjust all users.  Pass FN to...
11079         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11080         fn argument.
11081         * ipa-struct-reorg.c: Adjust.
11082         * tree-dfa.c: Adjust.
11083         * tree-into-ssa.c: Adjust.
11084         * tree-sra.c: Adjust.
11085         * tree-ssa-alias.c: Adjust.
11086         * tree-ssa-live.c: Adjust.
11087         * tree-ssa.c: Adjust.
11088         * tree-ssanames.c: Adjust.
11089         * tree-tailcall.c: Adjust.
11090
11091 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11092
11093         PR debug/47106
11094         PR debug/47402
11095         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11096         Adjust all callers.
11097         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11098         * tree-flow-inline.h: Adjust.
11099         * gimple-pretty-print.c: Adjust.
11100         * tree-into-ssa.c: Adjust.
11101         * tree-ssa.c: Adjust.
11102         * cfgexpand.c: Adjust.
11103
11104 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11105
11106         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11107         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11108         (EXTRA_CONSTRAINT): Delete.
11109         * config/iq2000/constraints.md: New file.
11110         * config/iq2000/iq2000.md: Include it.
11111         (define_insn ""): Delete.
11112         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11113         unsupported constraint letters from patterns.
11114         (call_value, call_value_internal1): Likewise.
11115         (call_value_multiple_internal1): Likewise.
11116
11117 2011-02-15  Nick Clifton  <nickc@redhat.com>
11118
11119         * config/mn10300/mn10300.c: Include tm-constrs.h.
11120         (struct liw_data): New data structure describing an LIW candidate
11121         instruction.
11122         (extract_bundle): Use struct liw_data.  Allow small integer
11123         operands for some instructions.
11124         (check_liw_constraints): Use struct liw_data.  Remove swapped
11125         parameter.  Add comments describing the checks.  Fix bug when
11126         assigning the source of liw1 to the source of liw2.
11127         (liw_candidate): Delete.  Code moved into extract_bundle.
11128         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11129         before swapping.
11130         * config/mn10300/predicates.md (liw_operand): New predicate.
11131         Allows registers and small integer constants.
11132         * config/mn10300/constraints.md (O): New constraint.  Accetps
11133         integers in the range -8 to +7 inclusive.
11134         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11135         for moving a small integer into a register.  Give this alternative
11136         LIW attributes.
11137         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11138         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11139         using the J,K,L and M constraints,
11140         (liw): Remove SI mode on second operands to allow for HI and QI
11141         mode values.
11142         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11143         instruction.
11144
11145 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11146
11147         PR middle-end/47725
11148         * combine.c (cant_combine_insn_p): Check zero/sign extended
11149         hard registers.
11150
11151 2011-02-15  Richard Guenther  <rguenther@suse.de>
11152
11153         PR tree-optimization/47743
11154         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11155         for a non-type-compatible VN lookup bail out.
11156
11157 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11158
11159         * config/fr30/constraints.md: New file.
11160         * config/fr30/fr30.md: Include it.
11161         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11162         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11163         (EXTRA_CONSTRAINT): Delete.
11164
11165 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11166
11167         * config/frv/constraints.md: New file.
11168         * config/frv/predicates.md: Include it.
11169         * config/frv/frv.c (reg_class_from_letter): Delete.
11170         (frv_option_override): Don't initialize it.
11171         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11172         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11173         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11174         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11175         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11176         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11177         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11178         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11179         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11180         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11181         (REG_CLASS_FROM_CONSTRAINT): Delete.
11182
11183 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11184
11185         PR middle-end/47581
11186         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11187         if frame size is 0 in a leaf function.
11188
11189 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11190
11191         PR pch/14940
11192         * config/alpha/host-osf.c: New file.
11193         * config/alpha/x-osf: New file.
11194         * config.host (alpha*-dec-osf*): Use it.
11195
11196 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11197
11198         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11199         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11200         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11201         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11202         type to const_rtx.
11203         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11204
11205 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11206
11207         * config/stormy16/constraints.md: New file.
11208         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11209         Use satisfies_constraint_Q and satisfies_constraint_R.
11210         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11211         Delete.
11212         (xstormy16_legitiamte_address_p): Declare.
11213         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11214         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11215         (EXTRA_CONSTRAINT): Delete.
11216         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11217         Un-staticize.
11218         (xstormy16_extra_constraint_p): Delete.
11219
11220 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11221
11222         PR tree-optimization/46494
11223         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11224         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11225         (pass_rtl_loop_done): Add TODO_verify_flow.
11226         * fwprop.c (pass_rtl_fwprop): Likewise.
11227         * modulo-sched.c (pass_sms): Likewise.
11228         * tree-ssa-dom.c (pass_dominator): Likewise.
11229         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11230         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11231         (pass_tree_loop_done): Likewise.
11232         * tree-ssa-pre.c (execute_pre): Likewise.
11233         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11234         * tree-ssa-sink.c (pass_sink_code): Likewise.
11235         * tree-vrp.c (pass_vrp): Likewise.
11236
11237 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11238
11239         * config/v850/constraints.md: New file.
11240         * config/v850/v850.md: Include it.
11241         * config/v850/predicates.md (reg_or_0_operand): Use
11242         satisfies_constraint_G.
11243         (special_symbolref_operand): Use satisfies_constraint_K.
11244         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11245         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11246         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11247         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11248         (EXTRA_CONSTRAINT): Delete.
11249         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11250         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11251         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11252
11253 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11254
11255         PR target/47696
11256         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11257         description.
11258
11259 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11260
11261         * config/mcore/constraints.md: New file.
11262         * config/mcore/mcore.md: Include it.
11263         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11264         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11265         (REG_CLASS_FROM_LETTER): Delete.
11266         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11267         insn_const_int_ok_for_constraint.
11268         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11269         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11270         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11271         (EXTRA_CONSTRAINT): Delete.
11272
11273 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11274
11275         PR ada/41929
11276         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11277         (IS_SIGHANDLER): Define.
11278         (sparc64_is_sighandler): New function, split off from
11279         sparc64_fallback_frame_state.
11280         (sparc_is_sighandler): New function, split off from
11281         sparc_fallback_frame_state.
11282         (sparc64_fallback_frame_state): Merge with ...
11283         (sparc_fallback_frame_state): ... this into ...
11284         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11285         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11286         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11287         stack instead of hardcoded offsets.
11288
11289 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11290
11291         PR target/45808
11292         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11293
11294 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11295
11296         * configure: Regenerate.
11297
11298 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11299
11300         PR driver/45731
11301         * gcc.c (asm_options): Correct spec matching --target-help.
11302
11303 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11304
11305         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11306         to gimple call error.
11307
11308 2011-02-12  Mike Stump  <mikestump@comcast.net>
11309
11310         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11311         comments in backslash regions.
11312
11313 2011-02-12  Mike Stump  <mikestump@comcast.net>
11314             Jakub Jelinek  <jakub@redhat.com>
11315             Iain Sandoe  <iains@gcc.gnu.org>
11316
11317         PR target/47324
11318         * dwarf2out.c (output_cfa_loc): When required, apply the
11319         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11320         (output_loc_sequence): Likewise.
11321         (output_loc_operands_raw): Likewise.
11322         (output_loc_sequence_raw): Likewise.
11323         (output_cfa_loc): Likewise.
11324         (output_loc_list): Suppress register number adjustment when
11325         calling output_loc_sequence()
11326         (output_die): Likewise.
11327
11328 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11329
11330         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11331         Remove macros.
11332         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11333         xtensa_memory_move_cost): New functions.
11334         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11335
11336 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11337
11338         PR lto/47225
11339         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11340         in the current directory.
11341         * configure: Rebuilt.
11342
11343 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11344
11345         * config/darwin.c (darwin_override_options): Add a hunk missed
11346         from the commit of r168571.  Trim comment line lengths and
11347         correct indents of the preceding block.
11348
11349 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11350
11351         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11352         the switch.
11353
11354 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11355
11356         * common.opt (nostartfiles): New Driver option.
11357
11358 2011-02-11  Xinliang David Li  <davidxl@google.com>
11359
11360         PR tree-optimization/47707
11361         * tree-chrec.c (convert_affine_scev): Keep type precision.
11362
11363 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11364
11365         PR tree-optimization/47420
11366         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11367
11368 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11369
11370         PR rtl-optimization/47614
11371         * rtl.h (check_for_inc_dec): Declare.
11372         * dse.c (check_for_inc_dec): Externalize...
11373         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11374         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11375
11376 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11377
11378         PR driver/47678
11379         * gcc.c (main): Do not compile inputs if there were errors in
11380         option handling.
11381         * opts-common.c (read_cmdline_option): Check for wrong language
11382         after other error checks.
11383
11384 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11385
11386         * cgraph.c: Fix comment typos.
11387         * cgraph.h: Likewise.
11388         * cgraphunit.c: Likewise.
11389         * ipa-cp.c: Likewise.
11390         * ipa-inline.c: Likewise.
11391         * ipa-prop.c: Likewise.
11392         * ipa-pure-const.c: Likewise.
11393         * ipa-ref.c: Likewise.
11394         * ipa-reference.c: Likewise.
11395
11396 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11397
11398         PR debug/47684
11399         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11400
11401 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11402
11403         PR testsuite/47400
11404         * doc/sourcebuild.texi (Require Support): Document
11405         dg-require-ascii-locale.
11406
11407 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11408
11409         * doc/lto.texi (Write summary): Fix missing parentheses.
11410
11411 2011-02-10  DJ Delorie  <dj@redhat.com>
11412
11413         * config/m32c/m32c.c (m32c_option_override): Disable
11414         -fcombine-stack-adjustments until flag value tracking and compare
11415         optimization can be rewritten.
11416
11417 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11418
11419         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11420         PROCESSOR_POWER7.
11421         (PROCESSOR_DEFAULT64): Likewise.
11422
11423 2011-02-10  Richard Henderson  <rth@redhat.com>
11424
11425         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11426         change from 2011-02-03.
11427         * config/rx/rx.c (flags_from_code): Likewise.
11428         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11429         is valid, n/pz otherwise.
11430         (rx_select_cc_mode): Return CCmode if Y is not zero.
11431
11432 2011-02-10  Richard Guenther  <rguenther@suse.de>
11433
11434         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11435
11436 2011-02-10  Richard Guenther  <rguenther@suse.de>
11437
11438         PR tree-optimization/47677
11439         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11440
11441 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11442
11443         PR target/47665
11444         * combine.c (make_compound_operation): Only change shifts into
11445         multiplication for SCALAR_INT_MODE_P.
11446
11447 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11448
11449         PR testsuite/47622
11450         Revert
11451         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11452         PR debug/42631
11453         * web.c (entry_register): Don't clobber the number of the
11454         first uninitialized reference in used[].
11455
11456 2011-02-09  Richard Guenther  <rguenther@suse.de>
11457
11458         PR tree-optimization/47664
11459         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11460         all edges again.
11461
11462 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11463
11464         PR target/46481
11465         PR target/47032
11466         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11467         PROCESSOR_POWER7.
11468         (PROCESSOR_DEFAULT64): Same.
11469         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11470
11471 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11472
11473         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11474
11475 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11476
11477         PR middle-end/45505
11478         * tree-sra.c (struct access): New flags grp_scalar_read and
11479         grp_scalar_write.  Changed description of assignment read and write
11480         flags.
11481         (dump_access): Dump new flags, reorder all of them.
11482         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11483         to detect multiple scalar reads.
11484         (analyze_access_subtree): Use the new scalar read write flags instead
11485         of the old flags.  Adjusted comments.
11486
11487 2011-02-08  DJ Delorie  <dj@redhat.com>
11488
11489         PR target/47548
11490         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11491         patterns.
11492
11493 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11494
11495         * config/m68k/uclinux.opt: New.
11496         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11497
11498 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11499
11500         * config/cris/elf.opt (sim): New Driver option.
11501
11502 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11503
11504         * config/xtensa/elf.opt: New.
11505         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11506
11507 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11508
11509         * config/vax/elf.opt: New.
11510         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11511
11512 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11513
11514         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11515
11516 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11517
11518         * config/gnu-user.opt: New.
11519         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11520         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11521         *-*-uclinux*): Use gnu-user.opt.
11522
11523 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11524
11525         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11526         * config/i386/gnu.h (CPP_SPEC): Likewise.
11527
11528 2011-02-08  Ian Lance Taylor  <iant@google.com>
11529
11530         * common.opt (fcx-limited-range): Add SetByCombined flag.
11531         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11532         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11533         (fassociative-math, freciprocal-math): Likewise.
11534         (funsafe-math-optimizations): Likewise.
11535         * opth-gen.awk: Handle SetByCombined.
11536         * optc-gen.awk: Likewise.
11537         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11538         (set_unsafe_math_optimizations_flags): Likewise.
11539         * doc/options.texi (Option properties): Document SetByCombined.
11540
11541 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11542
11543         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11544         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11545         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11546         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11547         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11548
11549 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11550
11551         PR tree-optimization/46834
11552         PR tree-optimization/46994
11553         PR tree-optimization/46995
11554         * graphite-sese-to-poly.c (used_outside_reduction): New.
11555         (detect_commutative_reduction): Call used_outside_reduction.
11556         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11557         translate_scalar_reduction_to_array only when at least one
11558         loop-phi/close-phi tuple has been detected.
11559
11560 2011-02-08  Richard Guenther  <rguenther@suse.de>
11561
11562         PR middle-end/47639
11563         * tree-vect-generic.c (expand_vector_operations_1): Update
11564         stmts here ...
11565         (expand_vector_operations): ... not here.  Cleanup EH info
11566         and the CFG if required.
11567
11568 2011-02-08  Richard Guenther  <rguenther@suse.de>
11569
11570         PR tree-optimization/47641
11571         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11572         require type compatibility.
11573
11574 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11575
11576         * gimple-low.c (lower_function_body): Don't remove the location of
11577         the return statement here.
11578         (lower_gimple_return): Do it here instead but only if the return
11579         statement is actually used twice.
11580
11581 2011-02-08  Richard Guenther  <rguenther@suse.de>
11582
11583         PR tree-optimization/47632
11584         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11585         unused up_to_stmt parameter, return whether cfg-cleanup is
11586         necessary, remove EH info properly.
11587         (forward_propagate_into_gimple_cond): Adjust caller.
11588         (forward_propagate_into_cond): Likewise.
11589         (forward_propagate_comparison): Likewise.
11590         (tree_ssa_forward_propagate_single_use_vars): Make
11591         forward_propagate_comparison case similar to the two others.
11592
11593 2011-02-08  Nick Clifton  <nickc@redhat.com>
11594
11595         * config/mn10300/mn10300.opt (mliw): New command line option.
11596         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11597         (liw_bundling): New automaton.
11598         (liw): New attribute.
11599         (liw_op): New attribute.
11600         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11601         (movsi_internal): Add LIW attributes.
11602         (andsi3): Likewise.
11603         (iorsi3): Likewise.
11604         (xorsi3): Likewise.
11605         (addsi3): Separate register and immediate alternatives.
11606         Add LIW attributes.
11607         (subsi3): Likewise.
11608         (cmpsi): Likewise.
11609         (aslsi3): Likewise.
11610         (lshrsi3): Likewise.
11611         (ashrsi3): Likewise.
11612         (liw): New pattern.
11613         * config/mn10300/mn10300.c (liw_op_names): New
11614         (mn10300_print_operand): Handle 'W' operand descriptor.
11615         (extract_bundle): New function.
11616         (check_liw_constraints): New function.
11617         (liw_candidate): New function.
11618         (mn10300_bundle_liw): New function.
11619         (mn10300_reorg): New function.
11620         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11621         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11622         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11623         __LIW__ or __NO_LIW__.
11624         * doc/invoke.texi: Describe the -mliw command line option.
11625
11626 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11627
11628         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11629         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11630         pthread_mutex_unlock): Remove.
11631         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11632         * config/pa/t-pa64: Likewise.
11633         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11634         shared libc if not linking against libpthread.
11635         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11636
11637 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11638
11639         PR target/47558
11640         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11641         on 10.6 and later to ensure that we always use the unwinder from
11642         the system.  Only add -no_compact_unwind when tarteting darwin
11643         10.6 or later.
11644
11645 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11646
11647         PR target/46997
11648         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11649         (vec_interleave_lowv2sf): Ditto.
11650         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11651         (vec_extract_oddv2sf): Ditto.
11652
11653 2011-02-07  Mike Stump  <mikestump@comcast.net>
11654
11655         PR target/42333
11656         Add __ieee_divdc3 entry point.
11657         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11658         entry point.
11659         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11660         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11661         * config/darwin.c (darwin_rename_builtins): Add.
11662         * config/darwin-protos.h (darwin_rename_builtins): Add.
11663
11664 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11665
11666         PR target/47636
11667         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11668         for the condition.
11669
11670 2011-02-07  Mike Stump  <mikestump@comcast.net>
11671
11672         * config/darwin.opt (mmacosx-version-min): Update default OS version.
11673
11674 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
11675
11676         PR target/47534
11677         * config/avr/libgcc.S (exit): Move .endfunc
11678
11679 2011-02-07  Richard Guenther  <rguenther@suse.de>
11680
11681         PR tree-optimization/47615
11682         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11683         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11684         (run_scc_vn): Initialize it.
11685         (visit_reference_op_load): Use it.
11686         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11687
11688 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11689
11690         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11691         DImode trapping arithmetic libfuncs.
11692
11693 2011-02-07  Richard Guenther  <rguenther@suse.de>
11694
11695         PR tree-optimization/47621
11696         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11697         two duplicates ...
11698         (execute_update_addresses_taken): ... here.  Make it more
11699         conservative in what we accept.
11700
11701 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11702
11703         * config/sparc/freebsd.h (ASM_SPEC): Define.
11704         * config/sparc/vxworks.h (ASM_SPEC): Define.
11705
11706 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11707
11708         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11709
11710 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11711
11712         * doc/invoke.texi: Remove reference to compiler internals from
11713         user documentation.
11714
11715         * reg-notes.def: Remove REG_VALUE_PROFILE.
11716         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11717
11718 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
11719
11720         PR middle-end/47610
11721         * varasm.c (default_section_type_flags): If decl is NULL,
11722         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
11723
11724 2011-02-05  Jie Zhang  <jie@codesourcery.com>
11725
11726         PR debug/42631
11727         * web.c (entry_register): Don't clobber the number of the
11728         first uninitialized reference in used[].
11729
11730 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
11731
11732         PR tree-optimization/46194
11733         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11734         (build_classic_dist_vector_1): Do not represent classic distance
11735         vectors when the access functions are variating in different loops.
11736
11737 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11738
11739         * config/mips/iris6.opt: New.
11740         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11741
11742 2011-02-04  Richard Henderson  <rth@redhat.com>
11743             Steve Ellcey  <sje@cup.hp.com>
11744
11745         PR target/46997
11746         * config/ia64/predicates.md (mux1_brcst_element): New.
11747         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11748         * config/ia64/ia64.c (ia64_unpack_assemble): New.
11749         (ia64_unpack_sign): New.
11750         (ia64_expand_unpack): Rewrite using new routines.
11751         (ia64_expand_widen_sum): Ditto.
11752         (ia64_expand_dot_prod_v8qi): Ditto.
11753         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11754         routines, add endian check.
11755         (pmpy2_even): Rename from pmpy2_r, add endian check.
11756         (pmpy2_odd): Rename from pmpy2_l, add endian check.
11757         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11758         (vec_widen_smult_hi_v4hi): Ditto.
11759         (vec_widen_umult_lo_v4hi): Ditto.
11760         (vec_widen_umult_hi_v4hi): Ditto.
11761         (mulv2si3): Change endian checks.
11762         (sdot_prodv4hi): Rewrite with new calls.
11763         (udot_prodv4hi): New.
11764         (vec_pack_ssat_v4hi): Add endian check.
11765         (vec_pack_usat_v4hi): Ditto.
11766         (vec_pack_ssat_v2si): Ditto.
11767         (max1_even): Rename from max1_r, add endian check.
11768         (max1_odd): Rename from max1_l, add endian check.
11769         (*mux1_rev): Format change.
11770         (*mux1_mix): Ditto.
11771         (*mux1_shuf): Ditto.
11772         (*mux1_alt): Ditto.
11773         (*mux1_brcst_v8qi): Use new predicate.
11774         (vec_extract_evenv8qi): Remove endian check.
11775         (vec_extract_oddv8qi): Ditto.
11776         (vec_interleave_lowv4hi): Format change.
11777         (vec_interleave_highv4hi): Ditto.
11778         (mix2_even): Rename from mix2_r, add endian check.
11779         (mix2_odd): Rename from mux2_l, add endian check.
11780         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11781         (vec_extract_evenodd_helper): Format change.
11782         (vec_extract_evenv4hi): Remove endian check.
11783         (vec_extract_oddv4hi): Remove endian check.
11784         (vec_interleave_lowv2si): Format change.
11785         (vec_interleave_highv2si): Format change.
11786         (vec_initv2si): Remove endian check.
11787         (vecinit_v2si): Add endian check.
11788         (reduc_splus_v2sf): Add endian check.
11789         (reduc_smax_v2sf): Ditto.
11790         (reduc_smin_v2sf): Ditto.
11791         (vec_initv2sf): Remove endian check.
11792         (fpack): Add endian check.
11793         (fswap): Add endian check.
11794         (vec_interleave_highv2sf): Add endian check.
11795         (vec_interleave_lowv2sf): Add endian check.
11796         (fmix_lr): Add endian check.
11797         (vec_setv2sf): Format change.
11798         (*vec_extractv2sf_0_be): Use shift to extract operand.
11799         (*vec_extractv2sf_1_be): New.
11800         (vec_pack_trunc_v4hi): Add endian check.
11801         (vec_pack_trunc_v2si): Format change.
11802
11803 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
11804
11805         PR inline-asm/23200
11806         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
11807         do bb, locus and block comparison and disallow loads if it is not set.
11808         (stmt_is_replaceable_p): New function.
11809         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11810         callers.
11811         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11812         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11813         SSA_NAME_DEF_STMT.
11814         * tree-flow.h (stmt_is_replaceable_p): New prototype.
11815
11816 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11817
11818         * config/rs6000/xilinx.opt: New.
11819         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11820
11821 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11822
11823         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11824
11825 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
11826
11827         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11828         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11829         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11830         secondary_reload_info, xtensa_secondary_reload): Remove.
11831         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11832         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11833         (xtensa_preferred_reload_class): Make static. Change return and
11834         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11835         Use CONST_DOUBLE_P predicate.
11836         (xtensa_preferred_output_reload_class): New function.
11837         (xtensa_secondary_reload): Make static.
11838
11839 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
11840
11841         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11842         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11843         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11844
11845 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11846
11847         PR middle-end/31490
11848         * output.h (SECTION_RELRO): Define.
11849         (SECTION_MACH_DEP): Adjust.
11850         (get_variable_section): New prototype.
11851         * varpool.c (varpool_finalize_named_section_flags): New function.
11852         (varpool_assemble_pending_decls): Call it.
11853         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11854         * cgraphunit.c (cgraph_output_in_order): Call
11855         varpool_finalize_named_section_flags.
11856         * varasm.c (get_section): Allow section flags conflicts between
11857         relro and read-only sections if the section hasn't been declared yet.
11858         Set SECTION_OVERRIDE after diagnosing section type conflict.
11859         (get_variable_section): No longer static.
11860         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11861         readonly sections that need relocations.
11862         (decl_readonly_section_1): New function.
11863         (decl_readonly_section): Use it.
11864
11865         Revert:
11866         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
11867                     Steve Ellcey  <sje@cup.hp.com>
11868
11869         PR middle-end/31490
11870         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11871         if section attribute used.
11872
11873 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11874
11875         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11876         * config/darwin.c (SECTION_NO_ANCHOR): Define.
11877         (darwin_init_sections): Remove assertion.
11878
11879 2011-02-03  Nick Clifton  <nickc@redhat.com>
11880
11881         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11882         lt and ge.
11883         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
11884         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11885         instead of "n" and "pz".
11886         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11887         CC_FLAG_S.
11888
11889 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11890
11891         PR target/47312
11892         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11893         fma, expand FMA_EXPR as fma{,f,l} call.
11894
11895         PR lto/47274
11896         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11897         copy them into a unsigned char variable and pass address of it to
11898         lto_output_data_stream.
11899
11900         PR target/47564
11901         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11902         around backend_init_target and lang_dependent_init_target calls.
11903         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11904         (verify_cgraph_node): Don't call set_cfun here.  Use
11905         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11906         Set error_found for incorrectly represented calls to thunks.
11907
11908 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11909
11910         PR debug/43092
11911         PR rtl-optimization/43494
11912         * rtl.h (for_each_inc_dec_fn): New type.
11913         (for_each_inc_dec): Declare.
11914         * rtlanal.c (struct for_each_inc_dec_ops): New type.
11915         (for_each_inc_dec_find_inc_dec): New fn.
11916         (for_each_inc_dec_find_mem): New fn.
11917         (for_each_inc_dec): New fn.
11918         * dse.c (struct insn_size): Remove.
11919         (replace_inc_dec, replace_inc_dec_mem): Remove.
11920         (emit_inc_dec_insn_before): New fn.
11921         (check_for_inc_dec): Use it, along with for_each_inc_dec.
11922         (canon_address): Pass mem modes to cselib_lookup.
11923         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
11924         (cselib_lookup_from_insn): Likewise.
11925         (cselib_subst_to_values): Likewise.
11926         * cselib.c (find_slot_memmode): New var.
11927         (cselib_find_slot): New fn.  Use it instead of
11928         htab_find_slot_with_hash everywhere.
11929         (entry_and_rtx_equal_p): Use find_slot_memmode.
11930         (autoinc_split): New fn.
11931         (rtx_equal_for_cselib_p): Rename and implement in terms of...
11932         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
11933         Deal with autoinc.  Special-case recursion into MEMs.
11934         (cselib_hash_rtx): Likewise.
11935         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
11936         address and MEM modes.
11937         (cselib_subst_to_values): Add memmode, pass it on.
11938         Deal with autoinc.
11939         (cselib_lookup): Add memmode argument, pass it on.
11940         (cselib_lookup_from_insn): Add memmode.
11941         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11942         (struct cselib_record_autoinc_data): New.
11943         (cselib_record_autoinc_cb): New fn.
11944         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
11945         mode to cselib_lookup.  Reset autoinced REGs here instead of...
11946         (cselib_process_insn): ... here.
11947         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11948         to cselib_lookup.
11949         (add_uses): Likewise, also to cselib_subst_to_values.
11950         (add_stores): Likewise.
11951         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
11952         cselib_subst_to_values.
11953         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
11954         * gcse.c (do_local_cprop): Adjusted.
11955         * postreload.c (reload_cse_simplify_set): Adjusted.
11956         (reload_cse_simplify_operands): Adjusted.
11957         * sel-sched-dump (debug_mem_addr_value): Pass mode.
11958
11959 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11960
11961         PR tree-optimization/45122
11962         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11963         unsafe assumptions when there's more than one loop exit.
11964
11965 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11966
11967         PR target/47272
11968         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11969         Document using vector double with the load/store builtins, and
11970         that the load/store builtins always use Altivec instructions.
11971
11972         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11973         to use altivec memory instructions, even on VSX.
11974         (vector_altivec_store_<mode>): Ditto.
11975
11976         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11977         function.
11978
11979         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11980         V2DF, V2DI support to load/store overloaded builtins.
11981
11982         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11983         altivec load/store builtins for V2DF/V2DI types.
11984
11985         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11986         set avoid indexed addresses on power6 if -maltivec.
11987         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11988         vector_altivec_load/vector_altivec_store builtins.
11989         (altivec_expand_st_builtin): Ditto.
11990         (altivec_expand_builtin): Add VSX memory builtins.
11991         (rs6000_init_builtins): Add V2DI types to internal types.
11992         (altivec_init_builtins): Add support for V2DF/V2DI altivec
11993         load/store builtins.
11994         (rs6000_address_for_altivec): Insure memory address is appropriate
11995         for Altivec.
11996
11997         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11998         vec_vsx_ld and vec_vsx_st.
11999         (vsx_store_<mode>): Ditto.
12000
12001         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12002         variables to hold long long types for VSX vector memory builtins.
12003         (RS6000_BTI_unsigned_long_long): Ditto.
12004         (long_long_integer_type_internal_node): Ditti.
12005         (long_long_unsigned_type_internal_node): Ditti.
12006
12007         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12008         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12009         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12010
12011         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12012         short cuts.
12013         (vec_vsx_st): Ditto.
12014
12015 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12016
12017         * config/pa/pa-hpux10.opt: New.
12018         * config/hpux11.opt (pthread): New Driver option.
12019         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12020         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12021
12022 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12023
12024         * config/ia64/vms.opt: New.
12025         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12026
12027 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12028
12029         PR target/47580
12030         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12031         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12032         generator functions.
12033         (vsx_floatuns<VSi><mode>2): Ditto.
12034         (vsx_fix_trunc<mode><VSi>2): Ditto.
12035         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12036
12037 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12038
12039         * config/i386/djgpp.opt (posix): New Driver option.
12040
12041 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12042
12043         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12044         Move to the unsupported targets list.
12045
12046 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12047
12048         PR rtl-optimization/47525
12049         * df-scan.c: Update copyright years.
12050         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12051         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12052
12053 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12054
12055         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12056         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12057         (ASM_OUTPUT_ASCII): Remove.
12058         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12059
12060 2011-02-02  Jeff Law  <law@redhat.com>
12061
12062         PR middle-end/47543
12063         * reload.c (find_reloads_address): Handle reg+d address where both
12064         components are invalid by reloading the entire address.
12065
12066 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12067             Richard Guenther  <rguenther@suse.de>
12068
12069         PR tree-optimization/40979
12070         PR bootstrap/47044
12071         * passes.c (init_optimization_passes): After LIM call copy_prop
12072         and DCE to clean up.
12073         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12074
12075 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12076
12077         PR tree-optimization/47576
12078         PR tree-optimization/47555
12079         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12080         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12081         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12082         * tree-scalar-evolution.c (follow_ssa_edge): Use
12083         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12084
12085 2011-02-02  Richard Guenther  <rguenther@suse.de>
12086
12087         PR tree-optimization/47566
12088         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12089
12090 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12091
12092         PR debug/47106
12093         PR debug/47402
12094         * tree-inline.c (declare_return_variable): Remove unused caller
12095         variable.
12096
12097         PR debug/47106
12098         PR debug/47402
12099         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12100         * cfgexpand.c (account_used_vars_for_block): Use them.
12101         * tree-nrv.c (tree_nrv): Likewise.
12102         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12103         (dump_scope_block): Likewise.
12104         (remove_unused_locals): Likewise.
12105
12106         PR debug/47106
12107         PR debug/47402
12108         * tree-inline.c (declare_return_variable): Add result decl to
12109         local decls only once.
12110         * gimple-low.c (record_vars_into): Mark newly-created variables
12111         as referenced.
12112
12113 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12114
12115         PR debug/47498
12116         PR debug/47501
12117         PR debug/45136
12118         PR debug/45130
12119         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12120         debug insns.
12121         (no_real_insns_p, schedule_block, set_priorities): Drop special
12122         treatment of boundary debug insns.
12123         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12124         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12125         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12126         (BOUNDARY_DEBUG_INSN_P): Likewise.
12127         (SCHEDULE_DEBUG_INSN_P): Likewise.
12128         * sched-rgn.c (init_ready_list): Drop special treatment of
12129         boundary debug insns.
12130         * final.c (rest_of_clean_state): Clear notes' BB.
12131
12132 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12133
12134         * config/openbsd.opt (assert=): New Driver option.
12135
12136 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12137
12138         * config/i386/nto.opt: New.
12139         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12140
12141 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12142
12143         * config/i386/netware.opt: New.
12144         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12145
12146 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12147
12148         * config/interix.opt (posix): New Driver option.
12149
12150 2011-02-01  DJ Delorie  <dj@redhat.com>
12151
12152         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12153
12154         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12155         class for A0/A1.
12156
12157 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12158
12159         PR tree-optimization/47561
12160         * toplev.c (process_options): Print the Graphite flags.  Add
12161         flag_loop_flatten to the list of options requiring Graphite.
12162
12163 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12164
12165         * config/i386/cygming.opt (posix): New Driver option.
12166
12167 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12168
12169         * config/arm/vxworks.opt: New.
12170         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12171
12172 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12173
12174         * config/alpha/elf.opt: New.
12175         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12176         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12177
12178 2011-02-01  Richard Guenther  <rguenther@suse.de>
12179
12180         PR tree-optimization/47559
12181         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12182         store-motion on references that can throw.
12183
12184 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12185
12186         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12187         * tree-pass.h (TDF_CSELIB): New macro.
12188         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12189         cselib_lookup): Check for it rather than for TDF_DETAILS.
12190
12191 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12192
12193         PR driver/47547
12194         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12195         is HOST_BIT_BUCKET.
12196
12197         * opts.c (finish_options): Don't add x_aux_base_name if it is
12198         HOST_BIT_BUCKET.
12199
12200 2011-02-01  Richard Guenther  <rguenther@suse.de>
12201
12202         PR tree-optimization/47555
12203         Revert
12204         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12205
12206         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12207
12208 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12209
12210         PR gcc/46692
12211         * config/lm32/t-lm32: Add multilib for all CPU options.
12212
12213 2011-02-01  Richard Guenther  <rguenther@suse.de>
12214
12215         PR tree-optimization/47541
12216         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12217         sure to have a field at offset zero.
12218
12219 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12220
12221         * config/arc/arc.opt (EB, EL): New Driver options.
12222
12223 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12224
12225         * config/alpha/osf5.opt: New.
12226         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12227
12228 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12229
12230         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12231
12232 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12233
12234         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12235         -floop-interchange.
12236         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12237         is an alias of -floop-interchange and that it requires the
12238         Graphite infrastructure.
12239         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12240         flag_loop_interchange based on the value of flag_tree_loop_linear.
12241
12242 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12243             Richard Guenther  <rguenther@suse.de>
12244
12245         PR tree-optimization/47538
12246         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12247         type instead of r1type, except for comparisons.  For right
12248         shifts and comparisons punt if there are mismatches in
12249         sizetype vs. non-sizetype types.
12250
12251 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12252
12253         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12254         avx_runtime.
12255
12256 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12257
12258         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12259         version number.
12260         * configure: Regenerate.
12261
12262 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12263
12264         * configure.ac (gcc_cv_ld_static_option): Define.
12265         (gcc_cv_ld_dynamic_option): Define.
12266         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12267         instead.
12268         (HAVE_LD_STATIC_DYNAMIC): Update message.
12269         (LD_STATIC_OPTION): Define.
12270         (LD_DYNAMIC_OPTION): Define.
12271         * configure: Regenerate.
12272         * config.in: Regenerate.
12273         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12274         HAVE_LD_STATIC_DYNAMIC]: Use them.
12275
12276 2011-01-31  Nick Clifton  <nickc@redhat.com>
12277
12278         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12279         registers inside interrupt handlers if the handler is not a leaf
12280         function.
12281
12282 2011-01-31  Nick Clifton  <nickc@redhat.com>
12283
12284         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12285         reg_renumber returning an INVALID_REGNUM.
12286
12287 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12288
12289         PR libgcj/44341
12290         * doc/install.texi: Document host options discarded when cross
12291         configuring target libraries.
12292
12293 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12294
12295         Reverted:
12296         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12297         PR debug/45136
12298         PR debug/45130
12299         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12300         debug insns.
12301         (no_real_insns_p, schedule_block, set_priorities): Drop special
12302         treatment of boundary debug insns.
12303         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12304         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12305         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12306         (BOUNDARY_DEBUG_INSN_P): Likewise.
12307         (SCHEDULE_DEBUG_INSN_P): Likewise.
12308         * sched-rgn.c (init_ready_list): Drop special treatment of
12309         boundary debug insns.
12310         * final.c (rest_of_clean-state): Clear notes' BB.
12311
12312 2011-01-31  Alan Modra  <amodra@gmail.com>
12313
12314         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12315         toc relative expressions as we do in print_operand_address.
12316
12317 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12318
12319         * doc/extend.texi: Follow spelling conventions.
12320         * doc/invoke.texi: Fix a typo.
12321
12322 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12323
12324         * config/hpux11.opt: New.
12325         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12326         ia64*-*-hpux*): Use hpux11.opt.
12327
12328 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12329
12330         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12331         to tmake_file.
12332
12333 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12334
12335         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12336         support sites.
12337
12338 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12339
12340         * doc/install.texi (Binaries): Remove outdated reference for
12341         Motorola 68HC11/68HC12 downloads.
12342
12343 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12344
12345         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12346         Drepper's paper.
12347
12348 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12349
12350         PR bootstrap/47147
12351         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12352         used by NetBSD.
12353
12354 2011-01-28  Ahmad Sharif  <asharif@google.com>
12355
12356         * value-prof.c (check_counter): Corrected error message.
12357
12358 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12359
12360         * config/arm/arm.c (arm_legitimize_reload_address): New.
12361         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12362         arm_legitimize_reload_address.
12363         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12364
12365 2011-01-28  Ian Lance Taylor  <iant@google.com>
12366
12367         * godump.c (go_define): Ignore macros whose definitions include
12368         two adjacent operands.
12369
12370 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12371
12372         PR target/42894
12373         * varasm.c (force_const_mem): Store copy of x in desc->constant
12374         instead of x itself.
12375         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12376         itself into REG_EQUAL note.
12377
12378 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12379
12380         * config/freebsd.opt (posix, rdynamic): New Driver options.
12381
12382 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12383
12384         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12385         -Bstatic/-Bdynamic.
12386         * configure: Regenerate.
12387
12388 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12389
12390         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12391         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12392
12393 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12394
12395         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12396         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12397         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12398         (s390_preferred_reload_class): Make static. Change return and
12399         'rclass' argument type to reg_class_t.
12400
12401 2011-01-27  Jan Hubicka  <jh@suse.cz>
12402
12403         PR middle-end/46949
12404         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12405         (process_function_and_variable_attributes): Check defined weakrefs.
12406
12407 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12408
12409         PR tree-optimization/47228
12410         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12411         build_ref_for_offset.
12412
12413 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12414
12415         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12416
12417 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12418
12419         PR rtl-optimization/46856
12420         * postreload.c (reload_combine_recognize_const_pattern): Do not
12421         separate cc0 setter and user on cc0 targets.
12422
12423 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12424
12425         PR c/43082
12426         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12427         passed a VOID_TYPE expression, immediately emit an error and
12428         return error_mark_node.
12429
12430 2011-01-26  Jeff Law  <law@redhat.com>
12431
12432         PR rtl-optimization/47464
12433         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12434         rather than may_trap_p as needed.
12435
12436 2011-01-26  DJ Delorie  <dj@redhat.com>
12437
12438         PR rtl-optimization/46878
12439         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12440         setter/user dependency as well.
12441
12442 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12443
12444         PR rtl-optimization/44469
12445         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12446         after removing trivially dead basic blocks.
12447
12448 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12449
12450         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12451         * config/frv/frv.h (LINK_SPEC): Likewise.
12452         * config/i386/netware.h (LINK_SPEC): Likewise.
12453         * config/m68k/linux.h (ASM_SPEC): Likewise.
12454         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12455         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12456         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12457         * config/sparc/linux.h (ASM_SPEC): Likewise.
12458         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12459         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12460
12461 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12462
12463         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12464         * config/frv/frv.h (ASM_SPEC): Likewise.
12465         * config/m68k/linux.h (ASM_SPEC): Likewise.
12466         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12467         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12468         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12469         * config/sparc/linux.h (ASM_SPEC): Likewise.
12470         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12471         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12472
12473 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12474
12475         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12476         * config/frv/frv.h (LINK_SPEC): Likewise.
12477         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12478
12479 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12480
12481         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12482         * config/frv/frv.h (ASM_SPEC): Likewise.
12483         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12484         * config/m68k/linux.h (ASM_SPEC): Likewise.
12485         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12486         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12487         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12488         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12489         * config/sparc/linux.h (ASM_SPEC): Likewise.
12490         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12491         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12492         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12493
12494 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12495
12496         PR target/46997
12497         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12498         (*mux2): Ditto.
12499         (vec_extract_evenodd_help): Ditto.
12500         (vec_extract_evenv4hi): Ditto.
12501         (vec_extract_oddv4hi): Ditto.
12502         (vec_interleave_lowv2si): Ditto.
12503         (vec_interleave_highv2si): Ditto.
12504         (vec_extract_evenv2si): Ditto.
12505         (vec_extract_oddv2si: Ditto.
12506         (vec_pack_trunc_v2si): Ditto.
12507
12508 2011-01-22  Jan Hubicka  <jh@suse.cz>
12509
12510         PR target/47237
12511         * cgraph.h (cgraph_local_info): New field can_change_signature.
12512         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12513         signature can change.
12514         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12515         can change.
12516         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12517         (cgraph_function_versioning): We can not change signature of functions
12518         that don't allow that.
12519         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12520         (lto_input_node): Likewise.
12521         * ipa-inline.c (compute_inline_parameters): Compute
12522         local.can_change_signature.
12523         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12524         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12525         functions that can not change signature.
12526         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12527         init_cumulative_args): Do not use local calling conventions
12528         for functions that can not change signature.
12529
12530 2011-01-22  Jan Hubicka  <jh@suse.cz>
12531
12532         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12533
12534 2011-01-26  Richard Guenther  <rguenther@suse.de>
12535
12536         PR tree-optimization/47190
12537         * cgraphunit.c (process_common_attributes): New function.
12538         (process_function_and_variable_attributes): Use it.
12539
12540 2011-01-26  Richard Guenther  <rguenther@suse.de>
12541
12542         PR lto/47423
12543         * cgraphbuild.c (record_eh_tables): Record reference to personality
12544         function.
12545
12546 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12547
12548         PR debug/45454
12549         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12550         non-debug insns from moving up.
12551
12552 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12553
12554         PR target/40125
12555         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12556         t-dlldir{,-x} fragment for build and add it to tmake_file.
12557         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12558         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12559         * config/i386/t-dlldir: New file.
12560         (SHLIB_DLLDIR): Define.
12561         * config/i386/t-dlldir-x: New file.
12562         (SHLIB_DLLDIR): Define.
12563         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12564         (SHLIB_INSTALL): Use it.
12565
12566 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12567
12568         PR target/47246
12569         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12570         lower bound of the allowed Thumb-2 coprocessor load/store
12571         index range to -256. Add explaining comment.
12572
12573 2011-01-25  Ian Lance Taylor  <iant@google.com>
12574
12575         * godump.c (go_define): Improve lexing of macro expansion to only
12576         accept expressions which match Go spec.
12577
12578 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12579
12580         PR c++/43601
12581         * tree.c (handle_dll_attribute): Handle it.
12582         * doc/extend.texi (@item dllexport): Mention it.
12583         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12584
12585 2011-01-25  Ian Lance Taylor  <iant@google.com>
12586
12587         PR tree-optimization/26854
12588         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12589         (decl_jump_unsafe): Move higher in file, with no other change.
12590         (bind): Set has_jump_unsafe_decl if appropriate.
12591         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12592         (check_earlier_gotos): Likewise.
12593         (c_check_switch_jump_warnings): Likewise.
12594
12595 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12596
12597         * doc/invoke.texi (Warning Options): Add missing hyphen.
12598         (-fprofile-dir): Minor grammatical fixes.
12599         (-fbranch-probabilities): Likewise.
12600
12601 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12602
12603         PR debug/45136
12604         PR debug/45130
12605         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12606         debug insns.
12607         (no_real_insns_p, schedule_block, set_priorities): Drop special
12608         treatment of boundary debug insns.
12609         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12610         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12611         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12612         (BOUNDARY_DEBUG_INSN_P): Likewise.
12613         (SCHEDULE_DEBUG_INSN_P): Likewise.
12614         * sched-rgn.c (init_ready_list): Drop special treatment of
12615         boundary debug insns.
12616         * final.c (rest_of_clean-state): Clear notes' BB.
12617
12618 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12619
12620         * Makefile.in (LAMBDA_H): Removed.
12621         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12622         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12623         lambda-trans.o, and tree-loop-linear.o.
12624         (lto-symtab.o): Remove dependence on LAMBDA_H.
12625         (tree-loop-linear.o): Remove rule.
12626         (lambda-mat.o): Same.
12627         (lambda-trans.o): Same.
12628         (lambda-code.o): Same.
12629         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12630         (tree-vect-slp.o): Same.
12631         * hwint.h (gcd): Moved here.
12632         (least_common_multiple): Same.
12633         * lambda-code.c: Removed.
12634         * lambda-mat.c: Removed.
12635         * lambda-trans.c: Removed.
12636         * lambda.h: Removed.
12637         * tree-loop-linear.c: Removed.
12638         * lto-symtab.c: Do not include lambda.h.
12639         * omega.c (gcd): Removed.
12640         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12641         * tree-data-ref.c (print_lambda_vector): Moved here.
12642         (lambda_vector_copy): Same.
12643         (lambda_matrix_copy): Same.
12644         (lambda_matrix_id): Same.
12645         (lambda_vector_first_nz): Same.
12646         (lambda_matrix_row_add): Same.
12647         (lambda_matrix_row_exchange): Same.
12648         (lambda_vector_mult_const): Same.
12649         (lambda_vector_negate): Same.
12650         (lambda_matrix_row_negate): Same.
12651         (lambda_vector_equal): Same.
12652         (lambda_matrix_right_hermite): Same.
12653         * tree-data-ref.h: Do not include lambda.h.
12654         (lambda_vector): Moved here.
12655         (lambda_matrix): Same.
12656         (dependence_level): Same.
12657         (lambda_transform_legal_p): Removed declaration.
12658         (lambda_collect_parameters): Same.
12659         (lambda_compute_access_matrices): Same.
12660         (lambda_vector_gcd): Same.
12661         (lambda_vector_new): Same.
12662         (lambda_vector_clear): Same.
12663         (lambda_vector_lexico_pos): Same.
12664         (lambda_vector_zerop): Same.
12665         (lambda_matrix_new): Same.
12666         * tree-flow.h (least_common_multiple): Removed declaration.
12667         * tree-parloops.c (lambda_trans_matrix): Moved here.
12668         (LTM_MATRIX): Same.
12669         (LTM_ROWSIZE): Same.
12670         (LTM_COLSIZE): Same.
12671         (LTM_DENOMINATOR): Same.
12672         (lambda_trans_matrix_new): Same.
12673         (lambda_matrix_vector_mult): Same.
12674         (lambda_transform_legal_p): Same.
12675         * tree-pass.h (pass_linear_transform): Removed declaration.
12676         * tree-ssa-loop.c (tree_linear_transform): Removed.
12677         (gate_tree_linear_transform): Removed.
12678         (pass_linear_transform): Removed.
12679         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12680         flag_loop_interchange.
12681
12682 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12683
12684         PR tree-optimization/47265
12685         PR tree-optimization/47443
12686         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12687         if name still has some uses.
12688
12689 2011-01-25  Martin Jambor  <mjambor@suse.cz>
12690
12691         PR tree-optimization/47382
12692         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12693         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12694
12695 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
12696
12697         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12698         sjlj_except_unwind_info.
12699
12700 2011-01-25  Richard Guenther  <rguenther@suse.de>
12701
12702         PR tree-optimization/47426
12703         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12704         visible functions results escape.
12705
12706 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12707
12708         PR target/45701
12709         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12710         (arm_get_frame_offsets): Use it.
12711
12712 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12713             Jakub Jelinek  <jakub@redhat.com>
12714
12715         PR tree-optimization/47271
12716         * tree-if-conv.c (bb_postdominates_preds): New.
12717         (if_convertible_bb_p): Call bb_postdominates_preds.
12718         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12719         (predicate_scalar_phi): Call bb_postdominates_preds.
12720
12721 2011-01-25  Nick Clifton  <nickc@redhat.com>
12722
12723         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12724         * config/rx/rx.c (rx_function_value): Likewise.
12725         (rx_promote_function_mode): Likewise.
12726         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12727         in order to make it legitimate.
12728         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12729         make sure that the first operand is the same as the result register.
12730         (addsi3_unspec): Delete.
12731         (subdi3): Do not accept immediate operands.
12732         (subdi3_internal): Likewise.
12733
12734 2011-01-25  Jeff Law  <law@redhat.com>
12735
12736         PR rtl-optimization/37273
12737         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12738         handle them like argument loads from stack slots.  Do not double
12739         count memory for memory constants and argument loads from stack slots.
12740
12741 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12742
12743         PR tree-optimization/47427
12744         PR tree-optimization/47428
12745         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12746         coalesce if the new root var would be TREE_READONLY.
12747
12748 2011-01-25  Richard Guenther  <rguenther@suse.de>
12749
12750         PR middle-end/47414
12751         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12752         correct type for TBAA.
12753
12754 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12755
12756         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12757         (close_phi_written_to_memory): Call for_each_index with
12758         dr_indices_valid_in_loop.
12759
12760 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12761
12762         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12763         when it is initialized.
12764
12765 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12766
12767         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12768         call to graphite_find_data_references_in_stmt.
12769         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12770         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
12771         call to graphite_find_data_references_in_stmt.
12772         (analyze_drs_in_stmts): Same.
12773         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12774         in which the scalar analysis of indices is performed.
12775         (create_data_ref): Same.  Update call to dr_analyze_indices.
12776         (find_data_references_in_stmt): Update call to create_data_ref.
12777         (graphite_find_data_references_in_stmt): Same.
12778         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12779         declaration.
12780         (create_data_ref): Same.
12781         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12782         call to create_data_ref.
12783
12784 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12785
12786         * graphite-sese-to-poly.c (build_poly_scop): Move
12787         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
12788
12789 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12790
12791         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12792         VAR_DECL, PARM_DECL, and RESULT_DECL.
12793
12794 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12795
12796         * graphite-dependences.c (reduction_dr_1): Allow several reductions
12797         in a reduction PBB.
12798         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12799         that have already been marked as PBB_IS_REDUCTION.
12800
12801 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12802
12803         * graphite-scop-detection.c (same_close_phi_node): New.
12804         (remove_duplicate_close_phi): New.
12805         (make_close_phi_nodes_unique): New.
12806         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12807
12808 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12809
12810         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12811         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12812         of both data references to be the same.
12813
12814 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12815
12816         * graphite-dependences.c (build_lexicographical_constraint): Remove
12817         the gdim parameter.
12818         (build_lexicographical_constraint): Adjust call to
12819         ppl_powerset_is_empty.
12820         (dependence_polyhedron): Same.
12821         (graphite_legal_transform_dr): Same.
12822         (graphite_carried_dependence_level_k): Same.
12823         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12824         parameter.
12825         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12826
12827 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12828
12829         * graphite-sese-to-poly.c
12830         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12831         (close_phi_written_to_memory): New.
12832         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12833         and unshare_expr.
12834
12835 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12836
12837         * doc/install.texi: Update the expected version number of PPL to 0.11.
12838         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12839         #if PPL_VERSION_MINOR < 11.
12840
12841 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12842
12843         * graphite-dependences.c: Include graphite-cloog-util.h.
12844         (new_poly_ddr): Inlined into dependence_polyhedron.
12845         (free_poly_ddr): Moved close by new_poly_ddr.
12846         (dependence_polyhedron_1): Renamed dependence_polyhedron.
12847         Early return NULL when ppl_powerset_is_empty returns true.
12848         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
12849         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
12850         (graphite_legal_transform_dr): Call new_poly_ddr.
12851         (graphite_carried_dependence_level_k): Same.
12852         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
12853         (dot_transformed_deps_stmt_1): Removed.
12854         (dot_deps_stmt_1): Call dot_deps_stmt_2.
12855         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
12856         (dot_deps_1): Call dot_deps_2.
12857         * Makefile.in (graphite-dependences.o): Add missing dependence on
12858         graphite-cloog-util.h.
12859
12860 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12861
12862         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12863         (build_lexicographical_constraint): Same.
12864         (dependence_polyhedron_1): Same.
12865         (graphite_legal_transform_dr): Same.
12866         (graphite_carried_dependence_level_k): Same.
12867         * graphite-ppl.c (ppl_powerset_is_empty): New.
12868         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12869         * tree-data-ref.c (dump_data_reference): Print the basic block index.
12870
12871 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12872
12873         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12874         the "a followed by b" relation and document it.
12875
12876 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12877
12878         * graphite-dependences.c (build_lexicographical_constraint): Stop the
12879         iteration when the bag of constraints is empty.
12880
12881 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12882
12883         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12884
12885 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12886
12887         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12888         nest and two loop depths as parameters.
12889         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12890         lst_perfect_nestify.
12891
12892 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12893
12894         * graphite-dependences.c (print_pddr): Call
12895         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12896
12897 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12898
12899         * graphite-ppl.c (debug_gmp_value): New.
12900         * graphite-ppl.h (debug_gmp_value): Declared.
12901
12902 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
12903
12904         * doc/install.texi: Document availability of cloog-0.16.
12905
12906 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
12907
12908         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12909         invalid postdominance info.
12910
12911 2011-01-24  Jan Hubicka  <jh@suse.cz>
12912
12913         PR c/21659
12914         * doc/extend.texi (weak pragma): Drop claim that it must
12915         appear before definition.
12916         * varasm.c (merge_weak, declare_weak): Only sanity check
12917         that DECL is not output at a time it is declared weak.
12918
12919 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
12920
12921         * machmode.def: Fixed comments.
12922
12923 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
12924
12925         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12926
12927 2011-01-24  Paul Koning  <ni1d@arrl.net>
12928
12929         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
12930         WORDS_BIG_ENDIAN.
12931
12932 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12933
12934         PR target/46519
12935         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12936         (block_info): Add scanned and prev.
12937         (move_or_delete_vzeroupper_2): Return if the basic block
12938         has been scanned and the upper 128bit state is unchanged
12939         from the last scan.
12940         (move_or_delete_vzeroupper_1): Return true if the exit
12941         state is changed.
12942         (move_or_delete_vzeroupper): Visit basic blocks using the
12943         work-list based algorithm based on vt_find_locations in
12944         var-tracking.c.
12945
12946         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12947
12948 2011-01-24  Nick Clifton  <nickc@redhat.com>
12949
12950         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12951         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12952         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
12953         then define __v850e1__.
12954         * doc/invoke.texi: Document -mv850es.
12955
12956 2011-01-24  Richard Henderson  <rth@redhat.com>
12957
12958         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12959         compound unordered comparisons.
12960         * config/rx/rx.c (rx_split_fp_compare): Remove.
12961         * config/rx/rx-protos.h: Update.
12962         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12963         (cbranchsf4): Don't call rx_split_fp_compare.
12964         (*cbranchsf4): Use rx_split_cbranch.
12965         (*cmpsf): Don't accept "i" constraint.
12966         (*conditional_branch): Only valid after reload.
12967         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
12968
12969 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12970
12971         PR target/47385
12972         * config/rs6000/altivec.md (vector constant splitters): Add
12973         support for creating vector single precision constants if -mvsx is
12974         used and we would create the constant using Altivec primitives.
12975
12976 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
12977             Richard Sandiford  <rdsandiford@googlemail.com>
12978
12979         PR rtl-optimization/47166
12980         * reload1.c (emit_reload_insns): Disable the spill_reg_store
12981         mechanism for PRE_MODIFY and POST_MODIFY.
12982         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12983         reloadreg.
12984
12985 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
12986
12987         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
12988
12989 2011-01-22  Jan Hubicka  <jh@suse.cz>
12990
12991         PR lto/47333
12992         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12993
12994 2011-01-22  Jan Hubicka  <jh@suse.cz>
12995
12996         PR tree-optimization/43884
12997         PR lto/44334
12998         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
12999         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13000
13001 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13002
13003         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13004         * config/s390/s390.c (s390_register_move_cost,
13005         s390_memory_move_cost): New.
13006         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13007
13008 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13009
13010         PR middle-end/47401
13011         * except.c (sjlj_assign_call_site_values): Move setting the
13012         crtl->uses_eh_lsda flag to ...
13013         (sjlj_mark_call_sites): ... here.
13014         (sjlj_emit_function_enter): Support NULL dispatch label.
13015         (sjlj_build_landing_pads): In a function with no landing pads
13016         that still has must-not-throw regions, generate code to register
13017         a personality function with empty LSDA.
13018
13019 2011-01-21  Richard Henderson  <rth@redhat.com>
13020
13021         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13022
13023         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13024
13025         * compare-elim.c: New file.
13026         * Makefile.in (OBJS-common): Add it.
13027         (compare-elim.o): New.
13028         * common.opt (fcompare-elim): New.
13029         * opts.c (default_options_table): Add OPT_fcompare_elim.
13030         * tree-pass.h (pass_compare_elim_after_reload): New.
13031         * passes.c (init_optimization_passes): Add it.
13032         * recog.h: Protect against re-inclusion.
13033         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13034         * doc/invoke.texi (-fcompare-elim): Document it.
13035         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13036         * doc/tm.texi: Rebuild.
13037
13038 2011-01-22  Nick Clifton  <nickc@redhat.com>
13039
13040         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13041         rx_split_fp_compare.
13042
13043 2011-01-22  Nick Clifton  <nickc@redhat.com>
13044
13045         * config/rx/rx.md (UNSPEC_CONST): New.
13046         (deallocate_and_return): Wrap the amount popped off the stack in
13047         an UNSPEC_CONST in order to stop it being rejected by
13048         -mmax-constant-size.
13049         (pop_and_return): Add a "(return)" rtx.
13050         (call): Drop the immediate operand.
13051         (call_internal): Likewise.
13052         (call_value): Likewise.
13053         (call_value_internal): Likewise.
13054         (sibcall_internal): Likewise.
13055         (sibcall_value_internal): Likewise.
13056         (sibcall): Likewise.  Generate an explicit call using
13057         sibcall_internal.
13058         (sibcall_value): Likewise.
13059         (mov<>): FAIL if a constant operand is not legitimate.
13060         (addsi3_unpsec): New pattern.
13061
13062         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13063         (ok_for_max_constant): New function.
13064         (gen_safe_add): New function.
13065         (rx_expand_prologue): Use gen_safe_add.
13066         (rx_expand_epilogue): Likewise.
13067         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13068         UNSPEC CONSTs.
13069
13070 2011-01-21  Jeff Law  <law@redhat.com>
13071
13072         PR tree-optimization/47053
13073         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13074         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13075         statements are deleted.
13076         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13077         is nonempty, then purge dead edges and cleanup the CFG.
13078
13079 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13080
13081         PR debug/47402
13082         Temporarily revert:
13083         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13084         PR debug/47106
13085         * tree-dfa.c (create_var_ann): Mark variable as used.
13086
13087 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13088
13089         PR middle-end/45566
13090         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13091         notes from other section in hot/cold partitioning even if
13092         last_action is -3.  Increment call_site_base.
13093
13094         PR rtl-optimization/47366
13095         * fwprop.c (forward_propagate_into): Return bool.  If
13096         any changes are made, -fnon-call-exceptions is used and
13097         REG_EH_REGION note is present, call purge_dead_edges
13098         and return true if it purged anything.
13099         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13100         any EH edges were purged.
13101
13102 2011-01-21  Jeff Law  <law@redhat.com>
13103
13104         PR rtl-optimization/41619
13105         * caller-save.c (setup_save_areas): Break out code to determine
13106         which hard regs are live across calls by examining the reload chains
13107         so that it is always used.
13108         Eliminate code which checked REG_N_CALLS_CROSSED.
13109
13110 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13111
13112         PR tree-optimization/47355
13113         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13114         NOP has non-debug uses beyond PHIs in new_bb.
13115
13116 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13117
13118         PR debug/47106
13119         * cfgexpand.c (account_used_vars_for_block): Only account vars
13120         that are annotated as used.
13121         (estimated_stack_frame_size): Don't set TREE_USED.
13122         * tree-dfa.c (create_var_ann): Mark variable as used.
13123
13124 2011-01-21  Richard Guenther  <rguenther@suse.de>
13125
13126         PR middle-end/47395
13127         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13128
13129 2011-01-21  Richard Guenther  <rguenther@suse.de>
13130
13131         PR tree-optimization/47365
13132         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13133         (vn_reference_lookup_pieces): Adjust.
13134         (vn_reference_lookup): Likewise.
13135         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13136         (vn_reference_lookup_3): Only look through kills if in
13137         VN_WALKREWRITE mode.
13138         (vn_reference_lookup_pieces): Adjust.
13139         (vn_reference_lookup): Likewise.
13140         (visit_reference_op_load): Likewise.
13141         (visit_reference_op_store): Likewise.
13142         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13143         (compute_avail): Likewise.
13144         (eliminate): Likewise.
13145
13146 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13147
13148         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13149         DECL_IGNORED_P non-reg vars if they are used.
13150
13151         PR tree-optimization/47391
13152         * varpool.c (const_value_known_p): Return false if
13153         decl is volatile.
13154
13155 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13156
13157         PR bootstrap/47215
13158         * config/i386/i386.c (ix86_local_alignment): Handle
13159         case for va_list_type_node is nil.
13160         (ix86_canonical_va_list_type): Likewise.
13161
13162 2011-01-21  Alan Modra  <amodra@gmail.com>
13163
13164         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13165         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13166
13167 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13168
13169         * config/arm/arm.md (define_attr type): Rename f_load
13170         and f_store to f_fpa_load and f_fpa_store. Update.
13171         (write_conflict): Deal with rename fallout.
13172         (*push_fp_multi): Likewise.
13173         * config/arm/fpa.md (f_load): Use f_fpa_load.
13174         (f_store): Use f_fpa_store.
13175         (*movsf_fpa): Likewise.
13176         (*movdf_fpa): Likewise.
13177         (*movxf_fpa): Likewise.
13178         (*thumb2_movsf_fpa): Likewise.
13179         (*thumb2_movdf_fpa): Likewise.
13180         (*thumb2_movxf_fpa): Likewise.
13181         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13182         f_loadd and f_stored.
13183         (*thumb2_movdi_vfp): Likewise.
13184         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13185         (*thumb2_movsi_vfp): Likewise.
13186         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13187         Use f_loads instead of f_load.
13188         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13189
13190 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13191
13192         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13193         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13194         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13195         (xtensa_mode_dependent_address_p): New function.
13196         (constantpool_address_p): Make static. Change return type to bool.
13197         Change argument type to const_rtx. Use CONST_INT_P predicate.
13198
13199 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13200
13201         PR debug/46583
13202         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13203
13204 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13205
13206         PR debug/47283
13207         * cfgexpand.c (expand_debug_expr): Instead of generating
13208         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13209         etc. handling.
13210
13211 2011-01-20  Richard Guenther  <rguenther@suse.de>
13212
13213         PR middle-end/47370
13214         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13215         the pointer operand of MEM_REFs.
13216
13217 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13218
13219         PR tree-optimization/46130
13220         * ipa-split.c (consider_split): If return_bb contains non-virtual
13221         PHIs other than for retval or if split_function would not adjust it,
13222         refuse to split.
13223
13224 2011-01-20  Richard Guenther  <rguenther@suse.de>
13225
13226         PR tree-optimization/47167
13227         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13228         Revert previous change, only avoid enumeral type changes.
13229
13230 2011-01-19  Mike Stump  <mikestump@comcast.net>
13231
13232         * doc/tm.texi.in (BRANCH_COST): Englishify.
13233         * doc/tm.texi (BRANCH_COST): Likewise.
13234
13235 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13236
13237         PR c++/47291
13238         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13239         (gen_scheduled_generic_parms_dies): New functions.
13240         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13241         generation for the end of CU compilation.
13242         (dwarf2out_finish): Generate template parameters DIEs here.
13243
13244 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13245
13246         PR debug/46240
13247         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13248         debug bind stmt on merge edges.
13249
13250 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13251
13252         PR debug/47079
13253         PR debug/46724
13254         * function.c (instantiate_expr): Instantiate incoming rtl of
13255         implicit arguments, and recurse on VALUE_EXPRs.
13256         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13257         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13258
13259 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13260
13261         * c-parser.c (c_parser_for_statement): Initialize
13262         collection_expression.
13263
13264 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13265
13266         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13267
13268 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13269
13270         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13271         (LINK_SHLIB_SPEC): Don't use %(link_path).
13272         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13273
13274 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13275
13276         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13277         (NO_SHARED_LIB_SUPPORT): Remove.
13278         (LINK_SHLIB_SPEC): Remove one conditional definition.
13279
13280 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13281
13282         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13283         %{call_shared}.
13284         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13285         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13286         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13287         %{call_shared} and conditionals on these options not being passed.
13288         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13289         %{call_shared}.
13290
13291 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13292
13293         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13294         simplify.
13295
13296         * ipa-split.c: Spelling fixes.
13297
13298 2011-01-19  Richard Henderson  <rth@redhat.com>
13299
13300         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13301         (*mulsi3): Likewise.
13302
13303         * longlong.h [__mn10300__] (count_leading_zeros): New.
13304         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13305         [__mn10300__] (add_ssaaaa, subddmmss): New.
13306         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13307         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13308
13309 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13310
13311         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13312
13313 2011-01-19  Richard Henderson  <rth@redhat.com>
13314
13315         * config/mn10300/mn10300.md (addsi3_flags): New.
13316         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13317         (subsi3_flags, subc_internal, subdi3): New.
13318         (subdi3_internal, *subdi3_degenerate): New.
13319         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13320
13321         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13322         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13323         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13324         * config/mn10300/mn10300-protos.h: Update.
13325         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13326         (return_ret): Likewise.  Rename from return_internal_regs.
13327         (return_internal): Remove.
13328
13329         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13330         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13331         (mn10300_legitimate_constant_p): Likewise.
13332         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13333         (mn10300_frame_size): New.
13334         (mn10300_expand_prologue): Use it.
13335         (mn10300_expand_epilogue): Likewise.
13336         (mn10300_initial_offset): Likewise.
13337         * config/mn10300/mn10300-protos.h: Update.
13338         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13339         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13340         (prologue, epilogue, return_internal): Tidy output code.
13341         (mn10300_store_multiple_operation, return): Likewise.
13342         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13343         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13344         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13345         (load_pic, am33_load_pic): New.
13346         (mn10300_load_pic0, mn10300_load_pic1): New.
13347
13348         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13349         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13350         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13351         (cc_flags_for_mode, cc_flags_for_code): New.
13352         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13353         overflow flag is not valid.  Validate that the flags we need
13354         for the comparison are valid.
13355         (mn10300_output_cmp): Remove.
13356         (mn10300_output_add): New.
13357         (mn10300_select_cc_mode): Use cc_flags_for_code.
13358         (mn10300_split_cbranch): New.
13359         (mn10300_match_ccmode): New.
13360         (mn10300_split_and_operand_count): New.
13361         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13362         to the function.
13363         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13364         (addsi3): ... here.  Use mn10300_output_add.
13365         (*addsi3_flags): New.
13366         (*am33_subsi3, *mn10300_subsi3): Merge...
13367         (subsi3): ... here.  Use attribute isa.
13368         (*subsi3_flags): New.
13369         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13370         when possible.
13371         (*am33_andsi3, *mn10300_andsi3): Merge...
13372         (andsi3): ... here.
13373         (*andsi3_flags): New.
13374         (andsi3 splitters): New.
13375         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13376         (iorsi3): ... here.
13377         (*iorsi3_flags): New.
13378         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13379         (xorsi3): ... here.
13380         (*xorsi3_flags): New.
13381         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13382         (one_cmplsi2): ... here.
13383         (*one_cmplsi2_flags): New.
13384         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13385         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13386         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13387         use matching constraints to eliminate a self-comparison.
13388         (*integer_conditional_branch): Rename from integer_conditional_branch.
13389         Use int_mode_flags to match CC_REG.
13390         (*cbranchsi4_btst, *btstsi): New.
13391         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13392         mn10300_split_cbranch.
13393         (*am33_cmpsf): Rename from am33_cmpsf.
13394         (*float_conditional_branch): Rename from float_conditional_branch.
13395         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13396         (zero_extendqisi2): ... here.
13397         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13398         (zero_extendhisi2): ... here.
13399         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13400         (extendqisi2): ... here.
13401         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13402         (extendhisi2): ... here.
13403         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13404         (ashlsi3): ... here.
13405         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13406         (lshrsi3): ... here.
13407         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13408         (ashrsi3): ... here.
13409         (consecutive add peephole): Remove.
13410         * config/mn10300/predicates.md (label_ref_operand): New.
13411         (int_mode_flags): New.
13412         (CCZN_comparison_operator): New.
13413
13414         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13415         (throughput_42_latency_43): New reservation.
13416         (mulsidi3, umulsidi3): New expanders.
13417         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13418         the MDR register to allocation; separately allocate the low and
13419         high parts of the DImode result.
13420         (umulsidi3_internal): Similarly.
13421         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13422         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13423         (udivsi3, umodsi3): Remove.
13424         (udivmodsi4, divmodsi4): New expanders.
13425         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13426         (*divmodsi4): Simiarly.
13427         (ext_internal): New.
13428
13429         * config/mn10300/constraints.md ("z"): New constraint.
13430         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13431         (FIXED_REGISTERS): Don't fix MDR.
13432         (CALL_USED_REGSITERS): Reformat nicely.
13433         (REG_ALLOC_ORDER): Add MDR.
13434         (enum regclass): Add MDR_REGS.
13435         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13436         (IRA_COVER_CLASSES): Add MDR_REGS.
13437         (REGNO_REG_CLASS): Handle MDR_REG.
13438         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13439         (mn10300_register_move_cost): Likewise.
13440         * config/mn10300/mn10300.md (MDR_REG): New.
13441         (*movsi_internal): Handle moves to/from MDR_REGS.
13442
13443         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13444         POST_MODIFY.
13445         (mn10300_secondary_reload): Tidy combination reload classes.
13446         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13447         addresses for AM33.  Allow symbolic offsets for reg+imm.
13448         (mn10300_regno_in_class_p): New.
13449         (mn10300_legitimize_reload_address): New.
13450         * config/mn10300/mn10300.h (enum reg_class): Remove
13451         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13452         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13453         SP_OR_GENERAL_REGS.
13454         (REG_CLASS_NAMES): Update to match.
13455         (REG_CLASS_CONTENTS): Likewise.
13456         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13457         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13458         (REGNO_IN_RANGE_P): Remove.
13459         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13460         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13461         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13462         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13463         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13464         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13465         (REGNO_GENERAL_P): New.
13466         (HAVE_POST_MODIFY_DISP): New.
13467         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13468         (LEGITIMIZE_RELOAD_ADDRESS): New.
13469         * config/mn10300/mn10300-protos.h: Update.
13470
13471         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13472         DATA_REGS for AM33 stack-pointer destination.
13473         (mn10300_preferred_output_reload_class): Likewise.
13474         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13475         into a form appropriate for ...
13476         (TARGET_SECONDARY_RELOAD): New.
13477         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13478         * config/mn10300/mn10300-protos.h: Update.
13479         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13480         reload_insi; use the "A" constraint for the scratch; handle AM33
13481         moves of sp to non-address registers.
13482
13483         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13484         (*movqi_internal): ... here.
13485         (*am33_movhi, *mn10300_movhi): Merge into...
13486         (*movhi_internal): ... here.
13487         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13488         as the source/destination of moves from/to SP.
13489         (movsf): Only allow for AM33-2.
13490         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13491         any integer constant constraint.  Only allow for AM33-2.  Tidy
13492         all of the alternative outputs.
13493         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13494         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13495         for MN103.
13496         (udivsi3, umodsi3): New patterns for MN103 only.
13497
13498 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13499
13500         * doc/tm.texi.in: Spell out that a lack of register class unions
13501         can lead to ICEs.
13502         * doc/tm.texi: Regenerate.
13503
13504 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13505
13506         PR rtl-optimization/47337
13507         * dce.c (check_argument_store): New function.
13508         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13509
13510         PR tree-optimization/47290
13511         * tree-eh.c (infinite_empty_loop_p): New function.
13512         (cleanup_empty_eh): Use it.
13513
13514 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13515
13516         PR target/46997
13517         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13518         (a64_expand_widen_sum): Ditto.
13519         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13520         (vec_extract_evenodd_help): Ditto.
13521         (vec_extract_evenv4hi): Ditto.
13522         (vec_extract_oddv4hi): Ditto.
13523         (vec_extract_evenv2si): Ditto.
13524         (vec_extract_oddv2si): Ditto.
13525         (vec_extract_evenv2sf): Ditto.
13526         (vec_extract_oddv2sf): Ditto.
13527         (vec_pack_trunc_v4hi: Ditto.
13528         (vec_pack_trunc_v2si): Ditto.
13529         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13530         (vec_interleave_highv8qi): Ditto.
13531         (mix1_r): Ditto.
13532         (vec_extract_oddv8qi): Ditto.
13533         (vec_interleave_lowv4hi): Ditto.
13534         (vec_interleave_highv4hi): Ditto.
13535         (vec_interleave_lowv2si): Ditto.
13536         (vec_interleave_highv2si): Ditto.
13537
13538 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13539
13540         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13541         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13542         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13543         (pa_c_mode_for_suffix): New.
13544         (TARGET_EXPAND_BUILTIN): Define.
13545         (TARGET_C_MODE_FOR_SUFFIX): Define.
13546         (pa_builtins): Define.
13547         (pa_init_builtins): Register __float128 type and init new support
13548         builtins.
13549         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13550         * config/pa/quadlib.c (_U_Qfcopysign): New.
13551
13552 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13553
13554         PR middle-end/46894
13555         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13556         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13557         are defined.
13558
13559 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13560
13561         PR tree-optimization/47179
13562         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13563         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13564
13565 2011-01-18  Richard Guenther  <rguenther@suse.de>
13566
13567         PR rtl-optimization/47216
13568         * emit-rtl.c: Include tree-flow.h.
13569         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13570         of replicating it with different semantics.
13571         * Makefile.in (emit-rtl.o): Adjust.
13572
13573 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13574
13575         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13576         (cortex_a9_dp): Handle neon types correctly.
13577
13578 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13579
13580         PR rtl-optimization/47299
13581         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13582         subtarget.  Use normal multiplication if both operands are constants.
13583         * expmed.c (expand_widening_mult): Don't try to optimize constant
13584         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13585         before using it.
13586
13587 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13588
13589         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13590         spacing after 'e.g.', typos, comma, hyphenation.
13591
13592 2011-01-17  Richard Henderson  <rth@redhat.com>
13593
13594         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13595         (rx_restricted_mem_operand): New.
13596         (rx_shift_operand): Use register_operand.
13597         (rx_source_operand, rx_compare_operand): Likewise.
13598         * config/rx/rx.md (addsi3_flags): New expander.
13599         (adddi3): Rewrite as expander.
13600         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13601         (subsi3_flags): New expander.
13602         (subdi3): Rewrite as expander.
13603         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13604
13605         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13606         (rx_init_builtins): Remove sat builtin.
13607         (rx_expand_builtin): Likewise.
13608         * config/rx/rx.md (ssaddsi3): New.
13609         (*sat): Rename from sat.  Represent the CC_REG input.
13610
13611         * config/rx/predicates.md (rshift_operator): New.
13612         * config/rx/rx.c (rx_expand_insv): Remove.
13613         * config/rx/rx-protos.h: Update.
13614         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13615         operand to the canonical position.
13616         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13617         (*bitclr, *bitclr_in_memory): Similarly.
13618         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13619         (insv): Retain the zero_extract in the expansion.
13620
13621         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13622         (bswaphi2, bitinvert, revw): Likewise.
13623
13624         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13625         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13626         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13627         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13628         (bitset, bitset_in_memory): Likewise.
13629         (bitinvert, bitinvert_in_memory): Likewise.
13630         (bitclr, bitclr_in_memory): Likewise.
13631         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13632         (rx_strend, rx_cmpstrn): Likewise.
13633         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13634         (bitop peep2 patterns): Remove.
13635
13636         * config/rx/rx.c (rx_match_ccmode): New.
13637         * config/rx/rx-protos.h: Update.
13638         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13639         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13640         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13641         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13642         (fix_truncsfsi2, floatsisf2): Likewise.
13643         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13644         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13645         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13646         (*subsi3_flags, *xorsi3_flags): New.
13647
13648         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13649
13650         * config/rx/rx.c (rx_print_operand): Remove workaround for
13651         unsplit comparison operations.
13652
13653         * config/rx/rx.md (movsicc): Split after reload.
13654         (*movsicc): Merge *movsieq and *movsine via match_operator.
13655         (*stcc): New pattern.
13656
13657         * config/rx/rx.c (rx_float_compare_mode): Remove.
13658         * config/rx/rx.h (rx_float_compare_mode): Remove.
13659         * config/rx/rx.md (cstoresi4): Split after reload.
13660         (*sccc): New pattern.
13661
13662         * config/rx/predicates.md (label_ref_operand): New.
13663         (rx_z_comparison_operator): New.
13664         (rx_zs_comparison_operator): New.
13665         (rx_fp_comparison_operator): New.
13666         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13667         Validate that the flags are set properly for the comparison.
13668         (rx_gen_cond_branch_template): Remove.
13669         (rx_cc_modes_compatible): Remove.
13670         (mode_from_flags): New.
13671         (flags_from_code): Rename from flags_needed_for_conditional.
13672         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13673         (rx_select_cc_mode): Likewise.
13674         (rx_split_fp_compare): New.
13675         (rx_split_cbranch): New.
13676         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13677         (*cbranchsi4): Use match_operator and rx_split_cbranch.
13678         (*cbranchsf4): Similarly.
13679         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
13680         match_operator and rx_split_cbranch.
13681         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13682         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
13683         (*cmpsi): Rename from cmpsi.
13684         (*tstsi): Rename from tstsi.
13685         (*cmpsf): Rename from cmpsf; use CC_Fmode.
13686         (*conditional_branch): Rename from conditional_branch.
13687         (*reveresed_conditional_branch): Remove.
13688         (b<code>): Remove expander.
13689         * config/rx/rx-protos.h: Update.
13690
13691         * config/rx/rx.c (rx_compare_redundant): Remove.
13692         * config/rx/rx.md (cmpsi): Don't use it.
13693         * config/rx/rx-protos.h: Update.
13694
13695         * config/rx/rx-modes.def (CC_F): New mode.
13696         * config/rx/rx.c (rx_select_cc_mode): New.
13697         * config/rx/rx.h (SELECT_CC_MODE): Use it.
13698         * config/rx/rx-protos.h: Update.
13699
13700 2011-01-17  Richard Henderson  <rth@redhat.com>
13701
13702         * except.c (dump_eh_tree): Fix stray ; after for statement.
13703
13704 2011-01-17  Richard Guenther  <rguenther@suse.de>
13705
13706         PR tree-optimization/47313
13707         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13708         handling before copying the body.  Properly deal with
13709         by-reference result in SSA form.
13710
13711 2011-01-17  Ian Lance Taylor  <iant@google.com>
13712
13713         PR target/47219
13714         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13715         (struct_value_alias_set): Don't define.
13716         (sparc_option_override): Don't set sparc_sr_alias_set and
13717         struct_value_alias_set.
13718         (save_or_restore_regs): Use gen_frame_mem rather than calling
13719         set_mem_alias_set.
13720         (sparc_struct_value_rtx): Likewise.
13721
13722 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
13723
13724         PR target/47318
13725         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
13726         (_mm_maskstore_pd): Likewise.
13727         (_mm_maskload_ps): Likewise.
13728         (_mm_maskstore_ps): Likewise.
13729         (_mm256_maskload_pd): Change mask to __m256i.
13730         (_mm256_maskstore_pd): Likewise.
13731         (_mm256_maskload_ps): Likewise.
13732         (_mm256_maskstore_ps): Likewise.
13733
13734         * config/i386/i386-builtin-types.def: Updated.
13735         (ix86_expand_special_args_builtin): Likewise.
13736
13737         * config/i386/i386.c (bdesc_special_args): Update
13738         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13739         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13740         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13741         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13742
13743         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13744         Use <avxpermvecmode> on mask register.
13745         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13746
13747 2011-01-17  Olivier Hainque  <hainque@adacore.com>
13748             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
13749             Eric Botcazou  <ebotcazou@adacore.com>
13750
13751         PR target/46655
13752         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13753         if <= USHRT_MAX in 32-bit mode.
13754
13755 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13756
13757         * doc/install.texi (Configuration, Specific): Wrap long
13758         lines in examples.  Allow line wrapping in long options
13759         and URLs where beneficial for PDF output.
13760
13761 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
13762
13763         * config/mips/mips.c (mips_classify_symbol): Don't return
13764         SYMBOL_PC_RELATIVE for nonlocal labels.
13765
13766 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13767
13768         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13769
13770 2011-01-15  Jan Hubicka  <jh@suse.cz>
13771
13772         PR tree-optimization/47276
13773         * ipa.c (function_and_variable_visibility): Do not try to mark alias
13774         declarations as needed.
13775
13776 2011-01-15  Martin Jambor  <mjambor@suse.cz>
13777
13778         * common.opt (fdevirtualize): New flag.
13779         * doc/invoke.texi (Option Summary): Document it.
13780         * opts.c (default_options_table): Add devirtualize flag.
13781         * ipa-prop.c (detect_type_change): Return immediately if
13782         devirtualize flag is not set.
13783         (detect_type_change_ssa): Likewise.
13784         (compute_known_type_jump_func): Likewise.
13785         (ipa_analyze_virtual_call_uses): Likewise.
13786
13787 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13788
13789         PR tree-optimization/45934
13790         PR tree-optimization/46302
13791         * ipa-prop.c (type_change_info): New type.
13792         (stmt_may_be_vtbl_ptr_store): New function.
13793         (check_stmt_for_type_change): Likewise.
13794         (detect_type_change): Likewise.
13795         (detect_type_change_ssa): Likewise.
13796         (compute_complex_assign_jump_func): Check for dynamic type change.
13797         (compute_complex_ancestor_jump_func): Likewise.
13798         (compute_known_type_jump_func): Likewise.
13799         (compute_scalar_jump_functions): Likewise.
13800         (ipa_analyze_virtual_call_uses): Likewise.
13801         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13802
13803 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13804
13805         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13806         * config/i386/i386.opt (msse5): New Alias.
13807
13808 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13809
13810         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13811         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13812         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13813         * config/sparc/sparc.h (CC1_SPEC): Likewise.
13814
13815 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13816
13817         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13818         -mcpu options.
13819         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13820         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13821         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13822         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13823         Likewise.
13824         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13825
13826 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13827
13828         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
13829
13830 2011-01-14  Mike Stump  <mikestump@comcast.net>
13831
13832         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13833         * config/fr30/fr30.md: Likweise
13834         (movsi_push): Likewise.
13835         (movsi_pop): Likewise.
13836         (enter_func): Likewise.
13837         * config/moxie/moxie.md (movsi_push): Likewise.
13838         (movsi_pop): Likewise.
13839
13840 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13841
13842         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13843         %{no_archive} %{exact_version}.
13844         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13845         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13846         %{no_archive} %{exact_version}.
13847         * config/mips/openbsd.h (LINK_SPEC): Likewise.
13848         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13849         * config/mips/vxworks.h: Likewise.
13850
13851 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13852
13853         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
13854
13855 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13856
13857         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13858         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13859
13860 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13861
13862         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13863         -nodefaultlib.
13864
13865 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13866
13867         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13868         for mcpu not cpu.
13869         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13870         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13871         not cpu.
13872         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13873         Don't handle -shlib.
13874
13875 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13876
13877         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13878         (CC1_SPEC): Don't handle -profile.
13879
13880 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13881
13882         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13883         * config/mips/mips.h (CC1_SPEC): Likewise.
13884
13885 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13886
13887         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13888         * config/mips/mips.h (CC1_SPEC): Likewise.
13889
13890 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13891
13892         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13893         * config/m32r/linux.h (LINK_SPEC): Likewise.
13894         * config/mips/linux.h (LINK_SPEC): Likewise.
13895         * config/mips/linux64.h (LINK_SPEC): Likewise.
13896         * config/sparc/linux.h (LINK_SPEC): Likewise.
13897         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13898         LINK_SPEC): Likewise.
13899         * config/xtensa/linux.h (LINK_SPEC): Likewise.
13900
13901 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13902
13903         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13904         %{version:-v}.
13905         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13906
13907 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13908
13909         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13910         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13911
13912 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13913
13914         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13915
13916 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13917
13918         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13919         supports -Bstatic/-Bdynamic.
13920         * configure: Regenerate.
13921
13922 2011-01-14  Jan Hubicka  <jh@suse.cz>
13923             Jack Howarth  <howarth@bromo.med.uc.edu>
13924
13925         PR target/46037
13926         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13927         when checking debug_info_level. Test write_symbols instead of
13928         debug_hooks->var_location when setting flag_var_tracking_uninit.
13929
13930 2011-01-14  Richard Guenther  <rguenther@suse.de>
13931
13932         PR tree-optimization/47179
13933         * target.def (ref_may_alias_errno): New target hook.
13934         * targhooks.h (default_ref_may_alias_errno): Declare.
13935         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13936         (default_ref_may_alias_errno): New function.
13937         * target.h (struct ao_ref_s): Declare.
13938         * tree-ssa-alias.c: Include target.h.
13939         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13940         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13941         (targhooks.o): Likewise.
13942         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13943         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13944
13945 2011-01-14  Richard Guenther  <rguenther@suse.de>
13946
13947         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
13948
13949 2011-01-14  Richard Guenther  <rguenther@suse.de>
13950
13951         PR tree-optimization/47280
13952         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13953         return CFG changes.
13954         (tree_ssa_forward_propagate_single_use_vars): Deal with
13955         CFG changes from associate_plusminus.
13956
13957 2011-01-14  Richard Guenther  <rguenther@suse.de>
13958
13959         PR middle-end/47281
13960         Revert
13961         2011-01-11  Richard Guenther  <rguenther@suse.de>
13962
13963         PR tree-optimization/46076
13964         * tree-ssa.c (useless_type_conversion_p): Conversions from
13965         unprototyped to empty argument list function types are useless.
13966
13967 2011-01-14  Richard Guenther  <rguenther@suse.de>
13968
13969         PR tree-optimization/47286
13970         * tree-ssa-structalias.c (new_var_info): Register variables are global.
13971
13972 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13973
13974         PR middle-end/46823
13975         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13976
13977 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
13978
13979         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13980         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13981         * config/xtensa/xtensa.c (xtensa_libcall_value,
13982         xtensa_function_value_regno_p): New functions.
13983         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13984
13985 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
13986
13987         PR c++/47213
13988         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13989         PE specific hook.
13990         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13991         New function prototype.
13992         * config/i386/winnt.c (i386_pe_assemble_visibility):
13993         Warn only if attribute was specified by user.
13994
13995 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13996
13997         PR target/47251
13998         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13999         floating point.
14000         (floatunsdidf2_fcfidu): Ditto.
14001
14002 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14003
14004         * config/s390/s390.c (print_operand_address): Replace 'error' with
14005         'output_operand_lossage'.
14006         (print_operand): Likewise.
14007
14008 2011-01-13  Jeff Law  <law@redhat.com>
14009
14010         PR rtl-optimization/39077
14011         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14012         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14013         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14014         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14015         * gcse.c (prune_insertions_deletions): New function.
14016         (compute_pre_data): Use it.
14017
14018 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14019
14020         PR debug/PR46973
14021         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14022         static function.
14023         (prune_unused_types_mark): Use it.
14024
14025 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14026
14027         PR rtl-optimization/45352
14028         * sel-sched.c: Update copyright years.
14029         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14030         in the advancing loop when we have issued issue_rate insns.
14031
14032 2011-01-12  Richard Henderson  <rth@redhat.com>
14033
14034         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14035         (TARGET_MD_ASM_CLOBBERS): New.
14036
14037         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14038         (TARGET_DELEGITIMIZE_ADDRESS): New.
14039
14040         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14041         (clzsi2, *bsch): New patterns.
14042
14043         * config/mn10300/mn10300.md (INT): New mode iterator.
14044         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14045
14046         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14047         flag_split_wide_types.
14048
14049         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14050         (mn10300_trampoline_init): Rewrite without a template, an immediate
14051         load and a direct branch.
14052         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14053
14054 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14055
14056         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14057         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14058         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14059         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14060
14061 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14062
14063         PR debug/47209
14064         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14065         of type.
14066
14067 2011-01-12  Jan Hubicka  <jh@suse.cz>
14068
14069         PR driver/47244
14070         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14071         (PLUGIN_COND_CLOSE): New macro.
14072         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14073
14074 2011-01-12  Richard Guenther  <rguenther@suse.de>
14075
14076         PR lto/47259
14077         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14078         register variables in a MEM_REF.
14079
14080 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14081
14082         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14083         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14084         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14085         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14086         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14087         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14088         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14089         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14090         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14091         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14092         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14093         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14094         * config/gnu-user.h: New.  Copied from linux.h.
14095         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14096         GNU_USER_TARGET_STARTFILE_SPEC.
14097         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14098         GNU_USER_TARGET_ENDFILE_SPEC.
14099         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14100         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14101         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14102         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14103         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14104         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14105         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14106         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14107         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14108         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14109         * config/arm/linux-eabi.h (CC1_SPEC): Use
14110         GNU_USER_TARGET_CC1_SPEC.
14111         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14112         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14113         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14114         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14115         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14116         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14117         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14118         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14119
14120 2011-01-12  Richard Guenther  <rguenther@suse.de>
14121
14122         PR other/46946
14123         * doc/invoke.texi (ffast-math): Document it is turned on
14124         with -Ofast.
14125
14126 2011-01-12  Jan Hubicka  <jh@suse.cz>
14127
14128         PR tree-optimization/47233
14129         * opts.c (common_handle_option): Disable ipa-reference with profile
14130         feedback.
14131
14132 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14133
14134         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14135         error message.
14136
14137 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14138
14139         * c-parser.c (c_lex_one_token): Updated and reindented some
14140         comments.  No changes in code.
14141
14142 2011-01-11  Ian Lance Taylor  <iant@google.com>
14143
14144         * godump.c (go_output_var): Don't output the variable if there is
14145         already a type with the same name.
14146
14147 2011-01-11  Ian Lance Taylor  <iant@google.com>
14148
14149         * godump.c (go_format_type): Don't generate float80.
14150
14151 2011-01-11  Richard Henderson  <rth@redhat.com>
14152
14153         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14154         declaration.  Rewrite for both speed and size.
14155         (mn10300_address_cost_1): Remove.
14156         (mn10300_register_move_cost): New.
14157         (mn10300_memory_move_cost): New.
14158         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14159         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14160         extensions, shifts, BSWAP, CLZ.
14161         (mn10300_wide_const_load_uses_clr): Remove.
14162         (TARGET_REGISTER_MOVE_COST): New.
14163         (TARGET_MEMORY_MOVE_COST): New.
14164         * config/mn10300/mn10300-protos.h: Update.
14165         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14166
14167         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14168         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14169         * config/mn10300/mn10300-protos.h: Update.
14170         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14171         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14172         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14173         (*test_int_bitfield, *test_byte_bitfield): Remove.
14174         (*bit_test, *subreg_bit_test): Remove.
14175         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14176
14177         * config/mn10300/constraints.md ("c"): Rename from "A".
14178         ("A", "D"): New constraint letters.
14179         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14180         (fmssf4, fnmasf4, fnmssf4): Likewise.
14181
14182         * config/mn10300/mn10300.md (isa): New attribute.
14183         (enabled): New attribute.
14184
14185         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14186         (abssf2, negsf2): Define only for hardware fp.
14187         (sqrtsf2): Reformat.
14188         (addsf3, subsf3, mulsf3): Merge expander and insn.
14189
14190         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14191         (DEBUGGER_AUTO_OFFSET): Remove.
14192         (DEBUGGER_ARG_OFFSET): Remove.
14193
14194         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14195         Emit register stores with the same offsets as the hardware.
14196         (mn10300_store_multiple_operation): Don't check that the register
14197         save offsets are monotonic.
14198         * config/mn10300/mn10300-protos.h: Update.
14199
14200         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14201
14202         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14203         in terms of the value on the stack, not the MDR register.
14204
14205 2011-01-11  Jan Hubicka  <jh@suse.cz>
14206
14207         PR lto/45721
14208         PR lto/45375
14209         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14210         (symbol_alias_set_destroy, symbol_alias_set_contains,
14211         propagate_aliases_backward): Declare.
14212         * lto-streamer-out.c (struct sets): New sturcture.
14213         (trivally_defined_alias): New function.
14214         (output_alias_pair_p): Rewrite.
14215         (output_unreferenced_globals): Fix output of alias pairs.
14216         (produce_symtab): Likewise.
14217         * ipa.c (function_and_variable_visibility): Set weak alias destination
14218         as needed in lto.
14219         * varasm.c (symbol_alias_set_t): Remove.
14220         (symbol_alias_set_destroy): Export.
14221         (propagate_aliases_forward, propagate_aliases_backward): New functions
14222         based on ...
14223         (compute_visible_aliases): ... this one; remove.
14224         (trivially_visible_alias): New
14225         (trivially_defined_alias): New.
14226         (remove_unreachable_alias_pairs): Rewrite.
14227         (finish_aliases_1): Reorganize code checking if alias is defined.
14228         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14229         in LTO mode.
14230
14231 2011-01-11  Richard Guenther  <rguenther@suse.de>
14232
14233         PR tree-optimization/46076
14234         * tree-ssa.c (useless_type_conversion_p): Conversions from
14235         unprototyped to empty argument list function types are useless.
14236
14237 2011-01-11  Richard Guenther  <rguenther@suse.de>
14238
14239         PR middle-end/45235
14240         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14241         volatile MEMs as MEM_READONLY_P.
14242
14243 2011-01-11  Richard Guenther  <rguenther@suse.de>
14244
14245         PR tree-optimization/47239
14246         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14247
14248 2011-01-11  Jeff Law  <law@redhat.com>
14249
14250         PR tree-optimization/47086
14251         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14252         IVs from statements that might throw.
14253
14254 2011-01-10  Jan Hubicka  <jh@suse.cz>
14255
14256         PR lto/45375
14257         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14258
14259 2011-01-10  Jan Hubicka  <jh@suse.cz>
14260
14261         PR lto/45375
14262         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14263         when correcting profile.
14264
14265 2011-01-10  Jan Hubicka  <jh@suse.cz>
14266
14267         PR lto/46083
14268         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14269         DECL_FINI_PRIORITY.
14270         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14271         Restore DECL_FINI_PRIORITY.
14272
14273 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14274
14275         * doc/gimple.texi: Fix quoting of multi-word return values in
14276         @deftypefn statements.  Ensure presence of return value.  Wrap
14277         overlong @deftypefn lines.
14278         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14279         descriptions of removed functions.
14280         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14281         of multi-word return value in @deftypefn statement.
14282
14283 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14284
14285         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14286         (Conditional Expressions, Logical Operators)
14287         (Statement and operand traversals): Do not indent smallexample
14288         code.  Fix duplicate function argument in example.
14289
14290 2011-01-10  Jeff Law  <law@redhat.com>
14291
14292         PR tree-optimization/47141
14293         * ipa-split.c (split_function): Handle case where we are
14294         returning a value and the return block has a virtual operand phi.
14295
14296 2011-01-10  Jan Hubicka  <jh@suse.cz>
14297
14298         PR tree-optimization/47234
14299         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14300         (pass_feedback_split_functions): Declare.
14301         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14302         tree-profile.
14303         * ipa-split.c (gate_split_functions): Update comments; disable
14304         split-functions for profile_arc_flag and branch_probabilities.
14305         (gate_feedback_split_functions): New function.
14306         (execute_feedback_split_functions): New function.
14307         (pass_feedback_split_functions): New global var.
14308
14309 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14310
14311         PR lto/46760
14312         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14313         calling gimple_call_set_cannot_inline.
14314
14315 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14316
14317         * config/darwin-sections.def: Remove unused section.
14318
14319 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14320
14321         PR c++/47218
14322         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14323
14324 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14325
14326         PR objc/47232
14327         * c-parser.c (c_parser_declaration_or_fndef): Improved
14328         error message.
14329
14330 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14331
14332         * config/i386/winnt.c (i386_pe_start_function): Make sure
14333         to switch back to function's section.
14334
14335 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14336
14337         PR gcc/46902
14338         PR testsuite/46912
14339         * plugin.c: Move include of dlfcn.h from here...
14340         * system.h: ... to here.
14341
14342 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14343
14344         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14345         file name.
14346         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14347         two extra empty pages in PDF output.
14348
14349 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14350
14351         PR objc/47078
14352         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14353         for error recovery purposes behave as if it was not specified so
14354         that the default type is usd.
14355
14356 2011-01-07  Jan Hubicka  <jh@suse.cz>
14357
14358         PR tree-optmization/46469
14359         * ipa.c (function_and_variable_visibility): Clear needed flags on
14360         nodes with external decls; handle weakrefs merging correctly.
14361
14362 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14363
14364         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14365         not false.
14366
14367 2011-01-07  Jan Hubicka  <jh@suse.cz>
14368
14369         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14370         and no longer claim that gold is required for linker plugin.
14371         * configure: Regenerate.
14372         * gcc.c (PLUGIN_COND): New macro.
14373         (LINK_COMMAND_SPEC): Use it.
14374         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14375         * config.in (HAVE_LTO_PLUGIN): New.
14376         * configure.ac (--with-lto-plugin): New parameter; autodetect
14377         HAVE_LTO_PLUGIN.
14378
14379 2011-01-07  Jan Hubicka  <jh@suse.cz>
14380
14381         PR tree-optimization/46367
14382         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14383         when we can update original.
14384         (cgraph_mark_inline_edge): Sanity check.
14385         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14386
14387 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14388
14389         * config/spu/spu.h (ASM_COMMENT_START): Define.
14390
14391 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14392
14393         PR driver/42445
14394         * gcc.c (%>S): New.
14395         (SWITCH_KEEP_FOR_GCC): Likewise.
14396         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14397         (do_spec_1): Handle "%>".
14398
14399         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14400
14401 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14402
14403         PR target/47201
14404         * config/i386/i386.c (ix86_delegitimize_address): If
14405         simplify_gen_subreg fails, return orig_x.
14406
14407         PR bootstrap/47187
14408         * value-prof.c (gimple_stringop_fixed_value): Handle
14409         lhs of the call properly.
14410
14411 2011-01-07  Jan Hubicka  <jh@suse.cz>
14412
14413         PR lto/45375
14414         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14415
14416 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14417
14418         * target.def (function_switched_text_sections): New hook.
14419         * doc/tm.texi: Regenerated.
14420         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14421         * final.c (default_function_switched_text_sections): New.
14422         (final_scan_insn): Call function_switched_text_sections when a
14423         mid-function section change occurs.
14424         * output.h (default_function_switched_text_sections): Declare.
14425         * config/darwin-protos.h (darwin_function_switched_text_sections):
14426         Likewise.
14427         * config/darwin.c (darwin_function_switched_text_sections): New.
14428         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14429
14430 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14431
14432         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14433         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14434         the secondary code fragment when outputting for DWARF == 2.
14435
14436 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14437
14438         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14439         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14440         Remove.
14441         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14442         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14443
14444 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14445
14446         PR debug/46704
14447         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14448         when it is not empty.
14449
14450 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14451
14452         Bobcat Enablement
14453         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14454         (case ${target}): Add btver1.
14455         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14456         -march=native recognize btver1 processors.
14457         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14458         btver1 def_and_undef
14459         * config/i386/i386.c (struct processor_costs btver1_cost): New
14460         btver1 cost table.
14461         (m_BTVER1): New definition.
14462         (m_AMD_MULTIPLE): Includes m_BTVER1.
14463         (initial_ix86_tune_features): Add btver1 tune.
14464         (processor_target_table): Add btver1 entry.
14465         (static const char *const cpu_names): Add btver1 entry.
14466         (software_prefetching_beneficial_p): Add btver1.
14467         (ix86_option_override_internal): Add btver1 instruction sets.
14468         (ix86_issue_rate): Add btver1.
14469         (ix86_adjust_cost): Add btver1.
14470         * config/i386/i386.h (TARGET_BTVER1): New definition.
14471         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14472         (enum processor_type): Add PROCESSOR_BTVER1.
14473         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14474
14475 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14476
14477         PR target/43309
14478         * config/i386/i386.c (legitimize_tls_address)
14479         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14480         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14481         (tls_initial_exec_64_sun): New pattern.
14482
14483 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14484
14485         * doc/invoke.texi (Overall Options): Improve wording and markup
14486         of the description of -wrapper.
14487
14488 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14489
14490         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14491         rdynamic, threads): New Driver options.
14492
14493 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14494
14495         PR target/38118
14496         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14497         if coming from .tdata.
14498         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14499
14500 2011-01-06  Jan Hubicka  <jh@suse.cz>
14501
14502         PR lto/47188
14503         * collect2.c (main): Do not enable LTOmode when plugin is active.
14504
14505 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14506
14507         PR other/45915
14508         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14509         --version output if supported.
14510         * configure: Regenerate.
14511
14512 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14513
14514         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14515         Driver options.
14516
14517 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14518
14519         PR c/47150
14520         * c-convert.c (convert): When converting a complex expression
14521         other than COMPLEX_EXPR to a different complex type, ensure
14522         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14523         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14524         when converting COMPLEX_TYPE.
14525
14526 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14527
14528         PR tree-optimization/47139
14529         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14530         only the last reduction value is used outside the loop.  Update
14531         documentation.
14532
14533 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14534
14535         * config/rtems.opt: New.
14536         * config.gcc (*-*-rtems*): Use rtems.opt.
14537
14538 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14539
14540         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14541         processors do not support 3DNow instructions.
14542
14543 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14544
14545         * config/spu/spu.c (spu_option_override): Set parameter
14546         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14547
14548 2011-01-05  Jan Hubicka  <jh@suse.cz>
14549
14550         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14551         at the command line.
14552
14553 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14554
14555         PR lto/47162
14556         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14557         deltas on streamed outgoing edges.
14558         (output_node_opt_summary): Output info for outgoing edges only when
14559         the node is in new parameter set.
14560         (output_cgraph_opt_summary): New parameter set, passed to the two
14561         aforementioned functions.  Update its forward declaration and its
14562         callee too.
14563
14564 2011-01-05  Tom Tromey  <tromey@redhat.com>
14565
14566         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14567         operator to c_finish_omp_atomic.
14568         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14569         (build_unary_op): Update.
14570         (build_modify_expr): Update.
14571         (build_asm_expr): Update.
14572
14573 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14574
14575         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14576         newly inserted insns.
14577         (pad_bb): Likewise.
14578         (spu_emit_branch_hint): Likewise.
14579         (insert_hbrp_for_ilb_runout): Likewise.
14580         (spu_machine_dependent_reorg): Call df_finish_pass after
14581         schedule_insns returns.
14582
14583 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14584
14585         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14586
14587 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14588
14589         PR tree-optimization/47005
14590         * tree-sra.c (struct access): Add 'non_addressable' bit.
14591         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14592         (decide_one_param_reduction): Return 0 if the parameter is passed by
14593         reference and one of the accesses in the group is non_addressable.
14594
14595 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14596
14597         PR tree-optimization/47056
14598         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14599         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14600         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14601
14602 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14603
14604         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14605         initializer.  Skip view conversions from aggregate types.
14606
14607 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14608
14609         PR bootstrap/47055
14610         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14611
14612 2011-01-04  Philipp Thomas  <pth@suse.de>
14613
14614         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14615         obvious typo.
14616
14617 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14618
14619         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14620         on empty epilogue sequences.
14621
14622 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14623
14624         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14625         non-static): New Driver options.
14626
14627 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14628
14629         PR driver/47137
14630         * gcc.c (default_compilers[]): Set combinable field to 0
14631         for all assembly languages.
14632
14633 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14634
14635         * config/mips/loongson3a.md: New file.
14636         * config/mips/mips.md: Include loongson3a.md.
14637         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14638         TUNE_LOONGSON_3A.
14639
14640 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14641
14642         PR middle-end/47017
14643         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14644         instead of convert_memory_address_addr_space on the base expression.
14645
14646 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14647
14648         * config/spu/spu.c (spu_option_override): Update error text
14649         for bad -march= / -mtune= values.
14650
14651 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14652
14653         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14654         if branch-hint optimization will be performed.
14655
14656 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14657
14658         PR tree-optimization/47148
14659         * ipa-split.c (split_function): Convert arguments to
14660         DECL_ARG_TYPE if possible.
14661
14662         PR tree-optimization/47155
14663         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14664         when computing uns.
14665
14666         PR rtl-optimization/47157
14667         * combine.c (try_combine): If undobuf.other_insn becomes
14668         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14669         and set *new_direct_jump_p too.
14670
14671 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14672
14673         PR tree-optimization/47021
14674         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14675
14676 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14677
14678         * gcc.c (process_command): Update copyright notice dates.
14679         * gcov.c (print_version): Likewise.
14680         * gcov-dump.c (print_version): Likewise.
14681         * mips-tfile.c (main): Likewise.
14682         * mips-tdump.c (main): Likewise.
14683
14684 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14685
14686         PR tree-optimization/46801
14687         * tree-sra.c (type_internals_preclude_sra_p): Check whether
14688         aggregate fields start at byte boundary instead of the bit-field flag.
14689
14690 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14691
14692         PR driver/47137
14693         * gcc.c (main): Revert revision 168407.
14694
14695 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14696
14697         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14698
14699 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14700
14701         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14702         vector optab to expand vector/scalar shift, update gimple to vector.
14703
14704 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14705
14706         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14707         a thunk.
14708
14709 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14710
14711         PR tree-optimization/46984
14712         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14713         HOST_WIDE_INT.
14714         (cgraph_create_indirect_edge): Fixed line length.
14715         (cgraph_indirect_call_info): Declare.
14716         (cgraph_make_edge_direct) Update declaration.
14717         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14718         (cgraph_create_indirect_edge): Use it.
14719         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
14720         callees.
14721         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14722         the new thunk_delta representation.
14723         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14724         HOST_WIDE_INT.
14725         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14726         (ipa_read_indirect_edge_info): Likewise.
14727         * lto-cgraph.c (output_edge_opt_summary): New function.
14728         (output_node_opt_summary): Call it on all outgoing edges.
14729         (input_edge_opt_summary): New function.
14730         (input_node_opt_summary): Call it on all outgoing edges.
14731
14732 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
14733
14734         PR driver/47137
14735         * gcc.c (main): Don't check have_o when settting combine_inputs.
14736
14737 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14738
14739         * regrename.c: Add general comment describing the pass.
14740         (struct du_head): Remove 'length' field.
14741         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14742         (regrename_optimize): Do not sort chains.  Rework comments, add others.
14743         Force renaming to the preferred class (if any) in the first pass and do
14744         not consider registers that belong to it in the second pass.
14745         (create_new_chain): Do not set 'length' field.
14746         (scan_rtx_reg): Likewise.
14747
14748 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
14749
14750         PR tree-optimization/47140
14751         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14752         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14753         to bit_value_binop.
14754
14755         PR rtl-optimization/47028
14756         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14757         parm_birth_insn instead of at the beginning of first bb.
14758
14759 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
14760
14761         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14762         Remove the word "see" before "@pxref".
14763         * doc/rtl.texi: Remove the word "see" before "@pxref".
14764
14765 2011-01-01  Jan Hubicka  <jh@suse.cz>
14766
14767         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14768         memory.
14769
14770 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
14771
14772         PR target/38662
14773         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
14774
14775 \f
14776 Copyright (C) 2011 Free Software Foundation, Inc.
14777
14778 Copying and distribution of this file, with or without modification,
14779 are permitted in any medium without royalty provided the copyright
14780 notice and this notice are preserved.