tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new names for group...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
2
3         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
4         names for group elements access.
5         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
6         reduction chains as well.  Remove data reference and interleaving
7         related words from the fields names.
8         * tree-vect-loop.c (vect_transform_loop): Use new names for group
9         elements access.
10         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
11         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
12         vect_update_interleaving_chain, vect_same_range_drs,
13         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
14         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
15         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
16         vect_analyze_group_access, vect_analyze_data_ref_access,
17         vect_create_data_ref_ptr, vect_transform_strided_load,
18         vect_record_strided_load_vectors): Likewise.
19         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
20         vect_model_load_cost, vectorizable_store, vectorizable_load,
21         vect_remove_stores, new_stmt_vec_info): Likewise.
22         * tree-vect-slp.c (vect_build_slp_tree,
23         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
24
25 2011-05-18  Richard Guenther  <rguenther@suse.de>
26
27         PR middle-end/48989
28         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
29         operand verification.
30         (verify_gimple_assign_binary): Likewise.
31         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
32         to non-1-precision BOOLEAN_TYPEs.
33
34 2011-05-18  Tom de Vries  <tom@codesourcery.com>
35
36         PR target/45098
37         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
38
39 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
40
41         PR tree-optimization/49000
42         * tree-ssa.c (execute_update_addresses_taken): Call
43         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
44         be rewritten and decl has been marked for renaming, reset
45         the debug stmt.
46
47 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
48
49         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
50         enum_opts_set when testing if attributes have set -mfpmath=.
51
52 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
53
54         * config/mips/mips.c (mips_handle_option): Remove unused variable.
55
56 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
57
58         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
59         info->entry with 0
60         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
61         id.transform_lang_insert_block with NULL.
62
63 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
64
65         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
66         (output_fp_compare): Change args 3 and 4 to bool.
67         (ix86_expand_call): Change arg 6 to bool.
68         (ix86_attr_length_immediate_default): Change arg 2 to bool.
69         (ix86_attr_length_vex_default): Change arg 3 to bool.
70         * config/i386/i386.md: Update all uses.
71         * config/i386/i386.c: Ditto.
72         (ix86_flags_dependent): Change return type to bool.
73
74 2011-05-17  Richard Guenther  <rguenther@suse.de>
75
76         * gimple.c (type_hash_pair_compare): Fix comparison.
77
78 2011-05-17  Richard Guenther  <rguenther@suse.de>
79
80         * gimple.c (iterative_hash_gimple_type): Simplify singleton
81         case some more, fix final hash value of the non-singleton case.
82
83 2011-05-17  Richard Guenther  <rguenther@suse.de>
84
85         PR bootstrap/49013
86         Revert
87         2011-05-16  Richard Guenther  <rguenther@suse.de>
88
89         * gimple.c (gimple_types_compatible_p_1): Use names of the
90         type itself, not its main variant.
91         (iterative_hash_gimple_type): Likewise.
92
93 2011-05-17  Richard Guenther  <rguenther@suse.de>
94
95         * gimple.c (gimple_register_canonical_type): Use the main-variant
96         leader for computing the canonical type.
97
98 2011-05-17  Nick Clifton  <nickc@redhat.com>
99
100         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
101         moves.
102
103         * config/rx/rx.md: Add peephole to remove redundant extensions
104         after loads.
105         (bitset_in_memory): Use rx_restricted_mem_operand.
106         (bitinvert_in_memory): Likewise.
107         (bitclr_in_memory): Likewise.
108
109 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
110             Nick Clifton  <nickc@redhat.com>
111
112         * config/rx/rx.md: Add peepholes to match a register move followed
113         by a comparison of the moved register.  Replace these with an
114         addition of zero that does both actions in one instruction.
115
116 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
117
118         PR target/48986
119         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
120         predicate to allow CONST_INT.
121         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
122
123 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
124
125         * opts-common.c (opt_enum_arg_to_value): New.
126         * opts.h (opt_enum_arg_to_value): Declare.
127         * config/i386/i386.opt (fpmath): Remove.
128         (mfpmath=): Use Enum, Init and Save.
129         (fpmath_unit): New Enum and EnumValue entries.
130         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
131         name for function fpmath state.
132         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
133         * config/i386/i386.c: Include diagnostic.h.
134         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
135         (ix86_target_string): Take enum fpmath_unit value instead of string.
136         (ix86_debug_options): Update call to ix86_target_string.
137         (ix86_option_override_internal): Don't process fpmath strings here.
138         (x86_function_specific_save, ix86_function_specific_restore):
139         Don't handle fpmath state specially.
140         (ix86_function_specific_print): Pass fpmath state to
141         ix86_target_string instead of printing in this function.
142         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
143         Handle enum attributes.
144         (IX86_ATTR_ENUM, ix86_opt_enum): New.
145         (ix86_valid_target_attribute_tree): Update option_strings
146         handling.  Handle fpmath as enum option.
147         (ix86_can_inline_p): Update field names for function fpmath state.
148         (ix86_expand_builtin): Update call to ix86_target_string.
149         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
150         (ix86_fpmath): Remove.
151         * config/i386/t-i386 (i386.o): Update dependencies.
152
153 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
154
155         PR preprocessor/48677
156         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
157         from decoded_options[0], not from itself.
158
159 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
160
161         * config/i386/constraints.md (z): New constraint.
162         * config/i386/i386.c (c): New mode attribute.
163         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
164         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
165         constraint for operand 0.
166         (*call_vzeroupper): Ditto.
167         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
168         (*call_rex64_ms_sysv_vzeroupper): Ditto.
169         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
170         Use "lzm" constraint for operand 0.
171         (*call_pop_vzeroupper): Ditto.
172         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
173         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
174         constraint for operand 0.
175         (*sibcall_vzeroupper): Ditto.
176         (*sibcall_rex64_ms_sysv): Ditto.
177         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
178         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
179         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
180         (*sibcall_pop_vzeroupper): Ditto.
181         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
182         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
183         mode iterator.  Use "<c>zm" constraint for operand 1.
184         (*call_value_vzeroupper): Ditto.
185         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
186         for operand 1.
187         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
188         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
189         *call_value_pop_1.  Use "lzm" constraint for operand 1.
190         (*call_value_pop_vzeroupper): Ditto.
191         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
192         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
193         mode iterator.  Use "Uz" constraint for operand 1.
194         (*sibcall_value_vzeroupper): Ditto.
195         (*sibcall_value_rex64_ms_sysv): Ditto.
196         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
197         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
198         constraint for operand 1.
199         (*sibcall_value_pop_vzeroupper): Ditto.
200         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
201         and "z" constraint for operand 2.
202         (*tls_global_dynamic_32_gnu): Ditto.
203         (*tls_local_dynamic_base_32_gnu): Ditto.
204         (*tls_local_dynamic_base_64): Ditto.
205         (*tls_local_dynamic_32_once): Ditto.
206         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
207         Update all callers.
208         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
209
210 2011-05-16  Richard Guenther  <rguenther@suse.de>
211
212         * gimple.c (gimple_types_compatible_p_1): Use names of the
213         type itself, not its main variant.
214         (iterative_hash_gimple_type): Likewise.
215
216 2011-05-16  Richard Guenther  <rguenther@suse.de>
217
218         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
219         always visit pointer target and function result and argument types.
220
221 2011-05-16  Jason Merrill  <jason@redhat.com>
222
223         PR c++/48999
224         * tree-inline.c (copy_statement_list): Put back recursion.
225
226 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
227
228         PR target/27663
229         PR target/41076
230         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
231         * config/avr/avr.md ("*ior<mode>qi.byte0",
232         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
233
234 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
235
236         PR target/45099
237         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
238         register is needed for a function argument.
239
240 2011-05-16  Richard Guenther  <rguenther@suse.de>
241
242         * gimple.c (struct type_hash_pair): New type.
243         (type_hash_pair_compare): New function.
244         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
245
246 2011-05-16  Revital Eres  <revital.eres@linaro.org>
247
248         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
249
250 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
251
252         * config/i386/i386.md (floating point move splitters): Fix
253         usage of standard_80387_constant_p.
254         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
255
256 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
257
258         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
259
260 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
261
262         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
263         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
264         (tree_ssa_lim_finalize): Likewise.
265
266 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
267
268         * config/i386/constraint.md (Yd, Yx): New register constraints.
269         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
270         Yd conditional register constraint.
271         (*movtf_internal): Use standard_sse_constant_opcode.
272         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
273         Yx conditional register constraint.
274         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
275         Yd conditional register constraint.  Use standard_sse_constant_p to
276         check for valid SSE constants and call standard_sse_constant_opcode to
277         output SSE insn.
278         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
279         constants and call standard_sse_constant_opcode to output SSE insn.
280         * config/i386/i386.c (ix86_option_ovverride_internal): Set
281         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
282         optimize_size is set.
283         (standard_sse_constant_opcode): Output conditional AVX insn templates.
284
285 2011-05-14  Tobias Burnus  <burnus@net-b.de>
286
287         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
288
289 2011-05-13  Martin Jambor  <mjambor@suse.cz>
290
291         * ipa-prop.c (ipa_cst_from_jfunc): New function.
292         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
293         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
294         (evaluate_conditions_for_ipcp_clone): Removed.
295         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
296         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
297         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
298
299 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
300
301         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
302         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
303         lieu of MAY_HAVE_DEBUG_STMTS.
304         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
305         debug statements if !MAY_HAVE_DEBUG_STMTS.
306
307 2011-05-13  Martin Thuresson  <martint@google.com>
308
309         PR gcov-profile/47793
310         * libgcov.c (gcov_exit): Support relative profile paths.
311         * doc/invoke.texi (-fprofile-dir): Update for above change.
312
313 2011-05-13  Richard Guenther  <rguenther@suse.de>
314
315         * gimple.c (gimple_canonical_types_compatible_p): Do not use
316         type-pair caching, do not compare hashes.
317
318 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
319
320         PR middle-end/48965
321         * tree-cfg.c (edge_to_cases_cleanup): Return true.
322         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
323
324 2011-05-13  Kai Tietz  <ktietz@redhat.com>
325
326         * gimplify.c (gimplify_expr): Make sure operand is boolified.
327         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
328         compatible type for TRUTH_NOT_EXPR.
329
330 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
331
332         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
333         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
334         can_create_pseudo_p ().
335
336 2011-05-13  Richard Guenther  <rguenther@suse.de>
337
338         PR lto/48978
339         * gimple.c (iterative_hash_gimple_type): Revert change in
340         pointer target and function result and argument hashing.
341
342 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
343
344         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
345         (*movxf_internal_nointeger): Ditto.
346         (*movdf_internal_rex64): Ditto.
347         (*movdf_internal): Ditto.
348         (*movdf_internal_nointeger): Ditto.
349         (*movsf_internal): Ditto.
350         (sincos splitters): Use can_create_pseudo ().
351
352 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
353
354         * config/i386/i386-opts.h: New.
355         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
356         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
357         ix86_section_threshold): Remove.
358         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
359         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
360         OPT_mbranch_cost_.
361         (ix86_option_override_internal): Don't decode strings for options
362         other than -march=, -mtune= and -mfpmath=.  Don't allow for
363         __attribute__ uses in remaining diagnostics for options with
364         string arguments.  Don't check for integer arguments being negative.
365         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
366         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
367         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
368         ix86_branch_cost, ix86_section_threshold): Remove.
369         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
370         HeaderInclude.
371         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
372         but not Var.
373         (masm=): Use Enum and Init.
374         (asm_dialect): New Enum and EnumValue entries.
375         (mbranch-cost=): Use UInteger.
376         (mlarge-data-threshold=): Use UInteger and Init.
377         (mcmodel=): Use Enum and Init.
378         (cmodel): New Enum and EnumValue entries.
379         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
380         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
381         mregparm=): Use UInteger.
382         (mstringop-strategy=): Use Enum and Init.
383         (stringop_alg): New Enum and EnumValue entries.
384         (mtls-dialect=): Use Enum and Init.
385         (tls_dialect): New Enum and EnumValue entries.
386         (mabi=): Use Enum and Init.
387         (calling_abi): New Enum and EnumValue entries.
388         (mveclibabi=): Use Enum and Init.
389         (ix86_veclibabi): New Enum and EnumValue entries.
390
391 2011-05-13  Nick Clifton  <nickc@redhat.com>
392
393         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
394         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
395
396 2011-05-13  Kai Tietz  <ktietz@redhat.com>
397
398         PR middle-end/48984
399         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
400         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
401         (gimple_boolify): Check for cast for boolean_type_node instead for
402         BOOLEAN_TYPE.
403
404 2011-05-13  Richard Guenther  <rguenther@suse.de>
405
406         PR tree-optimization/48172
407         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
408         multiplying by number of iterations for equal step.
409         (vect_create_cond_for_alias_checks): Likewise.
410
411 2011-05-13  Andreas Schwab  <schwab@redhat.com>
412
413         * configure.ac: Use AS_HELP_STRING throughout.
414         * configure: Regenerate.
415
416 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
417
418         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
419         (ix86_emit_restore_regs_using_mov): Likewise.
420         (ix86_emit_restore_sse_regs_using_mov): Likewise.
421
422 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
423
424         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
425         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
426         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
427         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
428         RTX_OK_FOR_OLO10_P): ...here.
429         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
430         SYMBOLIC_CONST.
431
432 2011-05-12  Kai Tietz  <ktietz@redhat.com>
433
434         * gimplify.c (gimple_boolify): Re-boolify expression
435         arguments even if expression type is of kind BOOLEAN_TYPE.
436         (gimplify_boolean_expr): Removed.
437         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
438         and XOR. Additional take care that we keep expression's type.
439         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
440         of TRUTH_AND|OR|XOR_EXPR.
441
442 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
443
444         PR tree-optimization/48975
445         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
446         on all bbs here and free and clear ifc_bbs at the end.
447
448 2011-05-12  Richard Guenther  <rguenther@suse.de>
449
450         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
451         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
452         until after simple checks.
453         (gimple_types_compatible_p): Likewise.
454         (iterative_hash_gimple_type): Always hash pointer targets
455         and function return and argument types.
456         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
457         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
458         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
459         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
460         completely in the simple compare section.
461         (gimple_register_canonical_type): Query the cache again after
462         registering.
463
464 2011-05-12  Richard Guenther  <rguenther@suse.de>
465
466         PR tree-optimization/48172
467         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
468         the number of iterations from the segment size calculation.
469         (vect_create_cond_for_alias_checks): Adjust.
470
471 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
472
473         PR debug/48967
474         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
475         if validate_subreg fails.
476
477 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
478
479         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
480         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
481         early.
482
483 2011-05-12  DJ Delorie  <dj@redhat.com>
484
485         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
486         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
487         created builtin into rx_builtins array.
488         (rx_builtin_decl): New function.
489         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
490
491 2011-05-12  DJ Delorie  <dj@redhat.com>
492             Nick Clifton  <nickc@redhat.com>
493
494         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
495         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
496         (rx_is_legitimate_address): Add pre-decrement and post-increment
497         addressing in HImode and QImode.  Fix test for out of range
498         REG+INT addressing.
499         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
500         (rx_align_for_label): Test label before extracting its usage count.
501         (rx_adjust_insn_lengths): Fix selection of insn codes.
502         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
503
504 2011-05-11  Jason Merrill  <jason@redhat.com>
505
506         * tree.c (type_hash_canon): Use struct tree_type_non_common.
507
508 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
509
510         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
511         reindent the subsequent block.
512
513 2011-05-11  Satoru Takabayashi  <satorux@google.com>
514             Paul Pluzhnikov  <ppluzhnikov@google.com>
515
516         * doc/install.texi (Configuration): Document --with-linker-hash-style.
517         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
518         * config.in: Add LINKER_HASH_STYLE.
519         * configure.ac: Add --with-linker-hash-style.
520         * configure: Regenerate.
521
522 2011-05-11  Richard Guenther  <rguenther@suse.de>
523
524         PR middle-end/48964
525         * gimple.c (iterative_hash_canonical_type): Fix typo.
526
527 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
528
529         * config/i386/i386.c (legitimize_tls_address)
530         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
531         expanders directly for TARGET_GNU2_TLS.  Determine pic and
532         __tls_get_addr symbol reference here.  Update call to
533         gen_tls_global_dynamic_{32,64} for added arguments.
534         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
535         expanders directly for TARGET_GNU2_TLS.  Determine
536         __tls_get_addr symbol reference here.  Update call to
537         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
538         unique UNSPEC REG_EQUIV to libcall block.
539         (ix86_tls_get_addr): Declare static.
540         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
541         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
542         Do not determine pic and __tls_get_addr symbol reference here. Do not
543         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
544         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
545         (tls_global_dynamic_64): Add operand 2.  Do not determine
546         __tls_get_addr symbol reference here.  Do not call
547         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
548         (tls_local_dynamic_base64): Ditto for operand 1.
549
550 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
551
552         * function.c (expand_function_start): Initialize stack_check_probe_note
553         only if the generic stack checking mechanism is used.
554
555 2011-05-11  Richard Guenther  <rguenther@suse.de>
556
557         PR tree-optimization/15256
558         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
559         (A & B) | C, combine (A op CST1) op CST2.
560         (tree_ssa_forward_propagate_single_use_vars): Only bother to
561         visit assigns that have uses.
562
563 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
564
565         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
566         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
567         (unpack_ts_type_common_value_fields): ...this.  Update comment.
568         (unpack_value_fields): Adjust for renaming.
569         (lto_input_ts_type_tree_pointers): Split into...
570         (lto_input_ts_type_common_tree_pointer): ...this and...
571         (lto_input_ts_type_non_common_tree_pointers): ...this.
572         (lto_input_tree_pointers): Adjust for above split.
573         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
574         (pack_ts_type_common_value_fields): ...this.  Update comment.
575         (lto_output_ts_type_tree_pointers): Split into...
576         (lto_output_ts_type_common_tree_pointers): ...this and...
577         (lto_output_ts_type_non_common_tree_pointers): ...this.
578         (lto_output_tree_pointers): Adjust for above split.
579         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
580         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
581         * stor-layout.c (vector_type_mode): Adjust location of mode field.
582         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
583         Define.
584         (struct tree_type): Split into...
585         (struct tree_type_common: ...this and...
586         (struct tree_type_with_lang_specific): ...this and...
587         (struct tree_type_non_common): ...this.  Adjust accessor macros
588         accordingly.
589         (TYPE_VALUES_RAW): Define.
590         (union tree_node): Update for above changes.
591         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
592         TS_TYPE_NON_COMMON.
593         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
594         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
595         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
596         * treestructu.def (TS_TYPE): Remove.
597         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
598         Define.
599
600 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
601
602         PR debug/48159
603         * tree-ssa.c (reset_debug_uses): New function.
604         * tree-flow.h (reset_debug_uses): New prototype.
605         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
606         * tree-loop-distribution.c (generate_loops_for_partition): Call
607         reset_debug_uses on the stmts that will be removed.  Keep around
608         all debug stmts, don't count them as bits in partition bitmap.
609         (generate_builtin): Don't count debug stmts or labels as bits in
610         partition bitmap.
611
612 2011-05-11  Richard Guenther  <rguenther@suse.de>
613
614         * gimple.c (gimple_type_hash_1): Merge with ...
615         (gimple_type_hash): ... this.
616         (gtc_visit): Remove mode parameter and simplify accordingly.
617         (gimple_types_compatible_p_1): Likewise.
618         (gimple_types_compatible_p): Likewise.
619         (iterative_hash_gimple_type): Likewise.
620         (visit): Likewise.
621         (gimple_type_eq): Adjust.
622
623 2011-05-11  Revital Eres  <revital.eres@linaro.org>
624
625         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
626         enters the branch create an anti edge in the opposite direction
627         to prevent the creation of reg-moves.
628         * modulo-sched.c: Adjust comment to reflect the fact we are
629         scheduling closing branch.
630         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
631         (stage_count): New field in struct partial_schedule.
632         (calculate_stage_count): New function.
633         (normalize_sched_times): Rename to reset_sched_times and handle
634         incrementing the sched time of the nodes by a constant value
635         passed as parameter.
636         (duplicate_insns_of_cycles): Skip closing branch.
637         (sms_schedule_by_order): Schedule closing branch.
638         (ps_insn_find_column): Handle closing branch.
639         (sms_schedule): Call reset_sched_times and adjust the code to
640         support scheduling of the closing branch.
641         (ps_insert_empty_row): Update calls to normalize_sched_times
642         and rotate_partial_schedule functions.
643
644 2011-05-11  Richard Guenther  <rguenther@suse.de>
645
646         PR middle-end/48953
647         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
648
649 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
650
651         * opts.c (finish_options): Move warning settings from process_options.
652         * toplev.c (process_options): Move warning settings to finish_options.
653
654 2011-05-11  Richard Guenther  <rguenther@suse.de>
655
656         PR tree-optimization/18041
657         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
658         (simplify_bitwise_binary): ... this.  Handle operand conversions
659         by applying them to the result instead.
660         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
661
662 2011-05-11  Richard Guenther  <rguenther@suse.de>
663
664         * gimple.c (gimple_canonical_types_compatible_p): Split out
665         from gimple_types_compatible_p and friends.  Do not recurse
666         to pointed-to types.
667         (gimple_canonical_type_eq): Use it.
668         (iterative_hash_canonical_type): Split out from
669         iterative_hash_gimple_type and friends.  Do not recurse
670         to pointed-to types.
671         (gimple_canonical_type_hash): Use it, allocate the hash here.
672
673 2011-05-11  Revital Eres  <revital.eres@linaro.org>
674
675         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
676         recognizing doloop.
677
678 2011-05-11  Revital Eres  <revital.eres@linaro.org>
679
680         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
681         instead of PREV_INSN.
682
683 2011-05-11  Revital Eres  <revital.eres@linaro.org>
684
685         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
686         * loop-doloop.c (doloop_condition_get): Likewise.
687         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
688         (doloop_end): New.
689         * config/arm/arm.md (*addsi3_compare0): Remove "*".
690
691 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
692
693         * tree.def (CASE_LABEL_EXPR): Add an operand.
694         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
695
696 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
697
698         * c-decl.c (c_override_global_bindings_to_false): Remove.
699         (global_bindings_p): Don't check
700         c_override_global_bindings_to_false.
701         * c-tree.h (c_override_global_bindings_to_false): Remove.
702         * c-typeck.c (composite_type): Don't set
703         c_override_global_bindings_to_false.
704
705 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
706
707         PR target/48857, 48495
708         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
709         (VSX_MODE): Ditto.
710         (VSX_MOVE_MODE): Ditto.
711         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
712         VSX vector types.  Add V2DImode.
713         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
714         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
715         (MODES_TIEABLE_P): Ditto.
716
717         * config/rs6000/rs6000.c (rs6000_emit_move): Use
718         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
719         VSX_VECTOR_MODE.
720         (init_cumulative_args): Ditto.
721         (rs6000_function_arg_boundary): Ditto.
722         (rs6000_function_arg_advance_1): Ditto.
723         (rs6000_function_arg): Ditto.
724         (rs6000_function_ok_for_sibcall): Ditto.
725         (emit_frame_save): Ditto.
726         (rs6000_function_value): Ditto.
727         (rs6000_libcall_value): Ditto.
728
729 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
730
731         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
732         i386/darwin-lib.h to $libgcc_tm_file.
733         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
734
735 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
736
737         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
738
739 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
740
741         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
742         * config/rs6000/rs6000-tables.opt: New file (generated).
743         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
744         rs6000/rs6000-tables.opt to extra_options.
745         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
746         * config/rs6000/rs6000.c (rs6000_select): Remove.
747         (processor_target_table): Move contents to rs6000-cpus.def.
748         (darwin_rs6000_override_options): Check
749         global_options_set.x_rs6000_cpu_index instead of
750         rs6000_select[1].string.
751         (rs6000_option_override_internal): Likewise.
752         (rs6000_handle_option): Don't assert that global structures are in
753         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
754         (rs6000_default_cpu): New variable.
755         (rs6000_file_start): Set it instead of local default_cpu.  Check
756         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
757         global_options_set.x_rs6000_tune_index instead of rs6000_select.
758         (rs6000_darwin_file_start): Check rs6000_default_cpu and
759         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
760         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
761         rs6000_select): Remove.
762         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
763         Remove.
764         (mcpu=, mtune=): Use Var, Init, Enum and Save.
765         * config/rs6000/t-rs6000
766         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
767         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
768         global_options_set.x_rs6000_cpu_index instead of
769         rs6000_select[1].string.
770         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
771         global_options_set.x_rs6000_cpu_index instead of
772         rs6000_select[1].string.
773
774 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
775
776         * config.gcc (libgcc_tm_file): Define instead of including files
777         from ../../libgcc/config/ in tm_file.
778         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
779         * configure: Regenerate.
780         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
781         libgcc_tm.h, cs-libgcc_tm.h): New.
782         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
783         (clean): Remove libgcc_tm.h.
784         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
785         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
786         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
787
788 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
789
790         PR target/48896
791         * config/avr/avr.c (avr_ret_register): Return unsigned int
792         instead of int.
793         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
794         it to avr_libcall_value.
795         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
796         expand_expr.
797         (avr_expand_binop_builtin): Ditto.
798         (avr_expand_unop_builtin): Ditto.
799
800 2011-05-10  DJ Delorie  <dj@redhat.com>
801
802         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
803         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
804         * config/rx/rx.c (rx_align_for_label): Add label and
805         uses_threshold parameters.  Do not align when the label is not
806         used enough.
807         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
808
809 2011-05-10  Richard Guenther  <rguenther@suse.de>
810
811         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
812         a series of conversions and apply foldings similar to what
813         fold-const does.
814         (tree_ssa_forward_propagate_single_use_vars): Call it.
815
816 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
817
818         PR tree-optimization/48611
819         PR tree-optimization/48794
820         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
821         referenced from RESX or EH_DISPATCH arguments.
822
823         PR debug/48928
824         * dfp.c (decimal_to_decnumber): Handle conversion from
825         dconst{1,2,m1,half}.
826
827 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
828
829         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
830         for !flag_prefer_avx128.
831         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
832
833 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
834
835         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
836         (fold_ternary_loc): Use expr_location_or.
837
838 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
839
840         PR debug/48853
841         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
842         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
843         Pmode and mem_mode is not VOIDmode.
844
845 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
846
847         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
848         TYPE_QUAL_RESTRICT): Convert to enum.
849
850 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
851
852         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
853         (const_pow2_1_to_8_operand): Ditto.
854         (const_pow2_1_to_128_operand): Ditto.
855         (const_pow2_1_to_32768_operand): Ditto.
856         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
857         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
858         in insn constraint to check integer value of operand 3.
859         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
860
861         (PINSR_MODE): New mode iterator.
862         (sse2p4_1): New mode attribute.
863         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
864         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
865         iterator.  Use const_int_operand instead of
866         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
867         exact_log2 in insn constraint to check integer value of operand 3.
868
869 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
870
871         * config/i386/sse.md (blendbits): Remove mode attribute.
872         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
873         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
874         Check integer value of operand 3 in insn constraint.
875
876 2011-05-09  Richard Guenther  <rguenther@suse.de>
877
878         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
879         for diagnostics.
880         (lto_symtab_merge): Likewise.  Do not register types here.
881         (lto_symtab_merge_decls_2): Likewise.
882         (lto_symtab_merge_decls_1): Likewise.
883         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
884         * gimple.c (enum gtc_mode): Declare.
885         (gimple_types_compatible_p): Make static.
886
887 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
888
889         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
890         temporary register to match Pmode.
891
892 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
893
894         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
895         and *vec_concatv4si_1_avx.
896
897 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
898
899         PR rtl-optimization/48927
900         * ira-conflicts.c (commutative_constraint_p): Use
901         recog_data.alternative_enabled_p to disable alternatives where
902         "enabled" attribute is false.
903         (get_dup_num): Ditto.
904         * ira-lives.c (single_reg_class): Ditto.
905         (ira_implicitly_set_insn_hard_regs): Ditto.
906
907 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
908
909         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
910         (dataflow_set_preserve_mem_locs): Likewise.
911
912 2011-05-09  Philipp Thomas  <pth@suse.de>
913
914         * config/mep/mep.c (mep_validate_vliw): Syntax description
915         should not be translated.
916
917 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
918
919         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
920         * config/mips/mips-tables.opt: New file (generated).
921         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
922         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
923         MIPS_ARCH_OPTION_NATIVE): Define.
924         * config/mips/mips.c (mips_cpu_info_table): Move contents to
925         mips-cpus.def.
926         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
927         mips_parse_cpu): Remove.
928         (mips_cpu_info_from_opt, mips_default_arch): New.
929         (mips_handle_option): Don't assert that global structures are in
930         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
931         (mips_option_override): Use new variables and functions to set
932         state of these options.  Use strcmp to check for individual CPU names.
933         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
934         definition.
935         * config/mips/mips.opt (march=): Use ToLower and Enum.
936         (mips): Use ToLower, Enum and Var.
937         (mtune=): Use ToLower and Enum.
938         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
939
940 2011-05-08  Jan Hubicka  <jh@suse.cz>
941
942         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
943         Arrange type pairs to be UID ordered.
944         (gimple_lookup_type_leader): Make inline.
945
946 2011-05-09  Nick Clifton  <nickc@redhat.com>
947
948         PR target/48899
949         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
950         PROCESSOR_DEFAULT.
951
952         PR target/48897
953         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
954         variable 's'.
955
956 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
957
958         * combine.c (simplify_comparison): Abstract out parts into...
959         (simplify_compare_const): ... new function.
960         (try_combine): Generalize parallel arithmetic/compare combining
961         to call simplify_compare_const() and CANONICALIZE_COMPARE().
962
963 2011-05-08  Jan Hubicka  <jh@suse.cz>
964
965         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
966         (cgraph_create_virtual_clone): Call hooks once virtual clone
967         is finished.
968         * cgraph.h (cgraph_clone_node): Update prototype.
969         * ipa-cp.c (ipcp_estimate_growth): Use
970         estimate_ipcp_clone_size_and_time.
971         * ipa-inline-transform.c (clone_inlined_nodes): Update.
972         * lto-cgraph.c (input_node): Update.
973         * ipa-inline.c (recursive_inlining): Update.
974         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
975         (evaluate_conditions_for_known_args): Break out from ...
976         (evaluate_conditions_for_edge): ... here.
977         (evaluate_conditions_for_ipcp_clone): New function.
978         (inline_node_duplication_hook): Update clone summary based
979         on parameter map.
980         (estimate_callee_size_and_time): Rename to ...
981         (estimate_node_size_and_time): take NODE instead of EDGE;
982         take POSSIBLE_TRUTHS as argument.
983         (estimate_callee_size_and_time): Update.
984         (estimate_ipcp_clone_size_and_time): New function.
985         (do_estimate_edge_time): Update.
986
987 2011-05-08  Richard Guenther  <rguenther@suse.de>
988
989         PR middle-end/48908
990         PR middle-end/48905
991         * expmed.c (expand_shift_1): Compute adjusted constant shift
992         amount manually.
993
994 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
995
996         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
997
998 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
999
1000         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1001
1002 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1003
1004         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1005
1006 2011-05-07  Jan Hubicka  <jh@suse.cz>
1007
1008         * ipa-inline-transform.c (inline_call): Account when program size
1009         decreases.
1010         * ipa-inline.c (relative_time_benefit): New function.
1011         (edge_badness): Reorganize to be power 2 based; fix thinko when
1012         computing badness for negative growth; update comments to match
1013         reality; better dumps.
1014
1015 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1016
1017         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1018         type to bool and adjust comment.
1019         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1020         (fold_mathfn_compare): Remove calls to global_bindings_p.
1021         (fold_inf_compare): Likewise.
1022         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1023         * c-tree.h (global_bindings_p): Adjust prototype.
1024         * c-decl.c (global_bindings_p): Return bool and simplify.
1025
1026 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1027
1028         PR tree-optimization/48837
1029         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1030         when accumulator transformation is performed.
1031
1032 2011-05-06  Jan Hubicka  <jh@suse.cz>
1033
1034         * i386.h (ix86_tune_indices): Add
1035         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1036         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1037         * i386.c (initial_ix86_tune_features): Add
1038         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1039         (software_prefetching_beneficial_p): Remove predicate.
1040         (ix86_option_override_internal): Use new macro.
1041
1042 2011-05-06  Jan Hubicka  <jh@suse.cz>
1043
1044         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1045
1046 2011-05-06  Jan Hubicka  <jh@suse.cz>
1047
1048         * cgraph.c (cgraph_add_thunk): Create real function node instead
1049         of alias node; finalize it and mark needed/reachale; arrange visibility
1050         to be right and add it into the corresponding same comdat group list.
1051         (dump_cgraph_node): Dump thunks.
1052         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1053         cgraph_function_with_gimple_body_p,
1054         cgraph_first_function_with_gimple_body,
1055         cgraph_next_function_with_gimple_body): New functions.
1056         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1057         New macros.
1058         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1059         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1060         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1061         devirtualization when optimizing.
1062         (verify_cgraph_node): Verify thunks.
1063         (cgraph_analyze_function): Analyze thunks.
1064         (cgraph_mark_functions_to_output): Output thunks only in combination
1065         with function they are assigned to.
1066         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1067         alias into normal node.
1068         (assemble_thunks): New functoin.
1069         (cgraph_expand_function): Use it.
1070         * lto-cgraph.c (lto_output_node): Stream thunks.
1071         (input_overwrite_node): Stream in thunks.
1072         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1073         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1074         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1075         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1076         (inline_analyze_function): Do not care about thunk jump functions.
1077         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1078         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1079         cgraph_function_with_gimple_body_p.
1080         * passes.c (do_per_function_toporder): Use
1081         cgraph_function_with_gimple_body_p.
1082         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1083         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1084         (function_called_by_processed_nodes_p): Likewise.
1085
1086 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1087
1088         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1089         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1090         entries.
1091         (mabi=): Replace with separate entries for mabi=altivec,
1092         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1093         mabi=ieeelongdouble and mabi=ibmlongdouble.
1094         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1095         check for -mabi=spe without SPE ABI support here.
1096         (rs6000_handle_option): Replace OPT_mabi_ handling with
1097         OPT_mabi_altivec and OPT_mabi_spe handling.
1098
1099 2011-05-06  Cary Coutant  <ccoutant@google.com>
1100
1101         * dwarf2out.c (contains_subprogram_definition): New function.
1102         (should_move_die_to_comdat): Call it.
1103
1104 2011-05-06  Jeff Law  <law@redhat.com>
1105
1106         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1107         remove_ctrl_stmt_and_useless_edges.
1108         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1109         (fixup_template_block, thread_single_edge): Likewise.
1110         (mark_threaded_blocks): Use THREAD_TARGET.
1111
1112 2011-05-06  Alan Modra  <amodra@gmail.com>
1113
1114         PR target/48900
1115         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1116         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1117
1118 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1119
1120         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1121         constraint modifier to "r".
1122
1123 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1124
1125         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1126         fall through for OPT_mcmodel_.
1127
1128 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1129
1130         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1131         instruction sizes.
1132         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1133
1134 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1135
1136         PR target/47930
1137         * config/arm/arm.opt (marm): Document it.
1138         (mthumb): Reject negative variant.
1139
1140 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1141
1142         PR target/48898
1143         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1144         Fix typo in "ccvt" variable name.
1145
1146 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1147
1148         PR target/48895
1149         * config/vms/vms-ar.c (main): Remove cwd variable.
1150
1151 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1152
1153         PR debug/48902
1154         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1155
1156 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1157
1158         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1159         * gimplify.c (gimplify_switch_expr): Likewise.
1160         * omp-low.c (expand_omp_sections): Likewise.
1161         * tree-eh.c (lower_try_finally_switch): Likewise.
1162         (lower_eh_dispatch): Likewise.
1163         * tree.h (build_case_label): Declare.
1164         * tree.c (build_case_label): Define.
1165
1166 2011-05-05  Jason Merrill  <jason@redhat.com>
1167
1168         PR c++/40975
1169         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1170         (copy_statement_list): Don't recurse.
1171         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1172         STATEMENT_LIST.
1173
1174 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1175
1176         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1177         through from -mfpu= handling.
1178         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1179
1180 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1181
1182         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1183         POST_MODIFY.
1184
1185 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1186
1187         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1188         for 11.31.
1189         (hppa[12]*-*-hpux11*): Ditto.
1190         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1191         * config/ia64/hpux-unix2003.h: New.
1192         * config/pa/pa-hpux1131.opt: New.
1193         * config/pa/pa-hpux1131.h: New.
1194         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1195         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1196         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1197
1198 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1199
1200         PR debug/48853
1201         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1202         instead of mode as 3rd argument to recursive call.
1203         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1204         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1205         VOIDmode.
1206         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1207         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1208         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1209         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1210
1211 2011-05-05  Julian Brown  <julian@codesourcery.com>
1212
1213         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1214         parenthesis in D-register case.
1215
1216 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1217
1218         * opt-functions.awk (var_type_struct): Handle Enum options.
1219         * optc-gen.awk: Don't check range of variables of character type.
1220         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1221         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1222         rs6000_sdata_name, rs6000_explicit_options): Remove.
1223         (rs6000_option_override_internal): Check for -malign-power here.
1224         Use global_options_set instead of rs6000_explicit_options.
1225         (rs6000_parse_fpu_option): Remove.
1226         (rs6000_handle_option): Access variables via opts and opts_set
1227         pointers.  Use error_at and warning_at.  Add fall-through
1228         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1229         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1230         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1231         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1232         here.  Don't use rs6000_parse_fpu_option.
1233         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1234         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1235         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1236         (mrecip=): Use Var.
1237         (mspe): Use Var and Save.
1238         (mtraceback=): Use Enum and Var.
1239         (rs6000_traceback_type): New Enum and EnumValue entries.
1240         (mfloat-gprs=): Use Enum, Var and Save.
1241         (rs6000_float_gprs): New Enum and EnumValue entries.
1242         (mlong-double-): use Var and Save.
1243         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1244         (malign-): Use Enum and Var.
1245         (rs6000_alignment_flags): New Enum and EnumValue entries.
1246         (mfpu=): Use Enum.
1247         (fpu_type_t): New Enum and EnumValue entries.
1248         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1249         global_options_set instead of rs6000_explicit_options.
1250         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1251         global_options_set instead of rs6000_explicit_options.
1252         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1253         global_options_set instead of rs6000_explicit_options.
1254         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1255         global_options_set instead of rs6000_explicit_options.
1256         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1257         global_options_set instead of rs6000_explicit_options.
1258         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1259         global_options_set instead of rs6000_explicit_options.
1260         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1261         definition.
1262         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1263         global_options_set instead of rs6000_explicit_options.
1264         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1265         (rs6000_cmodel): New Enum and EnumValue entries.
1266         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1267         global_options_set instead of rs6000_explicit_options.
1268         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1269         (mtls-size=): Use Enum and Var.
1270         (rs6000_tls_size): New Enum and EnumValue entries.
1271
1272 2011-05-05  Michael Matz  <matz@suse.de>
1273
1274         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1275         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1276         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1277         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1278         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1279         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1280         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1281         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1282         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1283         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1284         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1285         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1286         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1287         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1288         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1289         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1290
1291 2011-05-05  Richard Guenther  <rguenther@suse.de>
1292
1293         * expmed.c (expand_variable_shift): Rename to ...
1294         (expand_shift_1): ... this.  Take an expanded shift amount.
1295         For rotates recurse directly not building trees for the shift amount.
1296         (expand_variable_shift): Wrap around expand_shift_1.
1297         (expand_shift): Adjust.
1298
1299 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1300
1301         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1302
1303 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1304
1305         * tree.h (get_pending_sizes): Remove prototype.
1306         (put_pending_size): Likewise.
1307         (put_pending_sizes): Likewise.
1308         * stor-layout.c (pending_sizes): Delete.
1309         (get_pending_sizes): Likewise.
1310         (put_pending_size): Likewise.
1311         (put_pending_sizes): Likewise.
1312         (variable_size): Do not call put_pending_size and tidy up.
1313         * function.h (struct function): Remove dont_save_pending_sizes_p.
1314         * lto-streamer-in.c (input_function): Do not stream it.
1315         * lto-streamer-out.c (output_function): Likewise.
1316         * tree-inline.c (initialize_cfun): Do not copy it.
1317         * c-decl.c (store_parm_decls): Do not set it.
1318         * omp-low.c (create_task_copyfn): Likewise.
1319         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1320
1321 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1322
1323         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1324         conditions.
1325         (*movdf_internal): Ditto.
1326         (*movdf_internal_nointeger): Ditto.
1327         (*movsf_internal): Ditto.
1328
1329 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1330
1331         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1332         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1333         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1334         (c_variable_size): Remove.
1335         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1336         call put_pending_sizes.
1337         (get_parm_info): Add parameter expr.  Use it to set
1338         arg_info->pending_sizes.
1339         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1340         get_pending_sizes.
1341         * c-parser.c (c_parser_parms_declarator): Update call to
1342         c_parser_parms_list_declarator.
1343         (c_parser_parms_list_declarator): Take parameter expr.  Update
1344         call to push_parm_decl.  Update recursive call.  Don't call
1345         get_pending_sizes.  Update calls to get_parm_info.
1346         (c_parser_objc_method_definition): Update calls to
1347         c_parser_objc_method_decl and objc_start_method_definition.
1348         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1349         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1350         grokparm.
1351         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1352         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1353         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1354
1355 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1356
1357         PR pch/45979
1358         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1359         __ARM_EABI__ hosts.
1360
1361 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1362
1363         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1364         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1365         (spu_output_mi_thunk): New function.
1366
1367 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1368
1369         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1370         targetm.asm_out.print_operand.
1371         * config/sol2.c: Include target.h.
1372
1373 2011-05-04  Jan Hubicka  <jh@suse.cz>
1374
1375         * ipa-inline.c (reset_edge_caches): New function.
1376         (update_caller_keys): Add check_inlinablity_for; do not
1377         reset edge caches; remove now unnecesary loop.
1378         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1379         (update_all_callee_keys): Likewise.
1380         (inline_small_functions): Sanity check cache; update code
1381         recomputing it.
1382
1383 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1384
1385         PR rtl-optimization/47612
1386         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1387         as the last insn of the sequence to be moved.
1388
1389 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1390
1391         PR fortran/48864
1392         * doc/invoke.texi (Ofast): Document that it
1393         enables Fortran's -fno-protect-parens.
1394
1395 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1396
1397         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1398
1399 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1400
1401         * stor-layout.c (variable_size): Do not issue errors.
1402
1403 2011-05-04  Richard Guenther  <rguenther@suse.de>
1404
1405         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1406         for array-ref indices.
1407         (tree_coverage_counter_addr): Likewise.
1408         (build_fn_info_type): Use size_int for index types.
1409         (build_gcov_info): Likewise.
1410
1411 2011-05-04  Richard Guenther  <rguenther@suse.de>
1412
1413         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1414         to build_int_cst.
1415         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1416         for constructor indices.
1417         (push_init_level): Likewise.
1418
1419 2011-05-04  Richard Guenther  <rguenther@suse.de>
1420
1421         * explow.c (promote_mode): Move variable declarations before code.
1422
1423 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1424
1425         * tree.h (build_function_type_array): Declare.
1426         (build_varargs_function_type_array): Declare.
1427         (build_function_type_vec, build_varargs_function_type_vec): Define.
1428         * tree.c (build_function_type_array_1): New function.
1429         (build_function_type_array): New function.
1430         (build_varargs_function_type_array): New function.
1431
1432 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1433
1434         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1435         before setting STMT_VINFO_TYPE.
1436
1437 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1438
1439         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1440         instead of spu_pass_by_reference.
1441
1442 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1443
1444         * calls.c (emit_library_call_value_1): Invoke
1445         promote_function_mode hook on libcall arguments.
1446         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1447         argument being NULL.
1448         * targhooks.c (default_promote_function_mode): Lisewise.
1449         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1450         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1451
1452         * doc/tm.texi: Document that TYPE argument might be NULL.
1453
1454 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1455
1456         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1457
1458 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1459
1460         From Bernd Schmidt
1461         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1462
1463 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1464
1465         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1466         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1467         Move ...
1468         * mips-tfile.c: ... here.
1469         Don't include coretypes.h, tm.h, filenames.h.
1470         (saber_stop): Remove definition and all calls.
1471         [__SABER__]: Remove.
1472         (__LINE__): Remove default.
1473         (Size_t, Ptrdiff_t): Remove definitions.
1474         Replace by size_t, ptrdiff_t.
1475         [!MIPS_DEBUGGING_INFO]: Remove.
1476         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1477         (progname): Add const.
1478         (STATIC): Remove.
1479         Replace all uses by static.
1480         (ALIGN_SYMTABLE_OFFSET): Remove default.
1481         * mips-tdump.c: Don't include coretypes.h, tm.h.
1482         Remove !MIPS_IS_STAB guard.
1483         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1484         $(TM_H), filenames.h dependencies.
1485         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1486
1487 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1488
1489         From Jie Zhang
1490         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1491         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1492
1493 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1494
1495         From Bernd Schmidt
1496         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1497         account and save/restore RETS.
1498         (PROFILE_BEFORE_PROLOGUE): Define.
1499         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1500         the push insn to use predecrement.
1501
1502 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1503
1504         From Jie Zhang
1505         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1506
1507 2011-05-04  Nick Clifton  <nickc@redhat.com>
1508
1509         * config/mn10300/mn10300.c: Include cfgloop.h.
1510         (DUMP): New macro.
1511         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1512         Lcc or a FLcc insn into the instruction stream.
1513         (mn10300_block_contains_call): New function.  Returns true if the
1514         given basic block contains a CALL insn.
1515         (mn10300_loop_contains_call_insn): New function.  Returns true if
1516         the given loop contains a CALL insn.
1517         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1518         to use the SETLB and Lcc or FLcc insns.
1519         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1520         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1521         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1522         disable the SETLB optimization.
1523         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1524         __SETLB__ or __NO_SETLB__.
1525         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1526         (movsf_internal): Handle MDR register.
1527         (cmpsi): Make visible.
1528         (setlb): New pattern.
1529         (Lcc): New pattern.
1530         (FLcc): New pattern.
1531
1532 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1533
1534         PR target/48860
1535         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1536         for reg<->xmm moves.
1537         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1538         (vec_concatv2di_rex64_sse): Ditto.
1539         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1540         (*vec_extractv2di_1_rex64): Ditto.
1541
1542         Revert:
1543         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1544
1545         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1546         reg<->xmm moves.
1547         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1548
1549 2011-05-04  Richard Guenther  <rguenther@suse.de>
1550
1551         * tree.h (int_const_binop): Remove notrunc argument.
1552         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1553         create integer constants that are properly truncated.
1554         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1555         (const_binop): Remove zero notrunc argument to int_const_binop.
1556         (size_binop_loc): Likewise.
1557         (fold_div_compare): Likewise.
1558         (maybe_canonicalize_comparison_1): Likewise.
1559         (fold_comparison): Likewise.
1560         (fold_binary_loc): Likewise.
1561         (multiple_of_p): Likewise.
1562         * expr.c (store_constructor): Likewise.
1563         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1564         (maybe_fold_stmt_addition): Likewise.
1565         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1566         * stor-layout.c (layout_type): Likewise.
1567         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1568         * tree-sra.c (build_ref_for_offset): Likewise.
1569         (build_user_friendly_ref_for_offset): Likewise.
1570         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1571         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1572         * tree-ssa-loop-niter.c (inverse): Likewise.
1573         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1574         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1575         * tree-switch-conversion.c (check_range): Likewise.
1576         (build_constructors): Likewise.
1577         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1578         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1579         (extract_range_from_assert): Likewise.
1580         (vrp_int_const_binop): Likewise.
1581         (extract_range_from_binary_expr): Likewise.
1582         (extract_range_from_unary_expr): Likewise.
1583         (check_array_ref): Likewise.
1584         (find_case_label_range): Likewise.
1585         (simplify_div_or_mod_using_ranges): Likewise.
1586         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1587         comparing case labels for merging.
1588
1589 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1590
1591         * dwarf2out.c (debug_str_hash_forced): Removed.
1592         (gen_label_for_indirect_string): Removed.
1593         (get_debug_string_label): Removed.
1594         (AT_string_form): Generate label directly.
1595         (output_indirect_string): Test indirect_string_node for
1596         DW_FORM_strp instead of checking label and refcount.
1597         (prune_indirect_string): Removed.
1598         (prune_unused_types): Don't check debug_str_hash_forced or
1599         call prune_indirect_string.
1600
1601 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1602
1603         PR other/48093
1604         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1605
1606 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1607
1608         PR debug/47994
1609         PR debug/47919
1610         * combine.c (try_combine): Skip debug insns at m_split tests.
1611
1612 2011-04-26  Mark Wielaard  <mjw@redhat.com>
1613
1614         PR42288
1615         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1616         when info_section_emitted.
1617
1618 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
1619
1620         * config/mips/mips-opts.h: New.
1621         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1622         to mips-opts.h.
1623         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1624         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1625         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
1626         via opts pointer.
1627         * config/mips/mips.h (enum mips_code_readable_setting): Move to
1628         mips-opts.h.
1629         (mips_abi, mips_code_readable): Don't declare.
1630         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
1631         (mabi=): Use Enum and Var.
1632         (mips_abi): New Enum and EnumValue entries.
1633         (mcode-readable=): Use Enum and Var.
1634         (mips_code_readable_setting): New Enum and EnumValue entries.
1635         (mr10k-cache-barrier=): Use Enum and Var.
1636         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1637
1638 2011-05-03  Jan Hubicka  <jh@suse.cz>
1639
1640         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1641         replace hash by pointer map.
1642         (cgraph_node_set_element_def, cgraph_node_set_element,
1643         const_cgraph_node_set_element, varpool_node_set_element_def,
1644         varpool_node_set_element, const_varpool_node_set_element): Remove.
1645         (free_cgraph_node_set, free_varpool_node_set): New function.
1646         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1647         * tree-emutls.c: Free varpool node set.
1648         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1649         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1650         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1651         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1652         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1653         Move here from ipa.c; implement using pointer_map
1654         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1655         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1656         debug_cgraph_node_set, varpool_node_set_new,
1657         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1658         dump_varpool_node_set, debug_varpool_node_set):
1659         Move to ipa-uitls.c.
1660         * passes.c (ipa_write_summaries): Update.
1661
1662 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1663
1664         From Mike Frysinger:
1665         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1666         bf542/bf544/bf547/bf548/bf549.
1667
1668 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1669
1670         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1671
1672 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1673
1674         From Bernd Schmidt:
1675         * config/bfin/bfin.md (MOVCC): New mode_macro.
1676         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1677         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
1678         comments from generated assembly.
1679
1680 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1681
1682         From Bernd Schmidt
1683         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1684         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1685         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1686         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1687         * config/bfin/lib1funcs.asm (___muldi3): New function.
1688
1689 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1690
1691         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1692         build_function_type_list instead of build_function_type.
1693         Rearrange initialization of `args' to do so.
1694
1695 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1696
1697         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1698         instead of build_function_type.
1699
1700 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1701
1702         * config/rs6000/rs6000.c (spe_init_builtins): Call
1703         build_function_type_list instead of build_function_type.
1704         (paired_init_builtins, altivec_init_builtins): Likewise.
1705         (builtin_function_type): Likewise.
1706
1707 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1708
1709         * config/sh/sh.c (sh_media_init_builtins): Call
1710         build_function_type_list instead of build_function_type.
1711
1712 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1713
1714         * config/sparc/sparc.c (sparc_file_end): Call
1715         build_function_type_list instead of build_function_type.
1716
1717 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1718
1719         * config/alpha/alpha.c (alpha_init_builtins): Call
1720         build_function_type_list instead of build_function_type.
1721
1722 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1723
1724         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1725         build_function_type_list instead of build_function_type.
1726
1727 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1728
1729         * config/iq2000/i2000.c (iq2000_init_builtins): Call
1730         build_function_type_list instead of build_function_type.
1731         Delete `endlink' variable.
1732
1733 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1734
1735         * config/avr/avr.c (avr_init_builtins): Call
1736         build_function_type_list instead of build_function_type.
1737
1738 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1739
1740         * config/picochip/picochip.c (picochip_init_builtins): Call
1741         build_function_type_list instead of build_function_type.
1742         Delete `endlink' variable.
1743
1744 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1745
1746         * config/bfin/bfin.c (bfin_init_builtins): Call
1747         build_function_type_list instead of build_function_type.
1748
1749 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1750
1751         From Bernd Schmidt
1752         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1753         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
1754
1755 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1756
1757         From Jie Zhang:
1758         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1759         libbffastfp overrides libgcc when -mfast-fp.
1760
1761 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1762
1763         Originally from Bernd Schmidt
1764         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1765         * config/bfin/bfin.c (override_options): Test it and error if
1766         TARGET_FDPIC.
1767
1768 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1769
1770         Originally From Bernd Schmidt
1771         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1772         FD-PIC.
1773
1774 2011-05-03  Jeff Law  <law@redhat.com>
1775
1776         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1777         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1778         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
1779         than accessing AUX field directly.  Free the AUX field before
1780         clearing it.
1781         (thread_block, thread_through_loop_header): Likewise.
1782         (thread_single_edge, mark_threaded_blocks): Likewise.
1783         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
1784         (register_jump_thread): Do not attempt to thread to a NULL edge.
1785
1786 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1787
1788         * function.c (init_function_start): Call decide_function_section.
1789         * varasm.c (decide_function_section): New function.
1790         (assemble_start_function): When not using
1791         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1792         or first_function_block_is_cold.
1793         * rtl.h (decide_function_section): Declare.
1794
1795 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1796             Jakub Jelinek  <jakub@redhat.com>
1797
1798         PR target/48774
1799         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1800         only succeed if req_mode is the same as set_mode.
1801
1802 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1803
1804         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1805         * genemit.c (gen_exp): Handle RETURN.
1806         * emit-rtl.c (verify_rtx_sharing): Likewise.
1807         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1808         * rtl.c (copy_rtx): RETURN is shared.
1809         * rtl.h (enum global_rtl_index): Add GR_RETURN.
1810         (ret_rtx): New.
1811         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1812         * config/s390/s390.c (s390_emit_epilogue): Likewise.
1813         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1814         * config/cris/cris.c (cris_expand_return): Likewise.
1815         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1816         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1817         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1818         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1819         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1820         Likewise.
1821         * config/v850/v850.c (expand_epilogue): Likewise.
1822         * config/bfin/bfin.c (bfin_expand_call): Likewise.
1823         * config/arm/arm.md (epilogue): Likewise.
1824         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1825         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1826         variable to ret_reg.
1827
1828 2011-05-03  Richard Guenther  <rguenther@suse.de>
1829
1830         PR lto/48846
1831         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1832         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1833         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1834
1835 2011-05-03  Richard Guenther  <rguenther@suse.de>
1836
1837         * c-decl.c (grokdeclarator): Instead of looking at
1838         TREE_OVERFLOW check if the constant fits in the index type.
1839
1840 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1841
1842         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1843         (vec_store_lanes<mode><mode>): Likewise.
1844
1845 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1846
1847         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1848         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1849         convert_optab_index values.
1850         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1851         * genopinit.c (optabs): Initialize the new optabs.
1852         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1853         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1854         (expand_STORE_LANES): New functions.
1855         * tree.h (build_array_type_nelts): Declare.
1856         * tree.c (build_array_type_nelts): New function.
1857         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1858         (vect_model_load_cost): Likewise.
1859         (vect_store_lanes_supported, vect_load_lanes_supported)
1860         (vect_record_strided_load_vectors): Declare.
1861         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1862         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1863         (vect_transform_strided_load): Split out statement recording into...
1864         (vect_record_strided_load_vectors): ...this new function.
1865         * tree-vect-stmts.c (create_vector_array, read_vector_array)
1866         (write_vector_array, create_array_ref): New functions.
1867         (vect_model_store_cost): Add store_lanes_p argument.
1868         (vect_model_load_cost): Add load_lanes_p argument.
1869         (vectorizable_store): Try to use store-lanes functions for
1870         interleaved stores.
1871         (vectorizable_load): Likewise load-lanes and loads.
1872         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1873         to vect_model_store_cost.
1874         (vect_build_slp_tree): Likewise vect_model_load_cost.
1875
1876 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1877
1878         * hooks.h (hook_bool_mode_uhwi_false): Declare.
1879         * hooks.c (hook_bool_mode_uhwi_false): New function.
1880         * target.def (array_mode_supported_p): New hook.
1881         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1882         * doc/tm.texi: Regenerate.
1883         * stor-layout.c (mode_for_array): New function.
1884         (layout_type): Use it.
1885         * config/arm/arm.c (arm_array_mode_supported_p): New function.
1886         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1887
1888 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1889
1890         PR target/48723
1891         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1892         for -fstack-check if the size to allocate is negative.
1893
1894 2011-05-02  Lawrence Crowl  <crowl@google.com>
1895
1896         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1897         (timevar_cond_start): New for starting a timer only when it is not
1898         already running.
1899         (timevar_cond_stop): New for stopping a timer when it was not already
1900         running.
1901
1902         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1903         (timevar_cond_start): New as above.
1904         (timevar_cond_stop): New as above.
1905
1906         * timevar.def: Add start/stop timers for compiler phases,
1907         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1908         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1909         and TV_PHASE_FINALIZE.
1910         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1911         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1912         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1913         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1914         Make unused TV_OVERLOAD into a start/stop timer.
1915
1916         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1917         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1918         to indicate that they are start/stop timers.
1919
1920         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1921         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1922         Move initialization to do_compile.
1923         (do_compile): Add initialization from above.
1924         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1925
1926         * c-decl.c (c_write_global_declarations): Add start/stop of
1927         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1928
1929         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1930         or TV_PARSE_INLINE, as appropriate.
1931         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1932         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1933
1934 2011-05-02  Jason Merrill  <jason@redhat.com>
1935
1936         PR c++/40975
1937         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
1938
1939 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
1940
1941         PR c/35445
1942         * c-decl.c (finish_decl): Only create a composite if the types are
1943         compatible.
1944
1945 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1946
1947         * config/fr30/fr30-protos.h (Mmode): Don't define.
1948         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
1949         definition where used.
1950         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
1951         define.  Expand definitions where used.
1952         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
1953         Expand definitions where used.
1954         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
1955         rx_function_arg, rx_function_arg_advance,
1956         rx_function_arg_boundary): Expand definitions of those macros.
1957         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
1958         definition where used.
1959
1960 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1961
1962         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1963         reg<->xmm moves.
1964         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
1965         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
1966         with *movv2sf_internal_rex64_avx.
1967         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
1968         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
1969         Use %v prefix in insn mnemonic to handle TARGET_AVX.
1970         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
1971         "vex" in "prefix" attribute calculation.
1972         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
1973
1974 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
1975
1976         PR target/47951
1977         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
1978         inputs match the output.
1979
1980 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
1981
1982         PR target/47955
1983         * config/m68k/m68k.c (m68k_expand_prologue): Set
1984         current_function_static_stack_size.
1985
1986 2011-05-02   Jan Hubicka  <jh@suse.cz>
1987
1988         * lto-streamer.c (lto_streamer_cache_insert_1,
1989         lto_streamer_cache_lookup, lto_streamer_cache_create,
1990         lto_streamer_cache_delete): Use pointer map instead of hashtable.
1991         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
1992
1993 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1994
1995         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
1996         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
1997         config/m68k/t-opts: New files.
1998         * config/m68k/m68k-tables.opt: New file (generated).
1999         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2000         extra_options and m68k/t-opts to tmake_file.
2001         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2002         (all_isas): Initialize using m68k-isas.def.
2003         (all_microarchs): Initialize using m68k-microarchs.def.
2004         (m68k_find_selection): Remove.
2005         (m68k_handle_option): Don't assert that global structures are in
2006         use.  Use error_at.  Access variables via opts pointer.  Don't
2007         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2008         directly for -m68020-40 and -m68020-60.
2009         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2010         m68k_tune_entry here.
2011         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2012         to m68k-opts.h.
2013         (m68k_library_id_string): Remove declaration.
2014         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2015         (m68k_library_id_string): New Variable.
2016         (march=, mcpu=, mtune=): Use Enum and Var.
2017
2018 2011-05-02  Richard Guenther  <rguenther@suse.de>
2019
2020         * varasm.c (output_constructor_regular_field): Compute zero-based
2021         index with double-ints.  Make sure to ICE instead of producing
2022         wrong code.
2023         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2024         in asserts.  Properly use a signed type.
2025
2026 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2027
2028         * config/i386/sse.md (V): New mode iterator.
2029         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2030         TARGET_SSE2.
2031         (V_256): Rename from AVX256MODE.
2032         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2033         condition to all users.
2034         (VF1): Ditto.
2035         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2036         condition to all users.
2037         (VF_128): Make V4SF mode unconditional.
2038         (VF_256): Rename from AVX256MODEF2P.
2039         (VI4F_128): Rename from SSEMODE4S.
2040         (VI8F_128): Rename from SSEMODE2D.
2041         (VI4F_256): Rename from AVX256MODE8P.
2042         (VI8F_256): Rename from AVX256MODE4P.
2043         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2044         (ssescalarmodesuffix): Remove SF and DF modes.
2045         (SSEMODE124): Remove.
2046         (SSEMODE1248): Ditto.
2047         (SSEMODEF2P): Ditto.
2048         (AVXMODEF2P): Ditto.
2049         (AVXMODEFDP): Ditto.
2050         (AVXMODEFSP): Ditto.
2051         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2052         unconditional.
2053         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2054         unconditional.
2055         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2056         xop_pcmov_<mode>256.  Use V mode iterator.
2057
2058         Adjust RTX patterns globally for renamed mode attributes.
2059
2060 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2061
2062         * haifa-sched.c (sched_emit_insn): Emit insn before first
2063         non-scheduled insn.  Inform back-end about new insn.  Add
2064         new insn to scheduled_insns list.
2065
2066 2011-05-02  Richard Guenther  <rguenther@suse.de>
2067
2068         PR tree-optimization/48822
2069         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2070         (process_scc): Indicate which iteration we start.
2071
2072 2011-05-02  Jan Hubicka  <jh@suse.cz>
2073
2074         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2075         (lto_section_overrun): New.
2076         * lto-section-out.c (append_block): Rename to ...
2077         (lto_append_block): ... this one; export.
2078         (lto_output_1_stream): Move lto lto-streamer.h
2079         (lto_output_data_stream): Update.
2080         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2081         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2082         functions.
2083
2084 2011-05-02  Richard Guenther  <rguenther@suse.de>
2085
2086         * tree.c (tree_code_counts): New global array.
2087         (record_node_allocation_statistics): Count individual tree codes.
2088         (dump_tree_statistics): Dump individual code stats.
2089
2090 2011-05-01  Jan Hubicka  <jh@suse.cz>
2091
2092         * ipa-inline.c (caller_growth_limits): Fix thinko when
2093         looking for largest stack frame.
2094         * ipa-inline.h (dump_inline_summary): Declare.
2095         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2096         on stack usage.
2097         (dump_inline_summary): Export.
2098         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2099
2100 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2101
2102         * reginfo.c (memory_move_cost): Change rclass argument type form
2103         'enum reg_class' to reg_class_t.
2104         * reload.h (memory_move_cost): Update prototype.
2105         * postreload.c reload_cse_simplify_set): Change type dclass var to
2106         reg_class_t.
2107         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2108         Update prototype.
2109         (ira_allocate_and_set_costs): Change aclass argument type form
2110         'enum reg_class' to reg_class_t.
2111         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2112         Change aclass argument type to reg_class_t.
2113         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2114         to reg_class_t.
2115         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2116         memory_move_cost call.
2117
2118         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2119         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2120         Change type tmp var to reg_class_t.
2121
2122 2011-04-30  Jan Hubicka  <jh@suse.cz>
2123
2124         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2125         inlining into function with flatten attribute.
2126         (want_inline_small_function_p): Be more realistic about inlining
2127         cold calls where callee size grows.
2128
2129 2011-04-30  Jan Hubicka  <jh@suse.cz>
2130
2131         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2132         flags.
2133
2134 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2135
2136         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2137         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2138         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2139         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2140         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2141         (print_operand): Rename to...
2142         (sparc_print_operand): ...this. Make static. Adjust
2143         sparc_print_operand function call.
2144         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2145         functions.
2146
2147 2011-04-30  Jan Hubicka  <jh@suse.cz>
2148
2149         PR middle-end/48752
2150         * ipa-inline.c (early_inliner): Disable when doing late
2151         addition of function.
2152
2153 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2154
2155         * dwarf2out.c (get_address_mode): New inline.
2156         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2157         if not dwarf_strict emit
2158         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2159         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2160         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2161         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2162         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2163         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2164         mem_loc_descriptor callers.
2165         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2166         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2167         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2168         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2169         (base_types): New variable.
2170         (get_base_type_offset, calc_base_type_die_sizes,
2171         base_type_for_mode, mark_base_types, base_type_cmp,
2172         move_marked_base_types): New functions.
2173         (calc_die_sizes): Assert that die_offset is 0 or equal to
2174         next_die_offset.
2175         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2176         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2177         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2178         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2179         (gen_subprogram_die): Don't give up on call site parameters
2180         with non-integral or large integral modes.  Adjust
2181         mem_loc_descriptor callers.
2182         (prune_unused_types): Call prune_unused_types_mark on base_types
2183         vector entries.
2184         (resolve_addr): Call mark_base_types.
2185         (dwarf2out_finish): Call move_marked_base_types.
2186
2187         PR tree-optimization/48809
2188         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2189         type.
2190         (gen_inbound_check): Don't compute index_expr - range_min in utype
2191         again, instead reuse SSA_NAME initialized in build_arrays.
2192         Remove two useless gsi_for_stmt calls.
2193
2194 2011-04-29  Jeff Law  <law@redhat.com>
2195
2196         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2197
2198 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2199
2200         * cgraph.h (cgraph_postorder): Remove declaration.
2201         * ipa-utils.h (ipa_free_postorder_info): Declare.
2202         (ipa_reverse_postorder): Likewise.
2203         * cgraphunit.c: Include ipa-utils.h.
2204         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2205         * ipa-inline.c: Include ipa-utils.h.
2206         (ipa_inline): Update call to ipa_reverse_postorder.
2207         * ipa-pure-const.c (propagate_pure_const): Update call to
2208         ipa_reduced_postorder and ipa_print_order.  Call
2209         ipa_free_postorder_info to clean up.
2210         (propagate_nothrow): Likewise.
2211         * ipa-reference.c (propagate): Removed a useless call to
2212         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2213         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2214         * ipa.c: Include ipa-utils.h.
2215         (ipa_profile): Update call to ipa_reverse_postorder.
2216         (cgraph_postorder): Moved to...
2217         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2218         (ipa_utils_print_order): Renamed to ipa_print_order.
2219         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2220         comments.
2221         (ipa_free_postorder_info): New function.
2222         * passes.c: Include ipa-utils.h.
2223         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2224         (ipa_write_summaries): Likewise.
2225         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2226         (cgraphunit.o): Likewise.
2227         (ipa.o): Likewise.
2228         (ipa-inline.o): Likewise.
2229
2230 2011-04-29  Jan Hubicka  <jh@suse.cz>
2231
2232         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2233         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2234         * ipa-inline.h (clause_t): Turn into unsigned int.
2235         * ipa-inline-analysis.c (add_clause): Do more simplification.
2236         (and_predicates): Shortcut more cases.
2237         (predicates_equal_p): Move forward; check that clauses are properly
2238         ordered.
2239         (or_predicates): Shortcut more cases.
2240         (edge_execution_predicate): Rewrite as...
2241         (set_cond_stmt_execution_predicate): ... this function; handle
2242         __builtin_constant_p.
2243         (set_switch_stmt_execution_predicate): New .
2244         (compute_bb_predicates): New.
2245         (will_be_nonconstant_predicate): Update TODO.
2246         (estimate_function_body_sizes): Use compute_bb_predicates
2247         and free them later, always try to estimate if stmt is constant.
2248         (estimate_time_after_inlining, estimate_size_after_inlining):
2249         Gracefully handle optimized out edges.
2250         (read_predicate): Fix off by one error.
2251
2252 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2253
2254         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2255
2256 2011-04-27  Xinliang David Li  <davidxl@google.com>
2257
2258         * tree-profile.c (init_ic_make_global_vars): Set
2259         tls attribute on ic vars.
2260         * coverage.c (coverage_end_function): Initialize
2261         function_list with zero.
2262
2263 2011-04-29  Richard Guenther  <rguenther@suse.de>
2264
2265         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2266         for the type of the result.
2267         (fold_builtin_isascii): Likewise.
2268         (fold_builtin_toascii): Use integer_type_node where appropriate.
2269         (fold_builtin_logb): Likewise.
2270         (fold_builtin_frexp): Likewise.
2271         (fold_builtin_strstr): Likewise.
2272         (fold_builtin_strpbrk): Likewise.
2273         (fold_builtin_fputs): Likewise.
2274         (fold_builtin_sprintf): Likewise.
2275         (fold_builtin_snprintf): Likewise.
2276         (fold_builtin_printf): Likewise.
2277         (do_mpfr_remquo): Use a proper type for the assigned constant.
2278         (do_mpfr_lgamma_r): Likewise.
2279         * dwarf2out.c (resolve_one_addr): Use size_int.
2280         * except.c (init_eh): Likewise.
2281         (assign_filter_values): Use integer_type_node for filter values.
2282         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2283         indices.
2284         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2285         for EH region numbers.
2286         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2287         for the shift amount.
2288
2289 2011-04-29  Richard Guenther  <rguenther@suse.de>
2290
2291         * expr.h (expand_shift): Rename to ...
2292         (expand_variable_shift): ... this.
2293         (expand_shift): Take a constant shift amount.
2294         * expmed.c (expand_shift): Rename to ...
2295         (expand_variable_shift): ... this.
2296         (expand_shift): New wrapper around expand_variable_shift.
2297         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2298         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2299         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2300         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2301         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2302         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2303         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2304         emit_store_flag_1, emit_store_flag): Likewise.
2305         * builtins.c (expand_builtin_signbit): Likewise.
2306         * calls.c (load_register_parameters): Likewise.
2307         * function.c (assign_parm_setup_block): Likewise.
2308         * lower-subreg.c (resolve_shift_zext): Likewise.
2309         * optabs.c (widen_bswap, expand_abs_nojump,
2310         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2311         * spu/spu.c (spu_expand_extv): Likewise.
2312         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2313
2314 2011-04-29  Richard Guenther  <rguenther@suse.de>
2315
2316         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2317         for the remapped region number.
2318         * predict.c (build_predict_expr): Use integer_type_node for the
2319         predict kind.
2320         * fold-const.c (fold_binary_loc): Use integer_type_node for
2321         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2322
2323 2011-04-29  Michael Matz  <matz@suse.de>
2324
2325         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2326         other trees that just builtins.
2327         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2328
2329 2011-04-29  Richard Guenther  <rguenther@suse.de>
2330
2331         * tree-nested.c (get_trampoline_type): Use size_int.
2332         (get_nl_goto_field): Likewise.
2333         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2334         for all indexes.
2335         (lower_eh_constructs_2): Likewise.
2336         (lower_resx): Likewise.
2337         (lower_eh_dispatch): Likewise.
2338         * tree-mudflap.c (mf_build_string): Use size_int.
2339         (mudflap_register_call): Use integer_type_node for the flag.
2340         (mudflap_enqueue_constant): Use size_int.
2341         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2342         instead of rebuilding it.
2343
2344 2011-04-29  Richard Guenther  <rguenther@suse.de>
2345
2346         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2347         Handle OBJ_TYPE_REF.
2348         (find_func_aliases_for_call): Use it more consistently.
2349
2350 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2351
2352         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2353         (rank_for_schedule): Use it.
2354         (schedule_block): Set it.
2355
2356 2011-04-28  David Li  <davidxl@google.com>
2357
2358         * tree.c (crc32_string): Use crc32_byte.
2359         (crc32_byte): New function.
2360         * tree.h (crc32_byte): New function.
2361         * gcov.c (read_graph_file): Handle new cfg_cksum.
2362         (read_count_file): Ditto.
2363         * profile.c (instrument_values): Ditto.
2364         (get_exec_counts): Ditto.
2365         (read_profile_edge_counts): Ditto.
2366         (compute_branch_probabilities): Ditto.
2367         (compute_value_histograms): Ditto.
2368         (branch_prob): Ditto.
2369         (end_branch_prob): Ditto.
2370         * coverage.c (read_counts_file): Ditto.
2371         (get_coverage_counts): Ditto.
2372         (tree_coverage_counter_addr): Ditto.
2373         (coverage_checksum_string): Ditto.
2374         (coverage_begin_output): Ditto.
2375         (coverage_end_function): Ditto.
2376         (build_fn_info_type): Ditto.
2377         (build_fn_info_value): Ditto.
2378         * libgcov.c (gcov_exit): Ditto.
2379         * gcov-dump.c (tag_function): Ditto.
2380         (compute_checksum): Remove.
2381
2382 2011-04-29  Alan Modra  <amodra@gmail.com>
2383
2384         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2385         unspec plus offset.  Tidy macho code.
2386
2387 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2388
2389         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2390         node instead of a decl.  Update all callers.
2391         * cgraph.h: Update declaration.
2392
2393 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2394
2395         PR tree-optimization/48765
2396         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2397         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2398         to indicate if loop aware SLP is being used.  Scan the statements
2399         and update the vectorization factor according to the type of
2400         vectorization before statement analysis.
2401         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2402         pass it to vect_analyze_loop_operations.
2403         (vectorizable_reduction): Set number of copies to 1 in case of pure
2404         SLP statement.
2405         * tree-vect-stmts.c (vectorizable_conversion,
2406         vectorizable_assignment, vectorizable_shift,
2407         vectorizable_operation, vectorizable_type_demotion,
2408         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2409         Likewise.
2410         (vectorizable_condition): Move the check that it is not SLP
2411         vectorization before the number of copies check.
2412         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2413         to vectorize the loop using SLP.
2414
2415 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2416
2417         PR middle-end/48597
2418         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2419         inline asm.
2420
2421 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2422
2423         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2424         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2425         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2426         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2427         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2428         linux*.h headers.
2429         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2430         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2431         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2432         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2433         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2434         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2435         REG_NAME.
2436         * config/i386/linux.h (REG_NAME): Don't define.
2437         * config/i386/linux64.h (REG_NAME): Don't define.
2438         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2439         Undefine before defining.
2440
2441 2011-04-28  Jan Hubicka  <jh@suse.cz>
2442
2443         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2444         nonconstant_names array.
2445         (estimate_function_body_sizes): Build nonconstant_names array; handle
2446         BUILT_IN_CONSTANT_P.
2447
2448 2011-04-28  Richard Guenther  <rguenther@suse.de>
2449
2450         PR bootstrap/48804
2451         Revert
2452         2011-04-28  Richard Guenther  <rguenther@suse.de>
2453
2454         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2455         as late as possible.
2456
2457 2011-04-28  Richard Guenther  <rguenther@suse.de>
2458
2459         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2460         (debug_constraint): Do it here.
2461         (dump_constraints): And here.
2462         (rewrite_constraints): And here.
2463         (dump_constraint_edge): Remove.
2464         (dump_constraint_graph): Rewrite to produce DOT output.
2465         (solve_constraints): Build succ graph as late as possible.
2466         Dump constraint graphs before and after solving.
2467
2468 2011-04-28  Richard Guenther  <rguenther@suse.de>
2469
2470         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2471         New function split out from ...
2472         (find_func_aliases): ... here.  Call it.
2473         (find_func_aliases_for_call): Likewise.
2474
2475 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2476
2477         * internal-fn.h (internal_fn_name_array): Declare.
2478         (internal_fn_flags_array): Likewise.
2479
2480 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2481
2482         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2483         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2484         Move from sse.md.
2485         (ssemodefsuffix): Remove.
2486         (ssevecmodesuffix): New mode attribute.
2487         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2488         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2489         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2490         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2491         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2492         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2493         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2494         ssemodesuffix mode attribute.
2495         (float splitters): Use ssevecmodesuffix mode attribute.
2496         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2497         (sseinsmode): Rename from avxvecmode.
2498         (avxsizesuffix): Rename from avxmodesuffix.
2499         (sseintvecmode): Rename from avxpermvecmode.
2500         (ssedoublevecmode): Rename from ssedoublesizemode.
2501         (ssehalfvecmode): Rename from avxhalfvecmode.
2502         (ssescalarmode): Rename from avxscalarmode.
2503         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2504         templates for ssemodesuffix mode attribute.
2505         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2506         mode attribute.
2507
2508         Adjust RTX patterns globally for renamed mode attributes.
2509
2510 2011-04-27  Jan Hubcika  <jh@suse.cz>
2511
2512         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2513         * ipa-inline-analysis.c: Include alloc-pool.h.
2514         (edge_predicate_pool): New.
2515         (trye_predicate_p): New function
2516         (false_predicate_p): New function.
2517         (add_clause): Sanity check that false clauses are "optimized";
2518         never add clauses to predicate that is already known to be false.
2519         (and_predicate): Use flase_predicate_p.
2520         (evaulate_predicate): Rename to ...
2521         (evaluate_predicate): ... this one; update all callers; assert
2522         that false is not listed among possible truths.
2523         (dump_predicate): Use true_predicate_p.
2524         (account_size_time): Use false_predicate_p.
2525         (evaulate_conditions_for_edge): Rename to ...
2526         (evaluate_conditions_for_edge) ... this one.
2527         (edge_set_predicate): New function.
2528         (inline_edge_duplication_hook): Duplicate edge predicates.
2529         (inline_edge_removal_hook): Free edge predicates.
2530         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2531         (dump_inline_summary): Update.
2532         (estimate_function_body_sizes): Set edge predicates.
2533         (estimate_calls_size_and_time): Handle predicates.
2534         (estimate_callee_size_and_time): Update.
2535         (remap_predicate): Add toplev_predicate; update comment.
2536         (remap_edge_predicates): New function.
2537         (inline_merge_summary): Compute toplev predicate; update.
2538         (read_predicate): New function.
2539         (read_inline_edge_summary): Use it.
2540         (inline_read_section): Likewise.
2541         (write_predicate): New function.
2542         (write_inline_edge_summary): Use it.
2543         (inline_write_summary): Likewise.
2544         (inline_free_summary): Free alloc pool and edge summary vec.
2545
2546 2011-04-27  Richard Guenther  <rguenther@suse.de>
2547
2548         * tree-ssa-structalias.c (changed_count): Remove.
2549         (changed): Use a bitmap.
2550         (unify_nodes): Adjust.
2551         (do_sd_constraint): Likewise.
2552         (do_ds_constraint): Likewise.
2553         (do_complex_constraint): Likewise.
2554         (solve_graph): Likewise.
2555
2556 2011-04-27  Jan Hubicka  <jh@suse.cz>
2557
2558         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2559
2560 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2561
2562         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2563         (avx_vperm2f128_*_operand): Ditto.
2564         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2565         Use avx_vpermilp_parallel in insn condition.
2566         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2567         Use avx_vperm2f128_parallel in insn condition.
2568
2569 2011-04-27  Richard Guenther  <rguenther@suse.de>
2570
2571         * Makefile.in (tree-ssa-structalias.o): Remove
2572         gt-tree-ssa-structalias.h dependency.
2573         (GTFILES): Remove tree-ssa-structalias.c.
2574         * tree.c (allocate_decl_uid): New function.
2575         (make_node_stat): Use it.
2576         (copy_node_stat): Likewise.
2577         * tree.h (allocate_decl_uid): Declare.
2578         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2579         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2580         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2581         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2582         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2583         (struct heapvar_map): Likewise.
2584         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2585         heapvar_insert): Likewise.
2586         (make_heapvar_for): Rename to ...
2587         (make_heapvar): ... this.  Simplify.
2588         (fake_var_decl_obstack): New global var.
2589         (build_fake_var_decl): New function.
2590         (make_constraint_from_heapvar): Adjust.
2591         (handle_lhs_call): Likewise.
2592         (create_function_info_for): Likewise.
2593         (intra_create_variable_infos): Likewise.
2594         (init_alias_vars): Allocate fake_var_decl_obstack.
2595         (init_alias_heapvars, delete_alias_heapvars): Remove.
2596         (compute_points_to_sets): Do not call init_alias_heapvars.
2597         (ipa_pta_execute): Likewise.
2598         (delete_points_to_sets): Free fake_var_decl_obstack.
2599
2600 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2601
2602         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2603         (si_from_UTItype, si_to_UTItype): New functions.
2604         (__udivmodti4): Use them to implement type-punning.
2605         * config/spu/multi3.c (union qword_TItype): New data type.
2606         (si_from_TItype, si_to_TItype): New functions.
2607         (__multi3): Use them to implement type-punning.
2608
2609 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2610
2611         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2612
2613 2011-04-27  Jan Hubicka  <jh@suse.cz>
2614
2615         * ipa-prop.c (function_insertion_hook_holder): New holder.
2616         (ipa_add_new_function): New function.
2617         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2618         Register/deregister holder.
2619
2620 2011-04-27  Richard Guenther  <rguenther@suse.de>
2621
2622         PR tree-optimization/48772
2623         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
2624
2625 2011-04-27  Richard Guenther  <rguenther@suse.de>
2626
2627         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2628         TARGET_MEM_REF handling.
2629
2630 2011-04-27  Nick Clifton  <nickc@redhat.com>
2631
2632         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2633         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2634         (REG_CLASS_NAMES): Likewise.
2635         (REG_CLASS_CONTENTS): Likewise.
2636         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2637         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2638         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2639         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2640         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2641         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2642         duplicate register classes.
2643         (frv_class_likely_spilled_p): Likewise.
2644         (frv_register_move_cost): Likewise.
2645
2646         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2647         end of the regno_reg_class array.
2648
2649 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2650
2651         PR c/48742
2652         * c-typeck.c (build_binary_op): Don't wrap arguments if
2653         int_operands is true.
2654
2655 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2656
2657         PR target/48767
2658         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2659         targetm.calls.must_pass_in_stack for void type.
2660
2661 2011-04-26  Jan Hubicka  <jh@suse.cz>
2662
2663         * cgraphbuild.c (build_cgraph_edges): Update call
2664         of cgraph_create_edge and cgraph_create_indirect_edge.
2665         * cgraph.c (cgraph_create_edge_including_clones,
2666         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2667         cgraph_update_edges_for_call_stmt_node): Do not take nest
2668         argument; do not initialize call_stmt_size/time.
2669         (dump_cgraph_node): Do not dump nest.
2670         (cgraph_clone_edge): Do not take loop_nest argument;
2671         do not propagate it; do not clone call_stmt_size/time.
2672         (cgraph_clone_node): Likewise.
2673         (cgraph_create_virtual_clone): Update.
2674         * cgraph.h (struct cgraph_edge): Remove
2675         call_stmt_size/call_stmt_time/loop_nest.
2676         (cgraph_create_edge, cgraph_create_indirect_edge,
2677         cgraph_create_edge_including_clones, cgraph_clone_node): Update
2678         prototype.
2679         * tree-emutls.c (gen_emutls_addr): Update.
2680         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2681         loop_nest; handle indirect calls, too.
2682         (clone_inlined_nodes): Do not care about updating inline summaries.
2683         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2684         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2685         stream call_stmt_size/call_stmt_time/loop_nest.
2686         * ipa-inline.c (edge_badness): Update.
2687         (ipa_inline): dump summaries after inlining.
2688         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
2689         New.
2690         (inline_edge_summary): New function.
2691         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2692         (inline_edge_removal_hook): Handle edge summaries.
2693         (inline_edge_duplication_hook): New hook.
2694         (inline_summary_alloc): Alloc hooks.
2695         (initialize_growth_caches): Do not register removal hooks.
2696         (free_growth_caches); Do not free removal hook.
2697         (dump_inline_edge_summary): New function.
2698         (dump_inline_summary): Use it.
2699         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2700         (inline_update_callee_summaries): New function.
2701         (inline_merge_summary): Use it.
2702         (do_estimate_edge_time, do_estimate_edge_growth): Update.
2703         (read_inline_edge_summary): New function.
2704         (inline_read_section): Use it.
2705         (write_inline_edge_summary): New function.
2706         (inline_write_summary): Use it.
2707         (inline_free_summary): Free edge new holders.
2708         * tree-inline.c (copy_bb): Update.
2709
2710 2011-04-26  Jason Merrill  <jason@redhat.com>
2711
2712         * tree-eh.c (lower_try_finally_switch): Create the label along with
2713         the CASE_LABEL_EXPR.
2714
2715 2011-04-26  David S. Miller  <davem@davemloft.net>
2716             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2717
2718         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2719         * configure: Regenerate.
2720
2721 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2722
2723         PR target/48258
2724         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2725         reduction.
2726         (VEC_reduc): New code iterator and splitters for vector reduction.
2727         (VEC_reduc_name): Ditto.
2728         (VEC_reduc_rtx): Ditto.
2729         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2730         (reduc_<VEC_reduc_name>_v4sf): Ditto.
2731
2732         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2733         support for extracting SF on VSX.
2734
2735         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2736         generating xscvspdp.
2737         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2738         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2739         double add, minimum, maximum vector reduction.
2740         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2741         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2742         optimize double vector reduction.
2743         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2744
2745 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
2746
2747         * config/fr30/fr30.h (inhibit_libc): Don't define.
2748         * config/m32r/m32r-protos.h: Correct comment.
2749         * config/v850/v850.h (GHS_default_section_names,
2750         GHS_current_section_names): Use tree, not union tree_node *.
2751
2752 2011-04-26  Xinliang David Li  <davidxl@google.com>
2753
2754         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2755         * c-family/c-opts.c (c_common_handle_option): Set
2756         warn_maybe_uninitialized.
2757         * opts.c (common_handle_option): Ditto.
2758         * common.opt:  New option.
2759         * tree-ssa.c (warn_uninit): Add one more parameter.
2760         (warn_uninitialized_var): Pass warning code.
2761         * tree-flow.h: Interface change.
2762
2763
2764 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2765
2766         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2767         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2768         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2769
2770 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2771
2772         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2773         * config/mips/mips.opt (mmips-tfile): Remove.
2774
2775         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2776         mips-tdump reference to ...
2777         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
2778         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2779         reference by Tru64 UNIX.
2780
2781 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
2782
2783         PR debug/48768
2784         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2785         is error_mark_node, set value to NULL.
2786
2787         PR tree-optimization/48734
2788         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2789         if return value from maybe_fold_*_comparsions isn't something
2790         the code is prepared to handle.
2791
2792 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
2793
2794         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2795         mode check.
2796         (ext_QIreg_nomode_operands): Remove.
2797         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2798         (*andsi_1): Ditto.
2799         (*andhi_1): Ditto.
2800
2801 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
2802
2803         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2804
2805 2011-04-26  Richard Guenther  <rguenther@suse.de>
2806
2807         * c-typeck.c (build_unary_op): Do not expand array-refs via
2808         pointer arithmetic.  Only adjust qualifiers for function types.
2809
2810 2011-04-26  Richard Guenther  <rguenther@suse.de>
2811
2812         PR middle-end/48694
2813         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2814         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
2815         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
2816         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2817
2818 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
2819
2820         * doc/extend.texi: Document __underlying_type.
2821
2822 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
2823
2824         * config/rs6000/titan.md (automata_option "progress"): Remove.
2825
2826 2011-04-25  Jeff Law  <law@redhat.com>
2827
2828         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2829
2830 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2831
2832         * system.h (ENUM_BITFIELD): Remove.
2833
2834 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
2835             Eric Botcazou  <ebotcazou@adacore.com>
2836
2837         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2838         for STORE_FLAG_VALUE==-1 case.
2839
2840 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
2841
2842         PR target/43804
2843         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2844         LEGITIMATE_PIC_OPERAND_P.
2845
2846 2011-04-24  Jan Hubicka  <jh@suse.cz>
2847
2848         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2849         WPA hack.
2850         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2851         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2852         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
2853         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2854         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2855         Sanity check predicate length.
2856         (remap_predicate): Likewise; sanity check jump functions.
2857         (inline_read_section, inline_write_summary): Sanity check
2858         predicate length.
2859
2860 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
2861
2862         PR other/48748
2863         * doc/extend.texi (Type Traits): Document __is_standard_layout,
2864         __is_literal_type, and __is_trivial; update throughout about
2865         possibly cv-qualified void types.
2866
2867 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2868
2869         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2870         testsuite and make it version agnostic.
2871
2872 2011-04-22  Jan Hubicka  <jh@suse.cz>
2873
2874         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2875
2876 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
2877
2878         PR c/48685
2879         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2880         to VOID_TYPE even around MODIFY_EXPR.
2881
2882 2011-04-22  Mike Stump  <mikestump@comcast.net>
2883
2884         * gensupport.c (read_md_rtx): Fix typo in comment.
2885         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2886         comment.
2887
2888 2011-04-22  Jan Hubicka  <jh@suse.cz>
2889
2890         * gengtype.c (open_base_files): Add ipa-inline.h include.
2891         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2892         ipa-prop.c; update all uses.
2893         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
2894         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2895         merge summary of inlined function into former caller.
2896         * ipa-inline.c (max_benefit): Remove.
2897         (edge_badness): Compensate for removal of benefits.
2898         (update_caller_keys): Use
2899         reset_node_growth_cache/reset_edge_growth_cache.
2900         (update_callee_keys): Likewise.
2901         (update_all_callee_keys): Likewise.
2902         (inline_small_functions): Do not collect max_benefit; do not reset
2903         estimated_growth; call free_growth_caches and initialize_growth_caches.
2904         * ipa-inline.h (struct condition, type clause_t, struct predicate,
2905         struct size_time_entry): New structures.
2906         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
2907         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2908         and estimated_growth.
2909         (edge_growth_cache_entry): New structure.
2910         (node_growth_cache, edge_growth_cache): New global vars.
2911         (estimate_growth): Turn into inline.
2912         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2913         initialize_growth_caches, free_growth_caches): Declare.
2914         (estimate_edge_growth): Rewrite.
2915         (estimate_edge_time): Implement as inline cache lookup.
2916         (reset_node_growth_cache, reset_edge_growth_cache): New inline
2917         functions.
2918         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2919         (NUM_CONDITIONS): New constant.
2920         (predicate_conditions): New enum.
2921         (IS_NOT_CONSTANT): New constant.
2922         (edge_removal_hook_holder): New var.
2923         (node_growth_cache, edge_growth_cache): New global vars.
2924         (true_predicate, single_cond_predicate, false_predicate,
2925         not_inlined_predicate, add_condition, add_clause, and_predicates,
2926         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2927         dump_clause, dump_predicate, account_size_time,
2928         evaulate_conditions_for_edge): New functions.
2929         (inline_summary_alloc): Move to heap.
2930         (inline_node_removal_hook): Clear condition and entry vectors.
2931         (inline_edge_removal_hook): New function.
2932         (initialize_growth_caches, free_growth_caches): New function.
2933         (dump_inline_summary): Update.
2934         (edge_execution_predicate): New function.
2935         (will_be_nonconstant_predicate): New function.
2936         (estimate_function_body_sizes): Compute BB and constantness predicates.
2937         (compute_inline_parameters): Do not clear estimated_growth.
2938         (estimate_edge_size_and_time): New function.
2939         (estimate_calls_size_and_time): New function.
2940         (estimate_callee_size_and_time): New function.
2941         (remap_predicate): New function.
2942         (inline_merge_summary): New function.
2943         (do_estimate_edge_time): New function based on...
2944         (estimate_edge_time): ... this one.
2945         (do_estimate_edge_growth): New function.
2946         (do_estimate_growth): New function based on....
2947         (estimate_growth): ... this one.
2948         (inline_analyze_function): Analyze after deciding on jump functions.
2949         (inline_read_section): New function.
2950         (inline_read_summary): Use it.
2951         (inline_write_summary): Write all the new data.
2952         * ipa-prop.c (ipa_get_param_decl_index): Export.
2953         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
2954         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
2955         Declare.
2956         (ipa_get_lattice): Move here from ipa-cp.c
2957         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
2958         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
2959         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
2960         cgraph_edge_inlinable_p): Remove.
2961         * cgraphunit.c: Include ipainline.h
2962         (cgraph_process_new_functions): Update call of
2963         compute_inline_parameters.
2964
2965 2011-04-22  Richard Guenther  <rguenther@suse.de>
2966
2967         * tree.c (build_int_cst): Properly create canonicalized integer
2968         constants.
2969         (build_int_cst_type): Remove scary comments.
2970
2971 2011-04-22  Xinliang David Li  <davidxl@google.com>
2972
2973         * toplev.c (process_options): Enable -Werror=coverage-mismatch
2974         by default when -Wno-error is not specified.
2975         * opts-global.c (decode_options): Remove call to
2976         control_warning_options.
2977
2978 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2979
2980         PR tree-optimization/48717
2981         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
2982         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
2983
2984 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
2985
2986         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
2987         definition where used.
2988
2989 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2990
2991         PR c/48716
2992         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
2993         TREE_STATIC variables declared inside of some OpenMP construct.
2994
2995 2011-04-22  Martin Jambor  <mjambor@suse.cz>
2996
2997         PR middle-end/48585
2998         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
2999
3000 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3001
3002         PR c/36750
3003         * c-typeck.c (pop_init_level): Do not warn about initializing
3004         with ` = {0}'.
3005
3006 2011-04-22  Alan Modra  <amodra@gmail.com>
3007
3008         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3009         when returning call_cookie.
3010         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3011         pointers, to functions with no more vector args than the current
3012         function, and some non-local calls for ABI_V4.
3013         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3014         sibcall_nonlocal_aix64): Combine to ..
3015         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3016         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3017         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3018         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3019         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3020         operand.
3021         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3022         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3023         sibcall_value_symbolic_64): Delete.
3024
3025 2011-04-21  Xinliang David Li  <davidxl@google.com>
3026
3027         * cgraph.h: Remove pid.
3028         * cgraph.c: Remove pid.
3029         * value-prof.c (init_node_map): New function.
3030         (del_node_map): New function.
3031         (find_func_by_funcdef_no): New function.
3032         (gimple_ic_transform): Call new function.
3033         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3034         * function.c (get_last_funcdef_no): New function.
3035         * function.h (get_last_funcdef_no): New function.
3036         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3037         to libgcov function.
3038         (tree-profiling): Call node map init and delete function.
3039
3040 2011-04-21  Ian Lance Taylor  <iant@google.com>
3041
3042         * godump.c (go_format_type): Use exported Go name for anonymous
3043         field name.
3044
3045 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3046
3047         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3048         Call builtin_function_type_list instead of builtin_function_type.
3049         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3050
3051 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3052
3053         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3054         build_function_type_list instead of build_function_type.
3055         Delete variable `endlink'.
3056
3057 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3058
3059         * config/s390/s390.c (s390_init_builtins): Call
3060         build_function_type_list instead of build_function_type.
3061
3062 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3063
3064         * config/ia64/ia64.c (ia64_init_builtins): Call
3065         build_function_type_list instead of builtin_function_type.
3066
3067 2011-04-21  Easwaran Raman  <eraman@google.com>
3068
3069         * cfgexpand.c (stack_var): Remove OFFSET...
3070         (add_stack_var): ...and its reference here...
3071         (expand_stack_vars): ...and here.
3072         (stack_var_cmp): Sort by descending order of size.
3073         (partition_stack_vars): Change heuristic.
3074         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3075         (dump_stack_var_partition): Add newline after each partition.
3076
3077 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3078             Jeff Law  <law@redhat.com>
3079
3080         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3081         * gengtype.c (matching_file_name_substitute): Likewise.
3082
3083 2011-04-21  Richard Guenther  <rguenther@suse.de>
3084
3085         PR lto/48703
3086         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3087
3088 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3089
3090         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3091
3092 2011-04-21  Richard Guenther  <rguenther@suse.de>
3093
3094         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3095         file name.
3096
3097 2011-04-21  Richard Guenther  <rguenther@suse.de>
3098
3099         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3100         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3101         Use DECL_P, not SSA_VAR_P.
3102         (ptr_derefs_may_alias_p): Likewise.
3103         (ptr_deref_may_alias_ref_p_1): Likewise.
3104         (decl_refs_may_alias_p): Likewise.
3105         (refs_may_alias_p_1): Likewise.
3106         (ref_maybe_used_by_call_p_1): Likewise.
3107         (call_may_clobber_ref_p_1): Likewise.
3108         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3109         are either MEM_REF or TARGET_MEM_REF.
3110         (indirect_refs_may_alias_p): Likewise.
3111         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3112         for MEM_EXPR of indirect calls.
3113
3114 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3115
3116         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3117         (dst_file_info_struct): Remove flen field.
3118         (lookup_filename): Remove code that set flen field.
3119
3120 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3121
3122         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3123
3124 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3125
3126         PR target/48708
3127         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3128         vec_extract and vec_concat for non-SSE4_1 targets.
3129
3130 2011-04-21  Richard Guenther  <rguenther@suse.de>
3131
3132         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3133         return statements.
3134
3135 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3136
3137         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3138         undefine.
3139         (FILE): Don't undefine.
3140
3141 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3142
3143         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3144         struct rtx_def *.
3145         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3146         struct rtx_def *.
3147         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3148         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3149         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3150         rtx_def *.
3151         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3152         definitions where used.
3153         * config/microblaze/microblaze.h (struct microblaze_args): Use
3154         rtx, not struct rtx_def *.
3155         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3156         rtx_def *.
3157         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3158         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3159         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3160         not struct rtx_def *.
3161         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3162         struct rtx_def *.
3163         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3164         rtx_def *.
3165         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3166
3167 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3168
3169         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3170         operand_equal_p to compare DR_BASE_ADDRESSes.
3171         (vect_check_interleaving): Likewise.
3172
3173 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3174
3175         PR target/46329
3176         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3177         for all Neon struct constants.
3178
3179 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3180
3181         * target.def (legitimate_constant_p): New hook.
3182         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3183         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3184         * doc/tm.texi: Regenerate.
3185         * hooks.h (hook_bool_mode_rtx_true): Declare.
3186         * hooks.c (hook_bool_mode_rtx_true): Define.
3187         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3188         * calls.c (precompute_register_parameters): Replace uses of
3189         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3190         (emit_library_call_value_1): Likewise.
3191         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3192         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3193         * ira-costs.c (scan_one_insn): Likewise.
3194         * recog.c (general_operand, immediate_operand): Likewise.
3195         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3196         * reload1.c (init_eliminable_invariants): Likewise.
3197
3198         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3199         mode argument.
3200         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3201         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3202         argument.
3203         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3204         * config/alpha/predicates.md (input_operand): Update call to
3205         alpha_legitimate_constant_p.
3206
3207         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3208         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3209         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3210         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3211         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3212         (arm_legitimate_constant_p): New functions.
3213         (arm_cannot_force_const_mem): Make static.
3214
3215         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3216
3217         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3218         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3219         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3220         instead of bfin_legitimate_constant_p.
3221         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3222         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3223
3224         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3225
3226         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3227
3228         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3229         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3230         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3231         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3232
3233         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3234         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3235         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3236
3237         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3238         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3239         * config/i386/i386.c (legitimate_constant_p): Rename to...
3240         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3241         argument.
3242         (ix86_cannot_force_const_mem): Update accordingly.
3243         (ix86_legitimate_address_p): Likewise.
3244         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3245         * config/i386/i386.md: Update commentary.
3246
3247         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3248         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3249         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3250         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3251
3252         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3253
3254         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3255         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3256         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3257         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3258
3259         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3260         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3261         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3262
3263         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3264         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3265         (m32r_legitimate_constant_p): New function.
3266
3267         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3268         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3269         LEGITIMATE_CONSTANT_P.
3270         (LEGITIMATE_CONSTANT_P): Delete.
3271         * config/m68k/m68k.c (m68k_expand_prologue): Call
3272         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3273         (m68k_legitimate_constant_p): New function.
3274         * config/m68k/m68k.md: Update comments.
3275
3276         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3277         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3278         (mcore_legitimate_constant_p): New function.
3279
3280         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3281         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3282         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3283         Add a mode argument.
3284         (mep_legitimate_address): Update accordingly.
3285         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3286
3287         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3288         Delete.
3289         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3290         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3291         static.  Check OP's mode for VOIDmode.
3292         (microblaze_legitimate_constant_p): New function.
3293         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3294
3295         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3296         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3297         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3298         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3299         * config/mips/predicates.md: Update comments.
3300
3301         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3302         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3303         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3304         (mmix_legitimate_constant_p): Make static, return a bool, and take
3305         a mode argument.
3306         (mmix_print_operand_address): Update accordingly.
3307
3308         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3309         Delete.
3310         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3311         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3312         static.  Add a mode argument.
3313         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3314
3315         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3316
3317         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3318         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3319         (pa_legitimate_constant_p): New function.
3320
3321         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3322
3323         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3324         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3325         (pdp11_legitimate_constant_p): New function.
3326
3327         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3328         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3329         (rs6000_legitimate_constant_p): New function.
3330
3331         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3332         (rx_legitimate_constant_p): ...this.
3333         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3334         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3335         (rx_legitimate_constant_p): ...this.
3336         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3337         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3338
3339         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3340         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3341         * config/s390/s390.c (legitimate_constant_p): Rename to...
3342         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3343         and add a mode argument.
3344         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3345
3346         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3347
3348         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3349         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3350         (sh_legitimate_constant_p): New function.
3351
3352         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3353         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3354         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3355         (legitimate_constant_p): Rename to...
3356         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3357         argument.
3358         (constant_address_p): Update accordingly.
3359
3360         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3361         argument and return a bool.
3362         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3363         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3364         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3365         (spu_rtx_costs): Update accordingly.
3366         * config/spu/predicates.md (vec_imm_operand): Likewise.
3367
3368         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3369
3370         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3371         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3372         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3373
3374         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3375         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3376         * config/vax/vax.c (legitimate_constant_p): Likewise.
3377
3378         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3379         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3380         (xtensa_legitimate_constant_p): New function.
3381
3382 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3383
3384         * target.def (cannot_force_const_mem): Add a mode argument.
3385         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3386         * doc/tm.texi: Regenerate.
3387         * hooks.h (hook_bool_mode_rtx_false): Declare.
3388         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3389         (hook_bool_mode_const_rtx_true): Likewise.
3390         (hook_bool_mode_rtx_false): New function.
3391         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3392         to be non-VOID.  Update call to cannot_force_const_mem.
3393         (find_reloads): Update accordingly.
3394         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3395         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3396         argument.
3397         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3398         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3399         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3400         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3401         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3402         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3403         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3404         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3405         (m68k_cannot_force_const_mem): ...this new function.
3406         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3407         argument.
3408         (mips_const_insns, mips_legitimize_const_move): Update calls.
3409         (mips_secondary_reload_class): Likewise.
3410         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3411         (pa_cannot_force_const_mem): ...this new function.
3412         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3413         (rs6000_cannot_force_const_mem): ...this new function.
3414         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3415         argument.
3416         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3417         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3418         to...
3419         (xtensa_cannot_force_const_mem): ...this new function.
3420
3421 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3422
3423         * config/mips/mips.c (mips16_build_function_stub): Call
3424         build_function_type_list instead of build_function_type.
3425         (mips16_build_call_stub): Likewise.
3426
3427 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3428
3429         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3430         instead of build_function_type.
3431
3432 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3433
3434         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3435         instead of build_function_type.
3436
3437 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3438
3439         PR target/48678
3440         * config/i386/i386.md (insv): Change operand 0 constraint to
3441         "register_operand".  Change operand 1 and 2 constraint to
3442         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3443         * config/i386/sse.md (sse4_1_pinsrb): Export.
3444         (sse2_pinsrw): Ditto.
3445         (sse4_1_pinsrd): Ditto.
3446         (sse4_1_pinsrq): Ditto.
3447         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3448         * config/i386/i386.c (ix86_expand_pinsr): New.
3449
3450 2011-04-20  Easwaran Raman  <eraman@google.com>
3451
3452         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3453         containing union type only with -fstrict-aliasing.
3454
3455 2011-04-20  Jim Meyering  <meyering@redhat.com>
3456
3457         Remove useless if-before-free tests.
3458         * calls.c (expand_call, save_area): Likewise.
3459         * cfgcleanup.c (try_forward_edges): Likewise.
3460         * collect2.c (collect_execute): Likewise.
3461         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3462         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3463         * coverage.c (coverage_checksum_string): Likewise.
3464         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3465         * cselib.c (cselib_init): Likewise.
3466         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3467         (df_set_clean_cfg): Likewise.
3468         * function.c (free_after_compilation): Likewise.
3469         * gcc.c (do_spec_1, main): Likewise.
3470         * gcov.c (create_file_names): Likewise.
3471         * gensupport.c (identify_predicable_attribute): Likewise.
3472         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3473         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3474         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3475         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3476         * ipa-pure-const.c (local_pure_const): Likewise.
3477         * ipa-reference.c (propagate): Likewise.
3478         * ira-costs.c (free_ira_costs): Likewise.
3479         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3480         * matrix-reorg.c (mat_free): Likewise.
3481         * prefix.c (get_key_value): Likewise.
3482         * profile.c (compute_value_histograms): Likewise.
3483         * reload1.c (free_reg_equiv): Likewise.
3484         * sched-deps.c (free_deps): Likewise.
3485         * sel-sched-ir.c (fence_clear): Likewise.
3486         * sese.c (set_rename, if_region_set_false_region): Likewise.
3487         * tree-data-ref.c (free_rdg): Likewise.
3488         * tree-eh.c (lower_try_finally): Likewise.
3489         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3490         * tree-ssa-live.c (delete_var_map): Likewise.
3491         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3492         * tree-ssa-pre.c (phi_trans_add): Likewise.
3493
3494 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3495
3496         PR tree-optimization/48611
3497         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3498         beyond ERT_MUST_NOT_THROW region.
3499
3500 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3501
3502         * config/mips/mips.opt (mfix-24k): New.
3503         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3504         * config/mips/mips.md (length): Increase by 4 for stores if
3505         fixing 24K errata.
3506         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3507         all noreorder if fixing 24K errata.
3508         * doc/invoke.texi: Document mfix-24k.
3509
3510 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3511
3512         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3513         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3514
3515 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3516
3517         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3518         (const_ok_for_op): ... to here.
3519
3520 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3521
3522         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3523         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3524
3525 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3526
3527         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3528
3529 2011-04-20  Richard Guenther  <rguenther@suse.de>
3530
3531         PR tree-optimization/47892
3532         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3533         are if-convertible.
3534
3535 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3536
3537         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3538
3539 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3540
3541         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3542
3543 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3544
3545         PR target/18145
3546
3547         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3548         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3549         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3550         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3551         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3552
3553         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3554         New prototype.
3555
3556         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3557         (avr_asm_named_section, avr_asm_output_aligned_common,
3558         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3559         New functions to update...
3560         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3561         (avr_asm_init_sections): Overwrite section callbacks for
3562         data_section, bss_section.
3563         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3564         from here to...
3565         (avr_file_end): ...here.
3566
3567 2011-04-20  Richard Guenther  <rguenther@suse.de>
3568
3569         PR middle-end/48695
3570         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3571         objects and types here.  Adjust for their offset before comparing.
3572
3573 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3574
3575         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3576         statement per copy.
3577
3578 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3579
3580         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3581         (GIMPLE_H): Include $(INTERNAL_FN_H).
3582         (OBJS-common): Add internal-fn.o.
3583         (internal-fn.o): New rule.
3584         * internal-fn.def: New file.
3585         * internal-fn.h: Likewise.
3586         * internal-fn.c: Likewise.
3587         * gimple.h: Include internal-fn.h.
3588         (GF_CALL_INTERNAL): New gf_mask.
3589         (gimple_statement_call): Put fntype into a union with a new
3590         internal_fn field.
3591         (gimple_build_call_internal): Declare.
3592         (gimple_build_call_internal_vec): Likewise.
3593         (gimple_call_same_target_p): Likewise.
3594         (gimple_call_internal_p): New function.
3595         (gimple_call_internal_fn): Likewise.
3596         (gimple_call_fntype): Return null for internal calls.
3597         (gimple_call_set_fntype): Assert that the function is not internal.
3598         (gimple_call_set_fn): Likewise.
3599         (gimple_call_set_fndecl): Likewise.
3600         (gimple_call_set_internal_fn): New function.
3601         (gimple_call_addr_fndecl): Handle null functions.
3602         (gimple_call_return_type): Likewise null types.
3603         * gimple.c (gimple_build_call_internal_1): New function.
3604         (gimple_build_call_internal): Likewise.
3605         (gimple_build_call_internal_vec): Likewise.
3606         (gimple_call_same_target_p): Likewise.
3607         (gimple_call_flags): Handle calls to internal functions.
3608         (gimple_call_fnspec): New function.
3609         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3610         (gimple_has_side_effects): Handle null functions.
3611         (gimple_rhs_has_side_effects): Likewise.
3612         (gimple_call_copy_skip_args): Handle calls to internal functions.
3613         * cfgexpand.c (expand_call_stmt): Likewise.
3614         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3615         * gimple-fold.c (gimple_fold_call): Handle null functions.
3616         (gimple_fold_stmt_to_constant_1): Don't fold
3617         calls to internal functions.
3618         * gimple-low.c (gimple_check_call_args): Handle calls to internal
3619         functions.
3620         * gimple-pretty-print.c (dump_gimple_call): Likewise.
3621         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3622         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3623         (do_warn_unused_result): Likewise.
3624         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3625         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3626         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3627         the target of a call.
3628         (initialize_hash_element): Update accordingly.
3629         (hashable_expr_equal_p): Use gimple_call_same_target_p.
3630         (iterative_hash_hashable_expr): Handle calls to internal functions.
3631         (print_expr_hash_elt): Likewise.
3632         * tree-ssa-pre.c (can_value_number_call): Likewise.
3633         (eliminate): Handle null functions.
3634         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3635         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3636         (find_func_aliases): Likewise.
3637         * value-prof.c (gimple_ic_transform): Likewise.
3638         (gimple_indirect_call_to_profile): Likewise.
3639         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3640         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3641
3642 2011-04-19  Jan Hubicka  <jh@suse.cz>
3643
3644         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3645         * ipa-inline.c (inline_small_functions): Compute summaries first,
3646         populate heap later.
3647
3648 2011-04-19  Jan Hubicka  <jh@suse.cz>
3649
3650         * cgraph.h (save_inline_function_body): Remove.
3651         * ipa-inline-transform.c: New file, broke out of...
3652         * ipa-inline.c: ... this one; Update toplevel comment.
3653         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3654         make global.
3655         (update_noncloned_frequencies): Move to ipa-inline-transform.c
3656         (cgraph_mark_inline_edge): Rename to inline_call; move to
3657         ipa-inline-transform.c.
3658         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3659         move to ipa-inline-transform.c
3660         (recursive_inlining, inline_small_functions, flatten_function,
3661         ipa_inline, inline_always_inline_functions,
3662         early_inline_small_functions): Update.
3663         (inline_transform): Move to ipa-inline-transform.c.
3664         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3665         Declare.
3666         * Makefile.in (ipa-inline-transform.o): New file.
3667         * cgraphunit.c (save_inline_function_body): Move to
3668         ipa-inline-transform.c
3669
3670 2011-04-19  DJ Delorie  <dj@redhat.com>
3671
3672         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3673         registers if we already know there aren't any.
3674         (m32c_emit_epilogue): Don't emit a barrier here.
3675         (m32c_emit_eh_epilogue): Likewise.
3676         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3677         operands at expand time.
3678         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3679         int" wchar type.
3680         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3681         duplicates.  Provide aliases instead.
3682         * config/m32c/prologue.md (eh_return): Emit a barrier here.
3683         (eh_epilogue): Add a "(return)" here as a hint to other parts of
3684         the compiler.
3685
3686 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
3687
3688         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3689         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3690         (general_or_i64_p, sparc_register_move_cost): New function.
3691
3692 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3693
3694         * doc/install.texi (Configuration, --enable-threads): Remove mach.
3695         Add lynx, mipssde.  Sort table.
3696
3697 2011-04-19  Xinliang David Li  <davidxl@google.com>
3698
3699         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3700         not negative.
3701
3702 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
3703
3704         PR target/48678
3705         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3706         is a SUBREG with non-MODE_INT mode inside of it.
3707
3708 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3709
3710         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3711         also according to actual contants.
3712         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3713         (gimple_fold_call): Use it.
3714         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3715
3716 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3717
3718         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3719         non-pointer assignments.
3720
3721 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3722
3723         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3724         account anc_offset and otr_type from the indirect edge info.
3725         * ipa-prop.c (get_ancestor_addr_info): New function.
3726         (compute_complex_ancestor_jump_func): Assignment analysis moved to
3727         get_ancestor_addr_info, call it.
3728         (ipa_note_param_call): Do not initialize information about polymorphic
3729         calls, return the indirect call graph edge.  Remove the last
3730         parameter, adjust all callers.
3731         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3732         parameters.  Initialize polymorphic information in the indirect edge.
3733
3734 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3735
3736         PR lto/48148
3737         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3738         the types if they have different enumeration identifiers.
3739
3740 2011-04-19  Jan Hubicka  <jh@suse.cz>
3741
3742         * cgraph.h (cgraph_optimize_for_size_p): Declare.
3743         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3744         * predict.c (cgraph_optimize_for_size_p): Break out from ...
3745         (optimize_function_for_size_p) ... here.
3746
3747 2011-04-19  Richard Guenther  <rguenther@suse.de>
3748
3749         PR lto/48207
3750         * tree.c (free_lang_data): Do not reset the decl-assembler-name
3751         langhook.
3752
3753 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3754
3755         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3756         if DECL_NO_INLINE_WARNING_P is set on the function.
3757
3758 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
3759
3760         PR fortran/47976
3761         * reload1.c (inc_for_reload): Return void. All callers changed.
3762         (emit_input_reload_insns): Don't try to delete previous output
3763         reloads to a register, or record spill_reg_store for autoincs.
3764
3765 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
3766
3767         * gengtype.h: Updated copyright year.
3768         (struct input_file_st): Add inpisplugin field.
3769         (type_fileloc): New function.
3770         * gengtype.c
3771         (write_typed_struct_alloc_def): Add gcc_assert.
3772         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3773         (write_typed_alloc_defns): Don't output for plugin files.
3774         (input_file_by_name): Clear inpisplugin field.
3775         (main): Set inpisplugin field for plugin files.
3776
3777 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3778
3779         * gengtype-state.c (string_eq): New.
3780         (read_state): Use string_eq instead of strcmp when creating the
3781         state_ident_tab.
3782
3783 2011-04-19  Wei Guozhi  <carrot@google.com>
3784
3785         PR target/47855
3786         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3787         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3788         linkage.
3789         * config/arm/constraints.md (Uu): New constraint.
3790         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3791
3792 2011-04-19  Tristan Gingold  <gingold@adacore.com>
3793
3794         * config.gcc (-*-*-*vms): Added.
3795         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3796         definitions moved.
3797         * config/vms/vms-ld.c: New file.
3798         * config/vms/vms-ar.c: New file.
3799         * config/vms/t-vmsnative: New file.
3800
3801 2011-04-18  Xinliang David Li  <davidxl@google.com>
3802
3803         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3804
3805 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3806
3807         PR middle-end/48661
3808         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3809         if TREE_TYPE (v) is non-NULL.
3810
3811         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3812         gimple_get_virt_mehtod_for_binfo.
3813         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3814         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3815         callers.
3816         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3817
3818 2011-04-18  Michael Matz  <matz@suse.de>
3819             Steve Ellcey  <sje@cup.hp.com>
3820
3821         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3822         use its mode as source mode if it isn't VOIDmode.
3823
3824 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
3825
3826         * doc/passes.texi: Fill crossref nodes.
3827
3828 2011-04-18  Jim Meyering  <meyering@redhat.com>
3829
3830         Fix doubled-word typos in comments and strings
3831         * config/alpha/vms-unwind.h: s/for for/for/
3832         * config/arm/unwind-arm.h: Likewise.
3833         * config/microblaze/microblaze.c: Likewise.
3834         * config/sh/constraints.md: s/in in/in/
3835         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3836
3837 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
3838
3839         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3840         (AVX_FLOAT_MODE_P): Ditto.
3841         (AVX128_VEC_FLOAT_MODE_P): Ditto.
3842         (AVX256_VEC_FLOAT_MODE_P): Ditto.
3843         (AVX_VEC_FLOAT_MODE_P): Ditto.
3844         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3845         (UNSPEC_MASKSTORE): Ditto.
3846         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3847         Merge from <sse>_movmsk<ssemodesuffix> and
3848         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
3849         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
3850         iterator.
3851         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3852         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3853         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3854
3855 2011-04-18  Jan Hubicka  <jh@suse.cz>
3856
3857         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3858
3859         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3860         (want_inline_function_called_once_p): Break out the logic from
3861         ipa_inline.
3862         (edge_badness): Ensure that profile is not misupdated.
3863         (lookup_recursive_calls): Prioritize by call frequencies.
3864         (inline_small_functions): Move program size estimates here;
3865         actually process whole queue even when unit growth has been
3866         met. (to properly compute inline_failed reasons and for the
3867         case unit size decrease.) Revisit comments on recursive inlining.
3868         (ipa_inline): Remove unit summary code; first inline hot calls
3869         of functions called once, cold calls next.
3870         (order, nnodes): Remove unused variables.
3871         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3872         (GTFILES): Remove ipa-inline.c
3873         * sel-sched.c (fill_insns): Silence uninitialized var warning.
3874
3875 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3876
3877         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3878
3879 2011-04-18  Jie Zhang  <jie@codesourcery.com>
3880             Richard Earnshaw  <rearnsha@arm.com>
3881
3882         * arm.c (neon_builtin_type_bits): Remove.
3883         (typedef enum neon_builtin_mode): New.
3884         (T_MAX): Don't define.
3885         (typedef enum neon_builtin_datum): Remove bits, codes[],
3886         num_vars and base_fcode.  Add mode, code and fcode.
3887         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3888         VAR10): Change accordingly.
3889         (neon_builtin_data[]): Change accordingly
3890         (arm_init_neon_builtins): Change accordingly.
3891         (neon_builtin_compare): Remove.
3892         (locate_neon_builtin_icode): Remove.
3893         (arm_expand_neon_builtin): Change accordingly.
3894
3895         * arm.h (enum arm_builtins): Move to ...
3896         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3897
3898         * arm.c (arm_builtin_decl): Declare.
3899         (TARGET_BUILTIN_DECL): Define.
3900         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3901         (arm_builtin_decls[]): New.
3902         (arm_init_neon_builtins): Store builtin declarations in
3903         arm_builtin_decls[].
3904         (arm_init_tls_builtins): Likewise.
3905         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
3906         (arm_builtin_decl): New.
3907
3908 2011-04-18  Richard Guenther  <rguenther@suse.de>
3909
3910         * tree.c (upper_bound_in_type): Build properly canonicalized
3911         INTEGER_CSTs.
3912         (lower_bound_in_type): Likewise.
3913
3914 2011-04-18  Richard Guenther  <rguenther@suse.de>
3915
3916         * gimple.h (gimple_call_addr_fndecl): New function.
3917         (gimple_call_fndecl): Use it.
3918         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3919         for direct calls.
3920         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3921         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3922
3923 2011-04-18  Richard Guenther  <rguenther@suse.de>
3924
3925         PR middle-end/48650
3926         * tree.c (build_string): STRING_CST is now derived from tree_typed.
3927
3928 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3929
3930         PR lto/48492
3931         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3932         DECL_IN_CONSTANT_POOL without RTL.
3933
3934 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
3935             Ira Rosen  <ira.rosen@linaro.org>
3936
3937         PR target/48252
3938         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
3939         to match neon_vzip/vuzp/vtrn_internal.
3940         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
3941         outputs explicitly dependent on both inputs.
3942         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
3943
3944 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3945
3946         PR tree-optimization/48616
3947         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
3948         whether the shift is by scalar or vector based on whether all SLP
3949         scalar stmts have the same rhs.
3950
3951 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
3952
3953         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
3954         memory operands.
3955
3956 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
3957
3958         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
3959         registers.
3960
3961 2011-04-17  Jan Hubicka  <jh@suse.cz>
3962
3963         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
3964         * cgrpahunit.c (cgraph_finalize_function): Do not set
3965         finalized_by_frontend.
3966         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3967         finalized_by_frontend.
3968
3969 2011-04-17  Jan Hubicka  <jh@suse.cz>
3970
3971         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
3972         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
3973         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
3974         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
3975         method.
3976         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
3977         gimple-fold.c
3978         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
3979
3980 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3981
3982         PR lto/48538
3983         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
3984         is non-null before accessing it.
3985         (input_cgraph): Remove trailing spaces.
3986
3987 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3988
3989         * params.def (sms-min-sc): New param flag.
3990         * modulo-sched.c (sms_schedule): Use it.
3991         * doc/invoke.texi (sms-min-sc): Document it.
3992
3993 2011-04-17  Jan Hubicka  <jh@suse.cz>
3994
3995         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
3996         present, also set gimple_call_set_cannot_inline.
3997         * ipa-inline.c: Update toplevel comment.
3998         (MAX_TIME): Remove.
3999         (cgraph_clone_inlined_nodes): Fix linebreaks.
4000         (cgraph_check_inline_limits): Restructure to ...
4001         (caller_growth_limits): ... this one; be more tolerant
4002         on growth in nested inline chains; add explanatory comment;
4003         fix stack accounting thinko introduced by previous patch.
4004         (cgraph_default_inline_p): Remove.
4005         (report_inline_failed_reason): New function.
4006         (can_inline_edge_p): New function.
4007         (can_early_inline_edge_p): New function.
4008         (leaf_node_p): Move upwards in file.
4009         (want_early_inline_function_p): New function.
4010         (want_inline_small_function_p): New function.
4011         (want_inline_self_recursive_call_p): New function.
4012         (cgraph_edge_badness): Rename to ...
4013         (edge_badness) ... this one; fix linebreaks.
4014         (update_edge_key): Update call of edge_baddness; add
4015         detailed dump about queue updates.
4016         (update_caller_keys): Use can_inline_edge_p and
4017         want_inline_small_function_p.
4018         (cgraph_decide_recursive_inlining): Rename to...
4019         (recursive_inlining): Use can_inline_edge_p and
4020         want_inline_self_recursive_call_p; simplify and remove no longer
4021         valid FIXME.
4022         (cgraph_set_inline_failed): Remove.
4023         (add_new_edges_to_heap): Use can_inline_edge_p and
4024         want_inline_small_function_p.
4025         (cgraph_decide_inlining_of_small_functions): Rename to ...
4026         (inline_small_functions): ... this one; cleanup; use
4027         can/want predicates; cleanup debug ouput; work edges till fibheap
4028         is exhausted and do not stop once unit growth is reached; remove
4029         later loop processing remaining edges.
4030         (cgraph_flatten): Rename to ...
4031         (flatten_function): ... this one; use can_inline_edge_p
4032         and can_early_inline_edge_p predicates.
4033         (cgraph_decide_inlining): Rename to ...
4034         (ipa_inline): ... this one; remove unreachable nodes before
4035         inlining functions called once; simplify the pass.
4036         (cgraph_perform_always_inlining): Rename to ...
4037         (inline_always_inline_functions): ... this one; use
4038         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4039         (cgraph_decide_inlining_incrementally): Rename to ...
4040         (early_inline_small_functions): ... this one; simplify
4041         using new predicates; cleanup; make dumps prettier.
4042         (cgraph_early_inlining): Rename to ...
4043         (early_inliner): newer inline regular functions into always-inlines;
4044         fix updating of call stmt summaries.
4045         (pass_early_inline): Update for new names.
4046         (inline_transform): Fix formating.
4047         (gate_cgraph_decide_inlining): Rename to ...
4048         (pass_ipa_inline): ... this one.
4049         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4050         * ipa-inline-analysis.c (dump_inline_summary): Update.
4051         (compute_inline_parameters): Do not compute disregard_inline_limits;
4052         look for mismatching arguments.
4053         (estimate_growth): Fix handlig of non-trivial self recursion.
4054         (inline_read_summary): Do not read info->disregard_inline_limits.
4055         (inline_write_summary): Do not write info->disregard_inline_limits.
4056         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4057         and move all checks into can_inline_edge_p predicate; re-enable code
4058         comparing optimization levels.
4059         (expand_call_inline): Do not test inline_forbidden_into_p.
4060         * Makefile.in (ipa-inline.o): Update arguments.
4061
4062 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4063
4064         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4065
4066 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4067
4068         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4069
4070 2011-04-17  Michael Matz  <matz@suse.de>
4071
4072         PR tree-optimization/48622
4073         PR lto/48645
4074         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4075         in same order as they're written.
4076
4077 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4078
4079         * config/pa/predicates.md: Reorganize and simplify predicates.
4080         Eliminate duplicate code checks.
4081         (arith_operand): Rename to arith14_operand
4082         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4083         * config/pa/pa.md: Use renamed operands.
4084         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4085         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4086         arith11_operand, adddi3_operand, indexed_memory_operand,
4087         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4088         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4089         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4090         move_dest_operand, move_src_operand, prefetch_cc_operand,
4091         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4092         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4093         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4094         div_operand, int5_operand, movb_comparison_operator,
4095         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4096         arith_double_operand, ireg_operand, lhs_lshift_operand,
4097         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4098         integer_store_memory_operand): Likewise.
4099         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4100         (integer_store_memory_operand, read_only_operand,
4101         function_label_operand, borx_reg_operand,
4102         non_hard_reg_operand): Likewise.
4103         (eq_neq_comparison_operator): Delete unused operator.
4104         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4105         function_label_operand.
4106         (emit_move_sequence): Likewise.
4107
4108 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4109
4110         * config/i386/sse.md (sseunpackmode): New mode attribute.
4111         (ssepackmode): Ditto.
4112         (vec_pack_trunc_<mode>): Macroize expander from
4113         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4114         (vec_unpacks_lo_<mode>): Macroize expander from
4115         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4116         (vec_unpacks_hi_<mode>): Macroize expander from
4117         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4118         (vec_unpacku_lo_<mode>): Macroize expander from
4119         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4120         (vec_unpacku_hi_<mode>): Macroize expander from
4121         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4122         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4123         ix86_expand_sse4_unpack.
4124         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4125
4126 2011-04-16  Jan Hubicka  <jh@suse.cz>
4127
4128         * cgraphbuild.c: Include ipa-inline.h.
4129         (reset_inline_failed): Use initialize_inline_failed.
4130         * cgraph.c: Include ipa-inline.h.
4131         (cgraph_create_node_1): Do not initialize estimated_growth.
4132         (initialize_inline_failed): More to ipa-inline-analysis.c
4133         (dump_cgraph_node): Do not dump inline flags.
4134         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4135         and disregard_inline_limits flags.
4136         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4137         time, size, estimated_growth.
4138         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4139         Update.
4140         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4141         DECL_DISREGARD_INLINE_LIMITS.
4142         (cgraph_analyze_function): Do not initialize
4143         node->local.disregard_inline_limits.
4144         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4145         inlinable, versionable and disregard_inline_limits.
4146         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4147         cgraph_check_inline_limits, cgraph_default_inline_p,
4148         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4149         add_new_edges_to_heap): Update.
4150         (cgraph_decide_inlining_of_small_function): Update; set
4151         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4152         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4153         cgraph_decide_inlining_incrementally): Update.
4154         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4155         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4156         time, size and estimated_growth parameters.
4157         (estimate_edge_growth): Update.
4158         (initialize_inline_failed): Declare.
4159         * ipa-split.c: Include ipa-inline.h
4160         (execute_split_functions): Update.
4161         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4162         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4163         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4164         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4165         estimated_growth to INT_MIN.
4166         (inline_node_duplication_hook): Likewise.
4167         (dump_inline_summary): Dump new fields.
4168         (compute_inline_parameters): Update.
4169         (estimate_edge_time, estimate_time_after_inlining,
4170         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4171         inline_write_summary):
4172         (initialize_inline_failed): Move here from cgraph.c.
4173         * tree-sra.c: Include ipa-inline.h.
4174         (ipa_sra_preliminary_function_checks): Update.
4175         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4176         ipa-inline.h.
4177
4178 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4179
4180         * config/i386/sse.md (V16): New mode iterator.
4181         (VI1, VI8): Ditto.
4182         (AVXMODEQI, AVXMODEDI): Remove.
4183         (sse2, sse3): New mode attribute.
4184         (mov<mode>): Use V16 mode iterator.
4185         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4186         (push<mode>1): Use V16 mode iterator.
4187         (movmisalign<mode>): Ditto.
4188         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4189         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4190         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4191         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4192         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4193         avx_movdqu<avxmodesuffix>.
4194         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4195         *avx_movdqu<avxmodesuffix>.
4196         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4197         avx_lddqu<avxmodesuffix>.
4198         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4199         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4200         avx_movnt<AVXMODEDI:mode>.
4201         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4202         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4203
4204 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4205
4206         PR target/48629
4207         * haifa-sched.c (prune_ready_list, schedule_block): Use
4208         sched_pressure_p rather than flag_sched_pressure.
4209
4210 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4211
4212         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4213         cgraph_get_node instead of cgraph_get_create_node.
4214
4215 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4216
4217         * cfgexpand.c (expand_debug_expr): Use
4218         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4219
4220 2011-04-15  Michael Matz  <matz@suse.de>
4221
4222         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4223         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4224         * function.c (gimplify_parameters): Ditto.
4225         * gimplify.c (gimplify_vla_decl): Ditto.
4226
4227         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4228         (gimple_call_set_alloca_for_var): New inline function.
4229         (gimple_call_alloca_for_var_p): Ditto.
4230         * gimple.c (gimple_build_call_from_tree): Remember
4231         CALL_ALLOCA_FOR_VAR_P state.
4232         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4233
4234         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4235         calls if they were for VLA objects.
4236
4237 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4238
4239         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4240         of ADR_EXPRs.
4241
4242 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4243
4244         PR middle-end/48601
4245         * tree-emutls.c (lower_emutls_function_body): Call
4246         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4247         result is non-NULL.
4248
4249 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4250
4251         * c-decl.c (detect_field_duplicates): Call
4252         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4253
4254 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4255
4256         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4257         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4258         * ipa-pure-const.c (check_stmt): Call it.
4259         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4260
4261 2011-04-15  Richard Guenther  <rguenther@suse.de>
4262
4263         PR tree-optimization/48290
4264         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4265         Properly decide inhibiting propagation based on the valueized
4266         operand.  Do loop-closed SSA form preserving here ...
4267         (init_copy_prop): ... not here.
4268
4269 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4270
4271         PR target/48612
4272         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4273         (*ieee_smax<mode>3): Likewise.
4274
4275 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4276
4277         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4278         Replace match_operand with match_dup for the third operand in
4279         these expanders.
4280
4281 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4282
4283         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4284         to track processing of conditionals.  Update all callers.
4285         (try_combine, simplify_if_then_else): Update.
4286
4287 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4288
4289         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4290         -fsched-pressure.
4291
4292 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4293
4294         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4295         instead of match_operand for operand 3.
4296
4297 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4298
4299         * recog.h (insn_operand_data): Add an "allows_mem" field.
4300         * genoutput.c (output_operand_data): Initialize it.
4301         * optabs.c (maybe_legitimize_operand_same_code): New function.
4302         (maybe_legitimize_operand): Use it when matching the original
4303         op->value.
4304
4305 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4306
4307         * gimplify.c: Fix issues in comments throughout.
4308         (voidify_wrapper_expr): Fix long line.
4309         (build_stack_save_restore): Likewise.
4310         (gimplify_loop_expr): Likewise.
4311         (gimplify_compound_lval): Likewise.
4312         (gimplify_init_ctor_eval): Likewise.
4313         (gimplify_modify_expr_rhs): Likewise.
4314         (omp_notice_threadprivate_variable): Likewise.
4315
4316 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4317
4318         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4319         original one if this is not a builtin function.
4320
4321 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4322
4323         PR target/48605
4324         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4325         offset it as needed based on top 2 bits in operands[3], change
4326         MEM mode to SFmode and mask those 2 bits away from operands[3].
4327
4328 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4329
4330         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4331         change from objc_declare_protocols() to objc_declare_protocol().
4332
4333 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4334
4335         * config/i386/sse.md (sse4_1): New mode attribute.
4336         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4337         avx_blend<ssemodesuffix><avxmodesuffix> and
4338         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4339         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4340         avx_blendv<ssemodesuffix><avxmodesuffix> and
4341         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4342         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4343         avx_dp<ssemodesuffix><avxmodesuffix> and
4344         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4345         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4346         (sse4_1_packusdw): Merge with *avx_packusdw.
4347         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4348         (sse4_1_pblendw): Merge with *avx_pblendw.
4349         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4350         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4351         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4352         VF mode iterator.
4353         (sse4_1_round<ssescalarmodesuffix>): Merge with
4354         *avx_round<ssescalarmodesuffix>.
4355         (aesenc): Merge with *avx_aesenc.
4356         (aesenclast): Merge with *avx_aesenclast.
4357         (aesdec): Merge with *avx_aesdec.
4358         (aesdeclast): Merge with *avx_aesdeclast.
4359         (pclmulqdq): Merge with *pclmulqdq.
4360         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4361         New predicate.
4362         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4363
4364 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4365
4366         PR middle-end/48608
4367         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4368         (align_local_variable): This.  Update DECL_ALIGN.
4369         (add_stack_var): Updated.
4370         (expand_one_stack_var): Likewise.
4371
4372 2011-04-14  Richard Guenther  <rguenther@suse.de>
4373
4374         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4375         Remove.
4376         (dse_initialize_block_local_data, dse_leave_block,
4377         record_voperand_set, get_stmt_uid): Likewise.
4378         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4379         (dse_optimize_stmt): Remove voperand set handling code.
4380         Simplify and improve to handle any kind of killing stmt.
4381         (dse_record_phi): Remove.
4382         (dse_enter_block): Simplify.
4383         (tree_ssa_dse): Likewise.
4384         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4385
4386 2011-04-14  Jan Hubicka  <jh@suse.cz>
4387
4388         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4389         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4390         (cgraph_local_info): Remove inline_summary.
4391         * ipa-cp.c: Include ipa-inline.h.
4392         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4393         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4394         accesor.
4395         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4396         (input_overwrite_node): Do not set inline summary.
4397         (input_node): Do not stream inline summary.
4398         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4399         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4400         growth; we do not have inline parameters computed for that anyway.
4401         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4402         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4403         (inline_summary_t): New type and VECtor.
4404         (debug_inline_summary, dump_inline_summaries): Declare.
4405         (inline_summary): Use VOCtor.
4406         (estimate_edge_growth): Kill hack computing call stmt size directly.
4407         * lto-section-in.c (lto_section_name): Add inline section.
4408         * ipa-inline-analysis.c: Include lto-streamer.h
4409         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4410         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4411         (inline_summary_vec): Define.
4412         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4413         dump_inline_summaries): New functions.
4414         (estimate_function_body_sizes): Properly compute size/time of outgoing
4415         calls.
4416         (compute_inline_parameters): Alloc inline_summary; do not compute
4417         size/time of incomming calls.
4418         (estimate_edge_time): Avoid missing time summary hack.
4419         (inline_read_summary): Read inline summary info.
4420         (inline_write_summary): Write inline summary info.
4421         (inline_free_summary): Free all hooks and inline summary vector.
4422         * lto-streamer.h: Add LTO_section_inline_summary section.
4423         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4424         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4425
4426 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4427
4428         * tree-vectorizer.h (vect_strided_store_supported): Add a
4429         HOST_WIDE_INT argument.
4430         (vect_strided_load_supported): Likewise.
4431         (vect_permute_store_chain): Return void.
4432         (vect_transform_strided_load): Likewise.
4433         (vect_permute_load_chain): Delete.
4434         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4435         count argument.  Check that the count is a power of two.
4436         (vect_strided_load_supported): Likewise.
4437         (vect_permute_store_chain): Return void.  Update after above changes.
4438         Assert that the access is supported.
4439         (vect_permute_load_chain): Likewise.
4440         (vect_transform_strided_load): Return void.
4441         * tree-vect-stmts.c (vectorizable_store): Update calls after
4442         above interface changes.
4443         (vectorizable_load): Likewise.
4444         (vect_analyze_stmt): Don't check for strided powers of two here.
4445
4446 2011-04-14  Richard Guenther  <rguenther@suse.de>
4447
4448         PR tree-optimization/48590
4449         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4450         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4451         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4452         BUILT_IN_STACK_SAVE.
4453         * tree-ssa-dce.c (propagate_necessity): Handle
4454         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4455
4456 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4457
4458         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4459         objc_declare_class.
4460
4461 2011-04-14  Richard Guenther  <rguenther@suse.de>
4462
4463         * tree.h (get_object_alignment_1): Declare.
4464         * builtins.c (get_object_alignment_1): Split out worker from ...
4465         (get_object_alignment): ... here.
4466         * fold-const.c (get_pointer_modulus_and_residue): Use
4467         get_object_alignment_1.
4468
4469 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4470
4471         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4472         type parameter.
4473         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4474         parameter.  Generalise code to handle arrays as well as vectors.
4475         (vect_setup_realignment): Update accordingly.
4476         * tree-vect-stmts.c (vectorizable_store): Likewise.
4477         (vectorizable_load): Likewise.
4478
4479 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4480
4481         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4482         within the per-copy loop.
4483
4484 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4485
4486         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4487         in the dump file.
4488
4489 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4490
4491         * doc/options.texi (Negative): Explicitly mention that the
4492         Negative chain must be circular.
4493
4494 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4495
4496         * function.h (block_chainon): Declare.
4497         * function.c (block_chainon): Define.
4498
4499 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4500             Eric Weddington  <eric.weddington@atmel.com>
4501             Georg-Johann Lay  <avr@gjlay.de>
4502
4503         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4504         New Includes
4505         (avr_init_builtins, avr_expand_builtin,
4506         avr_expand_delay_cycles, avr_expand_unop_builtin,
4507         avr_expand_binop_builtin ): New functions.
4508         (avr_builtin_id): New enum
4509         (struct avr_builtin_description): New struct
4510         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4511         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4512
4513         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4514         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4515         UNSPECV_DELAY_CYCLES): new enumeration values
4516         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4517         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4518         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4519         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4520         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4521         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4522         "fmulsu"): New insns
4523
4524         * config/avr/avr-c.c: fix line endings
4525         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4526         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4527         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4528         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4529         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4530
4531         * doc/extend.texi (AVR Built-in Functions): New node
4532         (Target Builtins): Add documentation of AVR
4533         built-in functions.
4534
4535 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4536
4537         PR target/44643
4538         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4539         alone. Error if non-const data has attribute progmem.
4540
4541 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4542
4543         * tree.h (struct tree_constructor): Include tree_typed instead of
4544         tree_common.
4545         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4546         TS_TYPED instead of TS_COMMON.
4547
4548 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4549
4550         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4551         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4552         (sse2_psadbw): Merge with *avx_psadbw.
4553         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4554         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4555         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4556         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4557         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4558         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4559         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4560         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4561         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4562         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4563         (ssse3_palignrti): Merge with *avx_palignrti.
4564
4565 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4566
4567         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4568         * tree-ssanames.c (fini_ssanames): VEC_free it.
4569         (make_ssa_name_fn): Update for VECness of free_ssanames.
4570         (release_ssa_name, release_dead_ssa_names): Likewise.
4571         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4572         tree_common.
4573         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4574         TS_TYPED instead of TS_COMMON.
4575
4576 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4577
4578         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4579         statistics_counter_event.
4580         * tree-ssa-copyrename.c (stats): Define.
4581         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4582         statistics_counter_event.
4583         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4584         (bswap_stats, widen_mul_stats): Define.
4585         (insert_reciprocals): Increment rdivs_inserted.
4586         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4587         rfuncs_inserted.  Add calls to statistics_counter_event.
4588         (execute_cse_sincos_1): Increment inserted.
4589         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4590         statistics_counter_event.
4591         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4592         of bswap_stats.  Add calls to statistics_counter_event.
4593         (convert_mult_to_widen): Increment widen_mults_inserted.
4594         (convert_plusminus_to_widen): Increment maccs_inserted.
4595         (convert_mult_to_fma): Increment fmas_inserted.
4596         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4597         calls to statistics_counter_event.
4598
4599 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4600
4601         PR rtl-optimization/48455
4602         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4603         `temp_costs->mem_cost'.
4604
4605 2011-04-13  Jan Hubicka  <jh@suse.cz>
4606
4607         * ipa-inline.h: New file.
4608         * ipa-inline-analysis.c: New file. Broken out of ...
4609         * ipa-inline.c: ... this file; update toplevel comment;
4610         include ipa-inline.h
4611         (inline_summary): Move to ipa-inline.h
4612         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4613         ipa-inline-analysis.c.
4614         (cgraph_estimate_time_after_inlining): Rename to
4615         estiamte_time_after_inlining; move to ipa-inline-analysis.c
4616         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4617         to estimate_edge_growth.
4618         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4619         rename to estimate_size_after_inlining.
4620         (cgraph_mark_inline_edge): Update for new naming convention.
4621         (cgraph_check_inline_limits): Likewise.
4622         (cgraph_edge_badness): Likewise.
4623         (cgraph_decide_recursive_inlining): Likewise.
4624         (cgraph_decide_inlining_of_small_functions): Likewise.
4625         (cgraph_decide_inlining_incrementally): Likewise.
4626         (cgraph_estimate_growth): Rename to estimate_growth; move to
4627         ipa-inline-analysis.c.
4628         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4629         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4630         (compute_inline_parameters): Likewise.
4631         (compute_inline_parameters_for_current): Likewise.
4632         (pass_inline_parameters): Likewise.
4633         (inline_indirect_intraprocedural_analysis): Likewise.
4634         (analyze_function): Rename to inline_analyze_function; likewise.
4635         (add_new_function): Move to ipa-inline-analysis.c.
4636         (inline_generate_summary): Likewise.
4637         (inline_read_summary): Likewise.
4638         (inline_write_summary): Likewise.
4639         * Makefile.in (ipa-inline-analysis.c): New file.
4640
4641 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4642
4643         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4644         * configure: Regenerate.
4645
4646 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4647
4648         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4649         instead of tree_common.
4650         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4651         Likewise.
4652         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4653         TS_TYPED rather than TS_COMMON.
4654         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4655
4656 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
4657
4658         PR target/45263
4659         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4660         r20 around calls of __tablejump_elpm__
4661
4662 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
4663
4664         PR middle-end/48591
4665         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4666         NULL.
4667         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4668
4669 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
4670
4671         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4672         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4673         (cfi_vec): New typedef.
4674         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4675         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4676         (cie_cfi_vec): New static variable.
4677         (cie_cfi_head): Delete.
4678         (add_cfi): Accept a cfi_vec * as first argument. All callers and
4679         declaration changed. Use vector rather than list operations.
4680         (new_cfi): Don't initialize the dw_cfi_next field.
4681         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4682         rather than list operations.
4683         (lookup_cfa): Use vector rather than list operations.
4684         (output_cfis): New argument upto. Accept a cfi_vec rather than
4685         a dw_cfi_ref list head as argument. All callers changed.
4686         Iterate over the vector using upto as a maximum index.
4687         (output_all_cfis): New static function.
4688         (output_fde): Use vector rather than list operations. Use the
4689         new upto argument for output_cfis rather than manipulating a
4690         list.
4691         (dwarf2out_begin_prologue): Change initializations to match
4692         new struct members.
4693         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4694         from the vector length rather than searching for the end of a list.
4695         Use output_all_cfis.
4696         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4697
4698 2011-04-13  Nick Clifton  <nickc@redhat.com>
4699
4700         * config/rx/rx.md (movmemsi): Do not use this pattern when
4701         volatile pointers are involved.
4702
4703 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4704
4705         * config/i386/sse.md (pinsrbits): Remove.
4706         (sse2_packsswb): Merge with *avx_packsswb.
4707         (sse2_packssdw): Merge with *avx_packssdw.
4708         (sse2_packuswb): Merge with *avx_packuswb.
4709         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4710         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4711         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4712         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4713         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4714         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4715         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4716         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4717         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4718         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4719         (sse2_loadld): Merge with *avx_loadld.
4720         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4721         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4722         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4723         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4724         (vec_concatv2di): Merge with *vec_concatv2di_avx.
4725
4726 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
4727
4728         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4729         calling TREE_CHAIN.
4730         * print-tree.c (print_node): Likewise.
4731         * tree-inline.c (copy_tree_r): Likewise.
4732         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4733         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4734         instead of TS_COMMON.
4735         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4736         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4737         (copy_node_stat): Zero TREE_CHAIN only if necessary.
4738         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4739         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4740         ...and these...
4741         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4742         * tree.h: ...here.
4743         (TREE_CHAIN): Check for a TS_COMMON structure.
4744         (TREE_TYPE): Check for a TS_TYPED structure.
4745
4746 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
4747
4748         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4749         cgraph_get_create_node instead of cgraph_node.
4750
4751 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4752
4753         * c-parser.c (c_parser_initelt): Updated call to
4754         objc_build_message_expr.
4755         (c_parser_postfix_expression): Likewise.
4756
4757 2011-04-12  Kai Tietz  <ktietz@redhat.com>
4758
4759         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4760         MASK_MS_BITFIELD_LAYOUT bit.
4761
4762 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4763
4764         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4765         assert it is always true.
4766         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4767         moves.
4768
4769 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4770
4771         * c-parser.c (c_lex_one_token): Rewritten conditional used when
4772         compiling Objective-C to be more efficient.
4773
4774 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
4775
4776         * opts-common.c (decode_cmdline_options_to_array): Remove variable
4777         argv_copied.
4778
4779 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4780
4781         * recog.h, genoutput.c, optabs.c: Revert last patch.
4782
4783 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4784
4785         PR target/48090
4786         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
4787
4788 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4789
4790         * recog.h (insn_operand_data): Add an "allows_mem" field.
4791         * genoutput.c (output_operand_data): Initialize it.
4792         * optabs.c (maybe_legitimize_operand_same_code): New function.
4793         (maybe_legitimize_operand): Use it when matching the original
4794         op->value.
4795
4796 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4797
4798         * genpreds.c (process_define_predicate): Move most processing
4799         to gensupport.c.  Continue to validate the expression.
4800         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4801         (process_define_predicate): Move processing to gensupport.c.
4802         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4803         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4804         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
4805         argument.
4806         (valid_predicate_name_p): New function, split out from old
4807         genpreds.c:process_define_predicate.
4808         (process_define_predicate): New function, combining code from
4809         old genpreds.c and genrecog.c functions.
4810         (process_rtx): Call it for DEFINE_PREDICATE and
4811         DEFINE_SPECIAL_PREDICATE.
4812
4813 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4814
4815         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4816         size of a '%A' memory reference.
4817         (T_DREG, T_QREG): New neon_builtin_type_bits.
4818         (arm_init_neon_builtins): Assert that the load and store operands
4819         are neon_struct_operands.
4820         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4821         (NEON_ARG_MEMORY): New builtin_arg.
4822         (neon_dereference_pointer): New function.
4823         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4824         Handle NEON_ARG_MEMORY.
4825         (arm_expand_neon_builtin): Update after above interface changes.
4826         Use NEON_ARG_MEMORY for loads and stores.
4827         * config/arm/predicates.md (neon_struct_operand): New predicate.
4828         * config/arm/iterators.md (V_two_elem): Tweak formatting.
4829         (V_three_elem): Use BLKmode for accesses that have no associated mode.
4830         (V_four_elem): Tweak formatting.
4831         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4832         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4833         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4834         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4835         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4836         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4837         (neon_vst4<mode>): Replace pointer operand with a memory operand.
4838         Use %A in the output template.
4839         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4840         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4841         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4842         the width of the memory access.  Remove post-increment.
4843         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4844
4845 2011-04-12  Nick Clifton  <nickc@redhat.com>
4846
4847         * config/v850/v850.c (expand_prologue): Do not use the CALLT
4848         instruction for interrupt handlers if the target is the basic V850
4849         architecture.
4850         (expand_epilogue): Likewise.
4851
4852 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4853
4854         PR rtl-optimization/48549
4855         * combine.c (propagate_for_debug): Also stop after BB_END of
4856         this_basic_block.  Process LAST and just stop processing after it.
4857         (combine_instructions): If last_combined_insn has been deleted,
4858         set last_combined_insn to its PREV_INSN.
4859
4860 2011-04-12  Richard Guenther  <rguenther@suse.de>
4861
4862         PR tree-optimization/46076
4863         * gimple.h (struct gimple_statement_call): Add fntype field.
4864         (gimple_call_fntype): Adjust.
4865         (gimple_call_set_fntype): New function.
4866         * gimple.c (gimple_build_call_1): Set the call function type.
4867         * gimplify.c (gimplify_call_expr): Preserve the function
4868         type the frontend used for the call.
4869         (gimplify_modify_expr): Likewise.
4870         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4871         function type.
4872         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4873         function type.
4874         * tree-ssa.c (useless_type_conversion_p): Function pointer
4875         conversions are useless.
4876
4877 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4878
4879         * cgraph.h (cgraph_node): Remove function declaration.
4880         (cgraph_create_node): Declare.
4881         (cgraph_get_create_node): Likewise.
4882         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4883         Updated all callers.
4884         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4885         the decl does not already exist.  Call cgraph_get_create_node instead
4886         of cgraph_node.
4887         (cgraph_get_create_node): New function.
4888         (cgraph_same_body_alias): Update comment.
4889         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4890         assert it does not return NULL.
4891         (cgraph_update_edges_for_call_stmt): Likewise.
4892         (cgraph_clone_edge): Likewise.
4893         (cgraph_create_virtual_clone): Likewise.
4894         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4895         instead of cgraph_node.
4896         (cgraph_add_new_function): Call cgraph_create_node or
4897         cgraph_get_create_node instead of cgraph_node.
4898         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4899         instead of cgraph_node.
4900         (record_eh_tables): Likewise.
4901         (mark_address): Likewise.
4902         (mark_load): Likewise.
4903         (build_cgraph_edges): Call cgraph_get_create_node instead
4904         of cgraph_node.
4905         (rebuild_cgraph_edges): Likewise.
4906         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4907         instead of cgraph_node.
4908         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4909         cgraph_node.
4910         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4911         cgraph_create_node instead of cgraph_node.
4912         * c-decl.c (finish_function): Call cgraph_get_create_node instead
4913         of cgraph_node.
4914         * lto-cgraph.c (input_node): Likewise.
4915         * lto-streamer-in.c (input_function): Likewise.
4916         * varasm.c (mark_decl_referenced): Likewise.
4917         (assemble_alias): Likewise.
4918
4919 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4920
4921         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4922         instead of cgraph_node and assert it does not return NULL.
4923         * lto-streamer-in.c (lto_read_body): Likewise.
4924         * omp-low.c (new_omp_context): Likewise.
4925         (create_task_copyfn): Likewise.
4926         * tree-emutls.c (lower_emutls_function_body): Likewise.
4927         * matrix-reorg.c (transform_allocation_sites): Likewise.
4928
4929 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4930
4931         PR c/48552
4932         * c-typeck.c (build_asm_expr): Error out on attempts to use
4933         void type outputs or inputs for constraints that allow reg or
4934         don't allow memory.
4935
4936 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
4937             Richard Earnshaw  <rearnsha@arm.com>
4938
4939         PR target/48250
4940         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
4941         to use sign-magnitude offsets. Reject unsupported unaligned
4942         cases. Add detailed description in comments.
4943         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
4944         condition from TARGET_32BIT to TARGET_ARM.
4945
4946 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
4947
4948         * tree.h (struct typed_tree): New.
4949         (struct tree_common): Include it instead of tree_base.
4950         (TREE_TYPE): Update for new location of type field.
4951         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
4952         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
4953         (union tree_node): Add typed field.
4954         * treestruct.def (TS_TYPED): New.
4955         * lto-streamer.c (check_handled_ts_structures): Handle it.
4956         * tree.c (MARK_TS_TYPED): New macro.
4957         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
4958
4959 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
4960
4961         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
4962         (force_nonfallthru): Do not alter the loop nest if no basic block
4963         was created.
4964
4965 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4966
4967         * config/i386/sse.md (VI): New mode iterator.
4968         (SSEMODEI): Remove.
4969         (AVX256MODEI): Ditto.
4970         (AVXMODEF4P): Ditto.
4971         (avxvecpsmode): Ditto.
4972         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
4973         (sse2_andnot<mode>3): New expander.
4974         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
4975         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
4976         (<any_logic:code><mode>3): Use VI mode iterator.
4977         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
4978         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
4979         (*andnottf3): Handle AVX three-operand constraints.
4980         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
4981
4982 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4983             Robert Millan  <rmh@gnu.org>
4984
4985         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
4986         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
4987         GNU_USER_DYNAMIC_LINKER64): Define.
4988         (REG_NAME): Don't undefine.
4989         (MD_UNWIND_SUPPORT): Undefine.
4990         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
4991         (REG_NAME): Don't undefine.
4992         (MD_UNWIND_SUPPORT): Undefine.
4993         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
4994
4995 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4996
4997         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
4998         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
4999
5000 2011-04-11  Xinliang David Li  <davidxl@google.com>
5001
5002         * value-profile.c (check_ic_target): New function.
5003         (gimple_ic_transform): Sanity check indirect call target.
5004         * gimple-low.c (gimple_check_call_args): Interface change.
5005         (gimple_check_call_matching_types): New function.
5006         * tree-inline.c (tree_can_inline_p): Call new function.
5007
5008 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5009
5010         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5011         tree-pretty-print.h & realmpfr.h.
5012
5013 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5014
5015         PR middle-end/48464
5016         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5017         (setup_allocno_and_important_classes): Ditto.
5018
5019 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5020
5021         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5022         GNU_USER_DYNAMIC_LINKER.
5023         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5024         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5025         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5026         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5027         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5028         GNU_USER_TARGET_OS_CPP_BUILTINS.
5029         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5030         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5031         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5032         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5033         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5034         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5035         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5036         GNU_USER_TARGET_OS_CPP_BUILTINS.
5037         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5038         GNU_USER_DYNAMIC_LINKER.
5039         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5040         GNU_USER_TARGET_OS_CPP_BUILTINS.
5041         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5042         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5043         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5044         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5045         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5046         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5047         GNU_USER_DYNAMIC_LINKER64): Remove.
5048         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5049         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5050         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5051         GNU_USER_DYNAMIC_LINKER.
5052         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5053         GNU_USER_TARGET_OS_CPP_BUILTINS.
5054         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5055         GNU_USER_TARGET_OS_CPP_BUILTINS.
5056         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5057         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5058         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5059         GNU_USER_TARGET_OS_CPP_BUILTINS.
5060         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5061         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5062         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5063         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5064         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5065         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5066         GNU_USER_DYNAMIC_LINKER.
5067         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5068         GNU_USER_TARGET_OS_CPP_BUILTINS.
5069         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5070         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5071         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5072         GNU_USER_DYNAMIC_LINKER.
5073         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5074         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5075         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5076         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5077         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5078         GNU_USER_DYNAMIC_LINKER.
5079         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5080         GNU_USER_DYNAMIC_LINKERN32.
5081         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5082         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5083         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5084         GNU_USER_DYNAMIC_LINKER32.
5085         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5086         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5087         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5088         GNU_USER_DYNAMIC_LINKER.
5089         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5090         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5091         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5092         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5093         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5094         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5095         GNU_USER_DYNAMIC_LINKER32.
5096         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5097         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5098         GNU_USER_DYNAMIC_LINKER.
5099         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5100         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5101         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5102         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5103         GNU_USER_DYNAMIC_LINKER64.
5104         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5105         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5106         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5107         GNU_USER_DYNAMIC_LINKER.
5108         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5109         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5110         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5111         GNU_USER_DYNAMIC_LINKER.
5112         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5113         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5114         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5115         GNU_USER_DYNAMIC_LINKER32.
5116         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5117         GNU_USER_DYNAMIC_LINKER64.
5118         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5119         GNU_USER_DYNAMIC_LINKER64.
5120         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5121         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5122         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5123         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5124         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5125
5126 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5127
5128         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5129         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5130         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5131         GNU_USER_DYNAMIC_LINKER.
5132         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5133         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5134         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5135         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5136         GNU_USER_DYNAMIC_LINKER64.
5137         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5138         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5139         GNU_USER_LINK_EMULATION.
5140         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5141         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5142         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5143         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5144         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5145         CPP_SPEC, CC1_SPEC): Remove.
5146         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5147         (GNU_USER_DYNAMIC_LINKER): Define.
5148         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5149         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5150         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5151         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5152         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5153         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5154         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5155         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5156         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5157         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5158         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5159         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5160         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5161         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5162         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5163         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5164         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5165         GNU_USER_DYNAMIC_LINKER.
5166         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5167         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5168         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5169         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5170         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5171         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5172         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5173         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5174         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5175         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5176
5177 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5178
5179         PR target/9601
5180         PR target/11772
5181         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5182         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5183         comment.
5184         (ix86_is_msabi_thiscall): Removed.
5185         (ix86_is_type_thiscall): Likewise.
5186         (ix86_get_callcvt): New function.
5187         (ix86_comp_type_attributes): Simplify check.
5188         (ix86_function_regparm): Use ix86_get_callcvt for calling
5189         convention attribute checks.
5190         (ix86_return_pops_args): Likewise.
5191         (ix86_static_chain): Likewise.
5192         (x86_this_parameter): Likewise.
5193         (x86_output_mi_thunk): Likewise.
5194         (ix86_function_type_abi): Optimize check for types without attributes.
5195         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5196         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5197         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5198         by flag-values.
5199         (IX86_BASE_CALLCVT): Helper macro.
5200         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5201         Use ix86_get_callcvt for calling convention attribute checks and avoid
5202         symbol-decoration for stdcall in TARGET_RTD case.
5203         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5204         Likewise.
5205         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5206         for declaration.
5207
5208 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5209
5210         * config/i386/sse.md (VI_128): New mode iterator.
5211         (VI12_128): Rename from SSEMODE12.
5212         (VI14_128): Rename from SSEMODE14.
5213         (VI124_128): New mode iterator.
5214         (VI24_128): Rename from SSEMODE248.
5215         (VI248_128): Rename from SSEMODE248.
5216         (SSEMODE124C8): Remove.
5217         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5218         (*sse2_<plusminus_insn><mode>3): Merge with
5219         *avx_<plusminus_insn><mode>3.
5220         (*mulv8hi3): Merge with *avx_mulv8hi3.
5221         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5222         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5223         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5224         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5225         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5226         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5227         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5228         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5229         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5230         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5231         (*<smaxmin:code>v8hi3): Ditto.
5232         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5233         (*<smaxmin:code>v16qi3): Ditto.
5234         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5235         (*sse2_eq<mode>3): Ditto.
5236         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5237         (*sse2_gt<mode>3): Ditto.
5238         (vcondv2di): Split out of vcond<mode>.
5239         (vconduv2di): Split out of vcondu<mode>.
5240
5241 2011-04-11  Richard Guenther  <rguenther@suse.de>
5242
5243         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5244         before calling tree_low_cst.
5245
5246 2011-04-11  Richard Guenther  <rguenther@suse.de>
5247
5248         * stor-layout.c (layout_type): Compute all array index size operations
5249         in the original type.
5250         (initialize_sizetypes): Add comment.
5251         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5252
5253 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5254
5255         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5256
5257 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5258
5259         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5260         of cgraph_node, handle NULL return value.
5261         (cgraph_global_info): Likewise.
5262         (cgraph_rtl_info): Likewise.
5263         * tree-inline.c (estimate_num_insns): Likewise.
5264         * gimplify.c (unshare_body): Likewise.
5265         (unvisit_body): Likewise.
5266         (gimplify_body): Likewise.
5267         * predict.c (optimize_function_for_size_p): Likewise.
5268         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5269         (call_may_clobber_ref_p_1): Likewise.
5270         * varasm.c (function_section_1): Likewise.
5271         (assemble_start_function): Likewise.
5272
5273 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5274
5275         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5276         of cgraph_node.
5277         * final.c (rest_of_clean_state): Likewise.
5278         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5279         * passes.c (pass_init_dump_file): Likewise.
5280         (execute_all_ipa_transforms): Likewise.
5281         (function_called_by_processed_nodes_p): Likewise.
5282         * predict.c (maybe_hot_frequency_p): Likewise.
5283         (probably_never_executed_bb_p): Likewise.
5284         (compute_function_frequency): Likewise.
5285         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5286         (unnest_nesting_tree_1): Likewise.
5287         (lower_nested_functions): Likewise.
5288         * tree-optimize.c (execute_fixup_cfg): Likewise.
5289         (tree_rest_of_compilation): Likewise.
5290         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5291         * tree-sra.c (ipa_early_sra): Likewise.
5292         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5293         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5294         * ipa.c (record_cdtor_fn): Likewise.
5295         * ipa-inline.c (cgraph_early_inlining): Likewise.
5296         (compute_inline_parameters_for_current): Likewise.
5297         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5298         * ipa-pure-const.c (local_pure_const): Likewise.
5299         * ipa-split.c (split_function): Likewise.
5300         (execute_split_functions): Likewise.
5301         * cgraphbuild.c (build_cgraph_edges): Likewise.
5302         (rebuild_cgraph_edges): Likewise.
5303         (cgraph_rebuild_references): Likewise.
5304         (remove_cgraph_callee_edges): Likewise.
5305         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5306         (verify_cgraph_node): Likewise.
5307         (cgraph_analyze_functions): Likewise.
5308         (cgraph_preserve_function_body_p): Likewise.
5309         (save_inline_function_body): Likewise.
5310         (save_inline_function_body): Likewise.
5311         * tree-inline.c (copy_bb): Likewise.
5312         (optimize_inline_calls): Likewise.
5313
5314 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5315
5316         PR tree-optimization/48195
5317         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5318         ipa_check_create_edge_args.
5319         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5320         ipa_check_create_edge_args.
5321         * ipa-inline.c (inline_generate_summary): Do not call
5322         ipa_check_create_node_params and ipa_check_create_edge_args.
5323         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5324         ipa_check_create_edge_args.
5325
5326 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5327
5328         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5329         instead of loop.
5330         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5331         * function.c (record_hard_reg_sets): Likewise.
5332         * ira.c (compute_regs_asm_clobbered): Likewise.
5333         * sched-deps.c (sched_analyze_1): Likewise.
5334         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5335
5336 2011-04-09  Xinliang David Li  <davidxl@google.com>
5337
5338         PR tree-optimization/PR48484
5339         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5340         has_valid_pred lazily
5341
5342 2011-04-09  Duncan Sands  <baldrick@free.fr>
5343
5344         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5345
5346 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5347
5348         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5349         cost of I0 to zero at the end, if any.
5350
5351 2011-04-08  Xinliang David Li  <davidxl@google.com>
5352
5353         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5354         to insane profile data.
5355
5356 2011-04-08  Xinliang David Li  <davidxl@google.com>
5357
5358         * ipa-cp.c (ipcp_update_profiling): Correct
5359          negative scale factor due to insane profile data.
5360
5361 2011-04-08  Xinliang David Li  <davidxl@google.com>
5362
5363         * final.c (dump_basic_block_info): New function.
5364         (final): Dump basic block.
5365         (final_scan_insn): Remove old dump.
5366
5367 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5368
5369         PR target/47829
5370         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5371         crtbegin/crtend.
5372
5373 2011-04-08  Michael Matz  <matz@suse.de>
5374
5375         PR middle-end/48389
5376         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5377         functions.
5378         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5379         * rtl.h (rebuild_jump_labels_chain): Declare.
5380         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5381         insns inserted on edges.
5382
5383 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5384
5385         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5386         * config/arm/arm-arches.def: New.
5387         * config/arm/arm-opts.h: New.
5388         * config/arm/genopt.sh: New.
5389         * config/arm/arm-tables.opt: New (generated).
5390         * config/arm/arm.c (arm_handle_option, arm_target_help,
5391         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5392         (all_architectures): Get most table contents from arm-arches.def.
5393         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5394         arm_selected_tune here.
5395         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5396         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5397         (march=, mcpu=, mtune=): Use Enum and Var.
5398         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5399         (arm.o): Update dependencies.
5400
5401 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5402
5403         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5404         of header_file.
5405         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5406         (write_typed_alloc_defns): Likewise.
5407         (main): Calls write_typed_alloc_defns with output_header.
5408
5409 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5410
5411         PR inline-asm/48435
5412         * ira-color.c (setup_profitable_hard_regs): Add comments.
5413         Don't take prohibited hard regs into account.
5414         (setup_conflict_profitable_regs): Rename to
5415         get_conflict_profitable_regs.
5416         (check_hard_reg_p): Check prohibited hard regs.
5417
5418 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5419
5420         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5421         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5422         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5423
5424 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5425
5426         PR target/48366
5427         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5428         move from floating point to shift amount register.
5429         (emit_move_sequence): Remove secondary reload support for floating
5430         point to shift amount amount register copies.
5431         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5432         amount register copies.
5433         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5434         register, return false if mode isn't a scalar integer mode.
5435         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5436
5437 2011-04-08  Richard Guenther  <rguenther@suse.de>
5438
5439         * gimple.c (gimple_call_flags): Remove kludge.
5440
5441 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5442
5443         * sel-sched.c (sel_region_init): Move call to
5444         sel_setup_region_sched_flags after setup_current_loop_nest.
5445
5446 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5447
5448         PR rtl-optimization/48272
5449         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5450         init_insn_reg_pressure_info.  Adjust a caller.
5451         * sched-int.h (init_insn_reg_pressure_info): Declare.
5452         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5453         when sched-pressure is enabled.
5454
5455 2011-04-08  Richard Guenther  <rguenther@suse.de>
5456
5457         * gimple.c (gimple_set_modified): Do not queue calls to
5458         MODIFIED_NORETURN_CALLS here ...
5459         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5460
5461 2011-04-08  Richard Guenther  <rguenther@suse.de>
5462
5463         PR lto/48467
5464         * toplev.c (lang_dependent_init): Do not open asm_out_file
5465         in WPA mode, nor perform debug machinery initialization.
5466         (finalize): Do not unlink asm_out_file in WPA mode.
5467
5468 2011-04-08  Richard Guenther  <rguenther@suse.de>
5469
5470         * gimple.h (gimple_call_fntype): New function.
5471         (gimple_call_return_type): Use it.
5472         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5473         * gimple-low.c (gimple_check_call_args): Likewise.
5474         * gimple.c (gimple_call_flags): Likewise.
5475         (gimple_call_arg_flags): Likewise.
5476         (gimple_call_return_flags): Likewise.
5477         * tree-cfg.c (verify_gimple_call): Likewise.
5478         (do_warn_unused_result): Likewise.
5479         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5480         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5481
5482 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5483
5484         PR rtl-optimization/48235
5485         * sel-sched.c (code_motion_process_successors): Recompute the last
5486         insn in basic block if control flow changed.
5487         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5488         Update condition for ilist_remove.
5489
5490 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5491
5492         PR rtl-optimization/48302
5493         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5494         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5495         it to record added preheader blocks.
5496         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5497         on to sel_add_loop_preheaders.
5498         (sel_region_init): Move call to setup_current_loop_nest after
5499         sel_init_bbs.
5500
5501 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5502
5503         PR target/48273
5504         * cfgloop.h (loop_has_exit_edges): New helper.
5505         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5506         non-clonable.
5507         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5508         that have no exit edges.
5509
5510 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5511
5512         PR rtl-optimization/48442
5513         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5514         all callers.  Adjust assert.
5515
5516 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5517
5518         PR tree-optimization/48377
5519         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5520         is_packed to true even for types with smaller TYPE_ALIGN than
5521         TYPE_SIZE.
5522
5523 2011-04-08  Richard Guenther  <rguenther@suse.de>
5524
5525         PR bootstrap/48513
5526         * doc/tm.texi: Re-generate.
5527
5528 2011-04-08  Wei Guozhi  <carrot@google.com>
5529
5530         PR target/47855
5531         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5532         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5533         * config/arm/arm.md (*push_multi): Change the length computation to
5534         call a C function.
5535
5536 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5537
5538         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5539         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5540         * doc/tm.texi: Regenerate.
5541         * system.h (ASM_OUTPUT_BSS): Poison.
5542         * varasm.c (asm_output_bss): Remove function.
5543         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5544
5545         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5546         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5547         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5548         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5549         Likewise.
5550         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5551         Likewise.
5552         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5553         Likewise.
5554         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5555
5556 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5557
5558         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5559         EnumValue lines.
5560
5561 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5562
5563         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5564         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5565         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5566         OPT_mcpu32.
5567         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5568         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5569         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5570         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5571         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5572         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5573         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5574         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5575         options.  Don't map other m68k options manually.  Don't handle
5576         old-style options as canonical.
5577         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5578         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5579
5580 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5581
5582         * basic-block.h (force_nonfallthru): Move to...
5583         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5584         (force_nonfallthru): ...here.
5585         * cfghooks.c (force_nonfallthru): New function.
5586         * cfgrtl.c (force_nonfallthru): Rename into...
5587         (rtl_force_nonfallthru): ...this.
5588         (commit_one_edge_insertion): Do not set AUX field.
5589         (commit_edge_insertions): Do not discover new basic blocks.
5590         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5591         (cfg_layout_rtl_cfg_hooks): Likewise.
5592         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5593         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5594         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5595
5596 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5597
5598         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5599         Remove macros.
5600
5601 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5602
5603         * config/i386/sse.md: Update copyright year.
5604         (avxcvtvecmode): Remove.
5605         (sse_movhlps): Merge with *avx_movhlps.
5606         (sse_movlhps): Merge with *avx_movlhps.
5607         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5608         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5609         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5610         (sse_loadhps): Merge with *avx_loadhps.
5611         (sse_storelps): Merge with *avx_storelps.
5612         (sse_loadlps): Merge with *avx_loadlps.
5613         (sse_movss): Merge with *avx_movss.
5614         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5615         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5616         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5617         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5618         (vec_set<mode>_0): Ditto.
5619         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5620         (sse4_1_insertps): Merge with *avx_insertps.
5621         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5622         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5623         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5624         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5625         (sse2_storehpd): Merge with *avx_storehpd.
5626         (sse2_loadhpd): Merge with *avx_loadhpd.
5627         (sse2_loadlpd): Merge with *avx_loadlpd.
5628         (sse2_movsd): Merge with *avx_movsd.
5629         (*vec_concatv2df): Merge with *vec_concatv2df.
5630
5631 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
5632
5633         PR debug/48343
5634         * combine.c (combine_instructions): Add last_combined_insn,
5635         update it if insn is after it, pass it to all try_combine calls.
5636         (try_combine): Add last_combined_insn parameter, pass it instead of
5637         i3 to propagate_for_debug.
5638
5639 2011-04-07  Nick Clifton  <nickc@redhat.com>
5640
5641         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5642         to handle MDR <-> data register transfers.
5643         (movhi_internal): Likewise.
5644
5645 2011-04-07  Alan Modra  <amodra@gmail.com>
5646
5647         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5648         previous stack info.
5649
5650 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5651
5652         PR target/43920
5653         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5654         flow_find_cross_jump.  Swap variables to implement backward replacement.
5655         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5656
5657 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5658
5659         PR target/43920
5660         * cfgcleanup.c (walk_to_nondebug_insn): New function.
5661         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
5662         and bb2.
5663         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5664         src1 or src2.  Redirect edges to the last basic block.  Update
5665         frequency and count on multiple basic blocks in case of fallthru.
5666
5667 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5668
5669         PR target/43920
5670         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5671         function.
5672         (old_insns_match_p): Change return type.  Replace return false/true
5673         with return dir_none/dir_both.  Use can_replace_by.
5674         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
5675         direction from dir_p.  Register replacement direction in dir, last_dir
5676         and afterlast_dir.  Handle new return type of old_insns_match_p using
5677         merge_dir.  Return replacement direction in dir_p.
5678         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5679         return type of old_insns_match_p.
5680         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5681         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5682         flow_find_cross_jump.
5683         * basic-block.h (enum replace_direction): New type.
5684         (flow_find_cross_jump): Add parameter to declaration.
5685
5686 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5687
5688         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5689         (AVXMODEDCVTPS2DQ): Ditto.
5690         (VEC_FLOAT_MODE): Ditto.
5691         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
5692         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5693         (<any_logic:code><mode>3): Use VF mode iterator.
5694         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5695         Use VF mode iterator.
5696         (copysign<mode>3): Use VF mode iterator.
5697         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
5698         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5699         (*<any_logic:code><MODEF:mode>3): Merge with
5700         *avx_<any_logic:code><MODEF:mode>3.
5701         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5702         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5703         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5704         (avx_cvtdq2ps<avxmodesuffix>): Remove.
5705         (sse2_cvtdq2ps): Use %v modifier.
5706         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5707         (avx_cvtps2dq<avxmodesuffix>): Remove.
5708         (sse2_cvtps2dq): Use %v modifier.
5709         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5710         (avx_cvttps2dq<avxmodesuffix>): Remove.
5711         (sse2_cvttps2dq): Use %v modifier.
5712         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5713         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5714         (sse2_cvtsd2siq): Fix insn template.
5715         (sse2_cvtsd2siq_2): Ditto.
5716         (sse2_cvttsd2siq): Ditto.
5717         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5718         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5719
5720 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5721
5722         * gcov-io.c: Use GCC Runtime Library Exception.
5723
5724 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
5725
5726         PR debug/48466
5727         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5728         as base_reg whatever register reg has been eliminated to, instead
5729         of hardcoding STACK_POINTER_REGNUM.
5730
5731 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5732
5733         * doc/tm.texi.in: Document C target hooks as separate from general
5734         target hooks.
5735         * doc/tm.texi: Regenerate.
5736         * genhooks.c (struct hook_desc): Add docname field.
5737         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
5738         docname field.
5739         (hook_array): Include c-target.def.
5740         (emit_documentation): Use docname field in output.
5741         (emit_init_macros): Take docname argument.  Only emit definitions
5742         for hooks matching docname.
5743         (main): Expect additional arguments in all cases.  Pass argument
5744         to emit_init_macros.
5745         * target.def: Move initial macro definitions and comments to
5746         target-hooks-macros.h.
5747         (gcc_targetcm): Move to c-family/c-target.def.
5748         * target.h (targetcm): Move declaration to c-family/c-target.h.
5749         * targhooks.c (default_handle_c_option): Move to
5750         c-family/c-opts.c.
5751         * targhooks.h (default_handle_c_option): Move declaration to
5752         c-family/c-common.h.
5753         * target-hooks-macros.h: New file.
5754         * config.gcc (target_has_targetcm): Define and use to add to
5755         c_target_objs and cxx_target_objs.
5756         * config/default-c.c: New file.
5757         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5758         of target.h and target-def.h.
5759         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5760         (darwin_objc_construct_string, darwin_cfstring_ref_p,
5761         darwin_check_cfstring_format_arg): Make static.
5762         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5763         TARGET_STRING_OBJECT_REF_TYPE_P,
5764         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5765         * config/darwin-protos.h (darwin_objc_construct_string,
5766         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5767         declare.
5768         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5769         TARGET_STRING_OBJECT_REF_TYPE_P,
5770         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
5771         * config/t-darwin (darwin-c.o): Update dependencies.
5772         * system.h (TARGET_HAS_TARGETCM): Poison.
5773         * Makefile.in (TARGET_H): Update.
5774         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5775         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5776         (default-c.o): New target.
5777         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
5778         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
5779         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
5780         c-target.def.
5781         (build/genhooks.o): Update dependencies.
5782
5783 2011-04-06  Richard Guenther  <rguenther@suse.de>
5784
5785         * ipa-inline.c (enum inlining_mode): Remove.
5786         (cgraph_flatten): Use some other token.
5787         (cgraph_edge_early_inlinable_p): New function, split out from ...
5788         (cgraph_perform_always_inlining): New function, split out from ...
5789         (cgraph_decide_inlining_incrementally): ... here.
5790         (cgraph_mark_inline_edge): Adjust.
5791         (cgraph_early_inlining): Re-structure.
5792         (pass_early_inline): Require SSA form.
5793
5794 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
5795             Julian Brown  <julian@codesourcery.com>
5796             Mark Shinwell  <shinwell@codesourcery.com>
5797
5798         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5799         LO_REGS only for Thumb-1.
5800         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5801         be used in short instructions when optimising for size on Thumb-2.
5802
5803 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5804
5805         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5806         associated with user returns to be preserved.
5807
5808 2011-04-06  Tristan Gingold  <gingold@adacore.com>
5809
5810         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5811         symbol_queue_size, DBXOUT_DECR_NESTING,
5812         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5813         if XCOFF_DEBUGGING_INFO.
5814
5815 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5816
5817         * config/i386/i386.md (attribute isa): New.
5818         (attribute enabled): New.
5819         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5820         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5821         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5822         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5823         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5824         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5825         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5826         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5827
5828         * config/i386/sse.md (VF): New mode iterator.
5829         (VF1): Ditto.
5830         (VF2): Ditto.
5831         (VF_128): Ditto.
5832         (SSEMODEF4): Remove.
5833         (attribute sse): Handle V8SF and V4DF modes.
5834         (<absneg:code><mode>2): Use VF mode iterator.
5835         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
5836         mode iterator.
5837         (<plusminus_insn><mode>3): Use VF mode iterator.
5838         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5839         Use VF mode iterator.
5840         (<sse>_vm<plusminus_insn><mode>3): Merge with
5841         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
5842         (mul<mode>3): Use VF mode iterator.
5843         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
5844         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
5845         mode iterator.
5846         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5847         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5848         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
5849         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
5850         mode iterator.
5851         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5852         Use VF1 mode iterator.
5853         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5854         (sqrt<VF2:mode>2): New expander.
5855         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5856         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5857         and sqrtv2df2.  Use VF mode iterator.
5858         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
5859         mode iterator.
5860         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5861         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5862         Use VF1 mode iterator.
5863         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5864         (<smaxmin:code><mode>3): Use VF mode iterator.
5865         (*<smaxmin:code><mode>3_finite): Merge with
5866         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
5867         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5868         (<sse>_vm<smaxmin:code><mode>2): Merge with
5869         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
5870         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
5871         mode iterator.
5872         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
5873         mode iterator.
5874         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5875         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5876         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5877         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5878         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
5879         VF mode iterator.
5880         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5881         Use VF_128 mode iterator.
5882         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
5883         mode iterator.
5884         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
5885         VF_128 mode iterator.
5886         (vcond<mode>): Use VF mode iterator.
5887         * config/i386/predicates.md (sse_comparison_operator): Merge with
5888         avx_comparison_float_operator.  Do not declare as special_predicate.
5889         * config/i386/i386.c (struct builtin_description): Update for renamed
5890         compare patterns.
5891         (ix86_expand_args_builtin): Ditto.
5892         (ix86_expand_sse_compare_mask): Ditto.
5893
5894 2011-04-06  Richard Guenther  <rguenther@suse.de>
5895
5896         * tree-inline.c (estimate_num_insns): For calls simply account
5897         for all passed arguments and a used return value.
5898
5899 2011-04-06  Richard Guenther  <rguenther@suse.de>
5900
5901         PR tree-optimization/47663
5902         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5903         call_stmt_time fields.
5904         (cgraph_edge_inlinable_p): Declare.
5905         (cgraph_edge_recursive_p): New inline function.
5906         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5907         (cgraph_clone_edge): Copy it.
5908         * ipa-inline.c (cgraph_estimate_edge_time): New function.
5909         Account for call stmt time.
5910         (cgraph_estimate_time_after_inlining): Take edge argument.
5911         (cgraph_estimate_edge_growth): Account call stmt size.
5912         (cgraph_estimate_size_after_inlining): Take edge argument.
5913         (cgraph_mark_inline_edge): Adjust.
5914         (cgraph_check_inline_limits): Likewise.
5915         (cgraph_recursive_inlining_p): Remove.
5916         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5917         (cgraph_decide_recursive_inlining): Take edge argument and
5918         adjust.
5919         (cgraph_decide_inlining_of_small_functions): Do not avoid
5920         diags for recursive inlining here.
5921         (cgraph_flatten): Adjust.
5922         (cgraph_decide_inlining_incrementally): Likewise.
5923         (estimate_function_body_sizes): Remove call cost handling.
5924         (compute_inline_parameters): Initialize caller edge call costs.
5925         (cgraph_estimate_edge_growth): New function.
5926         (cgraph_estimate_growth): Use it.
5927         (cgraph_edge_badness): Likewise.
5928         (cgraph_check_inline_limits): Take an edge argument.
5929         (cgraph_decide_inlining_of_small_functions): Adjust.
5930         (cgraph_decide_inlining): Likewise.
5931         * tree-inline.c (estimate_num_insns): Only account for call
5932         return value if it is used.
5933         (expand_call_inline): Avoid diagnostics on recursive inline
5934         functions here.
5935         * lto-cgraph.c (lto_output_edge): Output edge call costs.
5936         (input_edge): Input edge call costs.
5937
5938 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5939
5940         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
5941
5942 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5943
5944         * doc/invoke.texi (Spec Files): Fix typo.
5945
5946 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5947
5948         * profile.c (branch_prob): Move declaration of local variable.  Remove
5949         obsolete ??? comment.  Expand the location explicitly instead of using
5950         the LOCATION_FILE and LOCATION_LINE macros.
5951
5952 2011-04-06  Wei Guozhi  <carrot@google.com>
5953
5954         PR target/47855
5955         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
5956         (arm_cond_branch): Likewise.
5957         (arm_cond_branch_reversed): Likewise.
5958         (arm_jump): Likewise.
5959         (push_multi): Likewise.
5960         * config/arm/constraints.md (Py): New constraint.
5961
5962 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5963
5964         PR bootstrap/48471
5965         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
5966         Move these...
5967         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
5968         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
5969         #ifdef DBX_DEBUGGING_INFO.
5970
5971 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
5972
5973         PR bootstrap/48403
5974         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
5975         if old and new states differ.
5976
5977 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5978
5979         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
5980         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
5981         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5982         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
5983         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
5984         mcfv4e): Use Alias.
5985         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
5986         ColdFire options to -mcpu= options.
5987
5988 2011-04-05  Jeff Law  <law@redhat.com>
5989
5990         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
5991         check if BB is a successor of LOOP->header and return
5992         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
5993
5994 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5995
5996         * cprop.c (struct reg_use): Remove.
5997         (reg_use_table): Make an array of RTX.
5998         (find_used_regs, constprop_register, local_cprop_pass,
5999         bypass_block): Simplify users of reg_use_table.
6000         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6001         on one of the uses found by find_used_regs.
6002
6003 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6004
6005         PR bootstrap/48469
6006         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6007         declaration.
6008
6009 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6010
6011         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6012         as an rtx.
6013         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6014
6015 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6016
6017         PR middle-end/48441
6018         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6019
6020 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6021
6022         * combine.c: Include obstack.h.
6023         (struct insn_link): Define.
6024         (uid_log_links): Adjust type.
6025         (FOR_EACH_LOG_LINK): New macro.
6026         (insn_link_obstack): Declare.
6027         (alloc_insn_link): Define.
6028         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6029         type of link variables.
6030         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6031         (try_combine, record_promoted_values, distribute_notes): Likewise.
6032         (distribute_links): Likewise.  Tweak prototype.
6033         (clear_log_links): Delete.
6034         (adjust_for_new_dest): Call alloc_insn_link.
6035         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6036
6037 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6038
6039         * gcse.c (modify_mem_list): Convert to an array of VECs.
6040         (canon_modify_mem_list, compute_transp): Tweak formatting.
6041         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6042         (load_killed_in_block_p): Likewise.
6043         (record_last_mem_set_info): Likewise.
6044         (clear_modify_mem_tables): Likewise.
6045
6046 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6047
6048         PR middle-end/48461
6049         * function.c (emit_use_return_register_into_block): Only define if
6050         HAVE_return.
6051
6052 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6053
6054         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6055
6056 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6057
6058         * config/rx/rx-opts.h: New.
6059         * config/rx/rx.c (rx_cpu_type): Remove.
6060         (rx_handle_option): Don't assert that global structures are in
6061         use.  Access variables via opts pointer.  Defer most handling of
6062         OPT_mint_register_.  Use error_at.
6063         (rx_option_override): Handle deferred OPT_mint_register_ here.
6064         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6065         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6066         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6067         (rx_cpu_types): New Enum and EnumValue entries.
6068         (mint-register=): Use Defer and use Var accordingly.
6069
6070 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6071
6072         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6073         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6074         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6075         Move these...
6076         (debug_free_queue, debug_nesting, symbol_queue_index):
6077         ...and these...
6078         * dbxout.c: ...to here.  Make static.
6079
6080 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6081
6082         * gcse.c (modify_pair): Define.  Define a VEC of it.
6083         (canon_modify_mem_list): Convert to an array of VECs.
6084         (free_insn_expr_list_list): Delete.
6085         (clear_modify_mem_tables): Call VEC_free instead.
6086         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6087         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6088         (canon_list_insert, compute_transp): Likewise.
6089
6090 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6091
6092         PR target/43920
6093         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6094         for size.
6095
6096 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6097
6098         PR target/43920
6099         * function.c (emit_use_return_register_into_block): New function.
6100         (thread_prologue_and_epilogue_insns): Use
6101         emit_use_return_register_into_block.
6102
6103 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6104
6105         PR target/43920
6106         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6107         insn.
6108
6109 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6110
6111         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6112
6113 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6114
6115         * config/arm/arm.md (define_constants for unspec): Replace with
6116         define_c_enum.
6117         (define_constants for unspecv): Replace with define_c_enum.
6118         * config/arm/neon.md (define_constants for unspec): Replace with
6119         define_c_enum.
6120
6121 2011-04-04  Richard Henderson  <rth@redhat.com>
6122
6123         PR bootstrap/48400
6124         * dwarf2out.c (output_line_info): Always emit line info from
6125         at least one section.
6126         (dwarf2out_init): Create text_section_line_info here ...
6127         (set_cur_line_info_table): ... not here.
6128
6129 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6130
6131         PR target/48380
6132         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6133         not called.
6134
6135         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6136
6137 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6138
6139         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6140         (expr_equiv_p): Remove.
6141         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6142         (hash_scan_set): Update call to insert_set_in_table.
6143         (dump_hash_table): Dump <dest, src> pair.
6144         (lookup_set): Simplify.  Lookup <dest, src> pair.
6145         (compute_transp): Remove, fold heavily simplified code into...
6146         (compute_local_properties): ...here.  Expect COMP and TRANSP
6147         unconditionally.
6148         (find_avail_set): Take set directly from struct expr.
6149         (find_bypass-set): Likewise.
6150         (bypass_block): Likewise.
6151         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6152
6153         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6154         checks on form of COND from find_implicit_sets to here.
6155         (find_implicit_sets): Cleanup control flow. Split critical edges
6156         if it exposes implicit sets.  Allocate/resize implicit_sets as
6157         necessary.
6158         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6159         changed something.  Run df_analyze after find_implicit_sets if any
6160         edges were split.  Do not allocate implicit_sets here.
6161
6162         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6163         (gcse_obstack): Renamed to cprop_obstack.
6164         (GNEW, GNEWVEC, GNEWVAR): Remove.
6165         (gmalloc): Remove.
6166         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6167         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6168         (gcse_alloc): Likewise, and rename to cprop_alloc.
6169         (alloc_gcse_men, free_gcse_mem): Remove.
6170         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6171         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6172         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6173
6174         * cprop.c (oprs_not_set_p): Remove.
6175         (mark_set, mark_clobber): Remove.
6176         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6177         (reg_not_set_p): New function.
6178         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6179         (cprop_insn): Likewise.
6180         (cprop_jump): Use FOR_EACH_EDGE.
6181
6182 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6183
6184         PR bootstrap/48403
6185         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6186         (rank_for_schedule): Use scheduled_insns vector instead of
6187         last_scheduled_insn.
6188         (ok_for_early_queue_removal): Likewise.
6189         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6190         we have a dbg_cnt.
6191         (choose_ready): Likewise.
6192         (commit_schedule): Use VEC_iterate.
6193         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6194         a dbg_cnt, use it and ensure the first insn is in the ready list.
6195         (haifa_sched_init): Allocate scheduled_insns.
6196         (sched_extend_ready_list): Don't allocate it; reserve space.
6197         (haifa_sched_finish): Free it.
6198
6199 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6200
6201         * optc-gen.awk: Always remove type from Variable entry before
6202         recording in var_seen.
6203
6204 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6205
6206         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6207         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6208         call to tidy_fallthru_edges.
6209
6210 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6211
6212         * doc/options.texi (ToLower): Document.
6213         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6214         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6215         * opts.h (cl_option): Add cl_tolower field.
6216         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6217         arguments with lowercase strings.
6218         * config/rx/rx.opt (mcpu=): Add ToLower.
6219         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6220         argument.
6221
6222 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6223
6224         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6225
6226 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6227
6228         * config/vax/vax.c: Include reload.h.
6229
6230 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6231
6232         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6233         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6234         (sparc_preferred_reload_class): New function.
6235
6236 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6237
6238         PR debug/48401
6239         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6240         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6241
6242 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6243
6244         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6245         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6246
6247 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6248
6249         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6250         (ASM_OUTPUT_ALIGNED_BSS): Define.
6251
6252 2011-04-03  Michael Matz  <matz@suse.de>
6253
6254         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6255         and next_slot members.
6256         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6257         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6258         (lto_streamer_cache_append): Declare.
6259         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6260         unsigned index, remove offset parameter, ensure that we append
6261         or update existing entries.
6262         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6263         parameter, update next_slot for append.
6264         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6265         parameter.
6266         (lto_streamer_cache_insert_at): Likewise.
6267         (lto_streamer_cache_append): New function.
6268         (lto_streamer_cache_lookup): Use unsigned index.
6269         (lto_streamer_cache_get): Likewise.
6270         (lto_record_common_node): Don't test tree_node_can_be_shared.
6271         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6272         (lto_streamer_cache_delete): Don't free offsets member.
6273         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6274         (lto_output_string_with_length): Use lto_output_data_stream.
6275         (lto_output_tree_header): Remove ix parameter, don't write it.
6276         (lto_output_builtin_tree): Likewise.
6277         (lto_write_tree): Adjust callers to above, don't track and write
6278         offset, write unsigned index.
6279         (output_unreferenced_globals): Don't emit all global vars.
6280         (write_global_references): Use unsigned indices.
6281         (lto_output_decl_state_refs): Likewise.
6282         (write_symbol): Likewise.
6283         * lto-streamer-in.c (lto_input_chain): Move earlier.
6284         (input_function): Use unsigned index.
6285         (input_alias_pairs): Don't read and then ignore all global vars.
6286         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6287         don't pass it back, use lto_streamer_cache_append.
6288         (lto_register_var_decl_in_symtab): Use unsigned index.
6289         (lto_register_function_decl_in_symtab): Likewise.
6290         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6291         index.
6292         (lto_get_builtin_tree): Don't read index, use
6293         lto_streamer_cache_append.
6294         (lto_read_tree): Adjust call to lto_materialize_tree.
6295
6296         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6297         don't use function calls in arguments to MIN.
6298
6299         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6300         twice.
6301
6302         * gimple.c (gimple_type_leader_entry): Mark deletable.
6303
6304 2011-04-03  Alan Modra  <amodra@gmail.com>
6305
6306         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6307
6308 2011-04-03  Michael Matz  <matz@suse.de>
6309
6310         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6311         an integer.
6312         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6313
6314 2011-04-03  Michael Matz  <matz@suse.de>
6315
6316         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6317         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6318         without function context.
6319         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6320         current_function_decl and cfun.
6321
6322 2011-04-03  Michael Matz  <matz@suse.de>
6323
6324         * tree.c (decl_init_priority_insert): Don't create entry for
6325         default priority.
6326         (decl_fini_priority_insert): Ditto.
6327         (fields_compatible_p, find_compatible_field): Remove.
6328         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6329         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6330
6331 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6332
6333         * combine.c (try_combine): Remove useless local variable.
6334
6335 2011-04-03  Richard Guenther  <rguenther@suse.de>
6336             Ira Rosen  <ira.rosen@linaro.org>
6337
6338         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6339         non-variable offsets and compare the remaining bases of the two
6340         accesses instead of looking for exact same data-ref.
6341
6342 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6343
6344         PR target/48416
6345         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6346
6347         * i386.c (ix86_is_msabi_thiscall): New helper function.
6348         (ix86_is_type_thiscall): New helper function.
6349         (ix86_comp_type_attributes): Handle thiscall for method-functions
6350         special.
6351         (init_cumulative_args): Likewise.
6352         (find_drap_reg): Likewise.
6353         (ix86_static_chain): Likewise.
6354         (x86_this_parameter): Likewise.
6355         (x86_output_mi_thunk): Likewise.
6356
6357 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6358             Nicolas Setton  <setton@adacore.com>
6359             Eric Botcazou  <ebotcazou@adacore.com>
6360
6361         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6362         (add_gnat_descriptive_type_attribute): New function.
6363         (gen_array_type_die): Call it.
6364         (gen_enumeration_type_die): Likewise.
6365         (gen_struct_or_union_type_die): Likewise.
6366         (modified_type_die): Likewise.
6367         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6368         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6369         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6370
6371 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6372
6373         PR bootstrap/48148
6374         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6375         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6376
6377         Revert:
6378         2011-03-17  Richard Guenther  <rguenther@suse.de>
6379
6380         PR bootstrap/48148
6381         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6382         origin for decls in other ltrans units.
6383         (input_varpool_node): Likewise.
6384
6385 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6386
6387         PR middle-end/48335
6388         * expr.c (expand_assignment): Handle all possibilities
6389         if TO_RTX is CONCAT.
6390         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6391         (store_split_bit_field): If SUBREG_REG (op0) or
6392         op0 itself has smaller mode than word, return it
6393         for offset 0 and const0_rtx for out-of-bounds stores.
6394         If word is const0_rtx, skip it.
6395
6396 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6397
6398         * config/h8300/h8300.c (print_operand_address): Rename to...
6399         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6400         Call h8300_print_operand and h8300_print_operand_address instead of
6401         print_operand and print_operand_address. Declare.
6402         (print_operand): Renake to...
6403         (h8300_print_operand): ...this. Make static. Adjust comments.
6404         Call h8300_print_operand instead of print_operand. Declare.
6405         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6406         (h8300_register_move_cost): Likewise.
6407         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6408         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6409         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6410         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6411         * config/h8300/h8300-protos.h (print_operand): Delete.
6412         (print_operand_address): Delete.
6413
6414 2011-04-01  Richard Henderson  <rth@redhat.com>
6415
6416         PR 48400
6417         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6418         in strict mode before dwarf4.  Re-order tests to early out
6419         before switching sections.
6420
6421 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6422
6423         * config/h8300/constraints.md: New file.
6424         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6425         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6426         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6427         * config/h8300/predicates.md (bit_operand): Likewise.
6428         (incdec_operand): Use satisfies_constraint_M and
6429         satisfies_constraint_O.  Don't use C code block.
6430         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6431         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6432         (compute_mov_length): Use satisfies_constraint_G.
6433         (fix_bit_operand): Use satisfies_constraint_U.
6434         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6435         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6436         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6437         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6438         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6439         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6440         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6441         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6442         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6443         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6444         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6445         (EXTRA_MEMORY_CONSTRAINT): Delete.
6446
6447 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6448             Michael Meissner  <meissner@linux.vnet.ibm.com>
6449
6450         PR target/48262
6451         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6452         operands, as per the specifications.
6453
6454         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6455         (vec_extract_evenv4sf): Ditto.
6456         (vec_extract_evenv8hi): Ditto.
6457         (vec_extract_evenv16qi): Ditto.
6458         (vec_extract_oddv4si): Ditto.
6459
6460 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6461
6462         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6463         high_pc attribute if the CU has no associated code. Only output
6464         DW_AT_entry_pc for CU if not generating strict dwarf and
6465         dwarf_version < 4.
6466
6467 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6468
6469         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6470         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6471         out of ...
6472         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6473         * final.c (final_start_function): Call the new function rather
6474         than using a NULL argument for dwarf2out_frame_debug.
6475
6476         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6477         that contains the prologue.
6478
6479         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6480         changed.  Print it in debugging output.
6481
6482         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6483
6484         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6485         Split most of the code into...
6486         (begin_move_insn): ... here.  New function.
6487         (ebb_sched_info): Add a pointer to it.
6488         * haifa-sched.c (scheduled_insns): New static variable.
6489         (sched_extend_ready_list): Allocate it.
6490         (schedule_block): Use it to record the order of scheduled insns.
6491         Perform RTL changes to move insns only after all scheduling
6492         decisions have been made.
6493         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6494         begin_move_insn field.
6495         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6496         * sched-int.h (struct haifa_sched_info): Remove second argument
6497         from begin_schedule_ready hook.  Add new member begin_move_insn.
6498         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6499         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6500
6501         * haifa-sched.c (prune_ready_list): New function, broken out of
6502         schedule_block.
6503         (schedule_block): Use it.
6504
6505 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6506
6507         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6508
6509 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6510
6511         * config.gcc (*-*-mingw*): Allow as option the
6512         posix threading model.
6513         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6514         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6515         definition.
6516         (CPP_SPEC): Add pthread/no-pthread handling.
6517         (LIB_SPEC): Likewise.
6518         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6519         (LIB_SPEC): Likewise.
6520         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6521         flag to pass -pthread option for shared libgcc build.
6522         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6523         for shared libgcc build.
6524         * config/i386/t-mingw-pthread: New file.
6525         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6526         New define to enable use of library pthread by default.
6527         * config/i386/mingw.opt (pthread): New driver option.
6528         (no-pthread): New driver option.
6529         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6530         * config/i386/mingw-w64.opt: Likewise.
6531
6532 2011-04-01  Gary Funck  <gary@intrepid.com>
6533
6534         * c-decl.c (grokdeclarator): Fix formatting.
6535
6536 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6537
6538         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6539         instead of n_operands.
6540         (set_storage_via_setmem): Likewise.
6541         * optabs.c (maybe_gen_insn): Likewise.
6542         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6543         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6544         (mips_expand_builtin_direct): Likewise.
6545         * config/spu/spu.c (expand_builtin_args): Likewise.
6546
6547 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6548
6549         * recog.h (insn_data_d): Add n_generator_args.
6550         * genoutput.c (data): Likewise.
6551         (output_insn_data): Print it.
6552         (max_opno, num_dups): Delete.
6553         (scan_operands): Just fill in "d->operand[...]".
6554         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6555
6556 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6557
6558         * gensupport.h (pattern_stats): New structure.
6559         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6560         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6561         (max_operand_1, max_operand_vec): Delete.
6562         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6563
6564 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6565
6566         * emit-rtl.c (emit_pattern_after_setloc): New function.
6567         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6568         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6569         (emit_pattern_after): New function.
6570         (emit_insn_after, emit_jump_insn_after): Call it.
6571         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6572         (emit_pattern_before_setloc): New function.
6573         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6574         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6575         Likewise.
6576         (emit_pattern_before): New function.
6577         (emit_insn_before, emit_jump_insn_before): Call it.
6578         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6579
6580 2011-03-31  Richard Henderson  <rth@redhat.com>
6581
6582         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6583         (dw_separate_line_info_entry): Remove.
6584         (enum dw_line_info_opcode): New.
6585         (dw_line_info_entry): Use it.
6586         (dw_line_info_table, dw_line_info_table_p): New.
6587         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6588         (line_info_table, line_info_label_num): Remove.
6589         (line_info_table_in_use): Remove.
6590         (separate_line_info_table): Remove.
6591         (separate_line_info_table_allocated): Remove.
6592         (separate_line_info_table_in_use): Remove.
6593         (LINE_INFO_TABLE_INCREMENT): Remove.
6594         (line_info_label_num): New.
6595         (cur_line_info_table): New.
6596         (text_section_line_info, cold_text_section_line_info): New.
6597         (separate_line_info): New.
6598         (SEPARATE_LINE_CODE_LABEL): Remove.
6599         (print_dwarf_line_table): Remove.
6600         (debug_dwarf): Don't dump it.
6601         (output_one_line_info_table): New.
6602         (output_line_info): Use it.
6603         (new_line_info_table): New.
6604         (set_cur_line_info_table): New.
6605         (dwarf2out_switch_text_section): Use it.
6606         (dwarf2out_begin_function): Likewise.
6607         (push_dw_line_info_entry): New.
6608         (dwarf2out_source_line): Rewrite for new line info tables.
6609         (dwarf2out_init): Remove dead initailizations.
6610
6611 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6612
6613         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
6614         various flags.
6615         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6616         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6617         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6618         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6619         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6620         * opt-functions.awk (flag_init, switch_bit_fields): New.
6621         (switch_flags): Don't handle flags moved to bit-fields.  Don't
6622         generate CL_MISSING_OK or CL_SAVE.
6623         * optc-gen.awk: Update to generate bit-field output as well as
6624         flags field.
6625         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6626         bit-field instead of CL_REJECT_DRIVER flag.
6627         * opts-common.c (generate_canonical_option,
6628         decode_cmdline_option): Use bit-fields instead of CL_* flags.
6629         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6630         instead of CL_REJECT_NEGATIVE flag.
6631         * toplev.c (print_switch_values): Use cl_report bit-field instead
6632         of CL_REPORT flag.
6633
6634 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6635
6636         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6637         a zero minimum index only if it is redundant.
6638
6639 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6640
6641         PR rtl-optimization/48381
6642         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6643         instead of ira_class_hard_reg_index for calculating conflicting
6644         hard registers.
6645
6646 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6647
6648         * cprop.c: Clean up hash table building.
6649         (reg_avail_info): Remove.
6650         (oprs_available_p): Remove.
6651         (record_last_reg_set_info): Remove.
6652         (record_last_set_info): Remove.
6653         (reg_available_p): New function.
6654         (gcse_constant_p): Do not treat unfolded conditions as constants.
6655         (make_set_regs_unavailable): New function.
6656         (hash_scan_set): Simplify with new reg_available_p.
6657         (compute_hash_table_work): Traverse insns stream only once.
6658         Do not compute reg_avail_info. Traverse insns in reverse order.
6659         Record implicit sets after recording explicit sets from the block.
6660
6661 2011-03-31  Michael Matz  <matz@suse.de>
6662
6663         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
6664
6665 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
6666
6667         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6668         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6669         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6670         (h8300_mode_dependent_address_p): New function.
6671         (h8300_get_index): Make static.
6672
6673 2011-03-31  Jeff Law  <law@redhat.com>
6674
6675         * reload1.c (elimination_effects): Fix typo in recent change.
6676
6677         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
6678         typo potentially leading to null pointer dereference.
6679
6680         * caller-save.c (new_saved_hard_reg): Eliminate return value.
6681         (setup_save_areas): Corresponding changes to avoid useless
6682         assignments.
6683
6684         * jump.c (reversed_comparison_code_parts): Avoid successive return
6685         statements when REVERSE_CONDITION is defined.
6686
6687         * expr.c (expand_assignment): Avoid useless assignments.
6688         (expand_expr_real_1): Likewise.
6689         (expand_expr_real_2): Avoid useless statements.
6690
6691         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6692
6693         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6694
6695         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6696         statements.
6697
6698         * stmt.c (expand_expr_stmt): Avoid useless assignment.
6699
6700 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6701
6702         PR target/47109
6703         * doc/tm.texi.in (TARGET_VERSION): Remove.
6704         * doc/tm.texi: Regenerate.
6705         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6706         * collect2.c (main): Don't use TARGET_VERSION.
6707         * mips-tdump.c (main): Don't use TARGET_VERSION.
6708         * mips-tfile.c (main): Don't use TARGET_VERSION.
6709         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
6710         * config/rs6000/vxworksae.h: Remove.
6711         * config/alpha/alpha.h (TARGET_VERSION): Remove.
6712         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6713         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6714         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6715         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6716         * config/arm/arm.h (TARGET_VERSION): Remove.
6717         * config/arm/coff.h (TARGET_VERSION): Remove.
6718         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6719         * config/arm/elf.h (TARGET_VERSION): Remove.
6720         * config/arm/freebsd.h (TARGET_VERSION): Remove.
6721         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6722         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6723         * config/arm/pe.h (TARGET_VERSION): Remove.
6724         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6725         * config/arm/semi.h (TARGET_VERSION): Remove.
6726         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6727         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6728         * config/arm/vxworks.h (TARGET_VERSION): Remove.
6729         * config/avr/avr.h (TARGET_VERSION): Remove.
6730         * config/bfin/bfin.h (TARGET_VERSION): Remove.
6731         * config/fr30/fr30.h (TARGET_VERSION): Remove.
6732         * config/frv/frv.h (TARGET_VERSION): Remove.
6733         * config/h8300/h8300.h (TARGET_VERSION): Remove.
6734         * config/i386/cygwin.h (TARGET_VERSION): Remove.
6735         * config/i386/darwin.h (TARGET_VERSION): Remove.
6736         * config/i386/darwin64.h (TARGET_VERSION): Remove.
6737         * config/i386/djgpp.h (TARGET_VERSION): Remove.
6738         * config/i386/freebsd.h (TARGET_VERSION): Remove.
6739         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6740         * config/i386/gnu.h (TARGET_VERSION): Remove.
6741         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6742         * config/i386/i386elf.h (TARGET_VERSION): Remove.
6743         * config/i386/linux.h (TARGET_VERSION): Remove.
6744         * config/i386/linux64.h (TARGET_VERSION): Remove.
6745         * config/i386/lynx.h (TARGET_VERSION): Remove.
6746         * config/i386/mingw32.h (TARGET_VERSION): Remove.
6747         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6748         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6749         * config/i386/netware.h (TARGET_VERSION): Remove.
6750         * config/i386/nto.h (TARGET_VERSION): Remove.
6751         * config/i386/openbsd.h (TARGET_VERSION): Remove.
6752         * config/i386/vxworks.h (TARGET_VERSION): Remove.
6753         * config/ia64/elf.h (TARGET_VERSION): Remove.
6754         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6755         * config/ia64/hpux.h (TARGET_VERSION): Remove.
6756         * config/ia64/linux.h (TARGET_VERSION): Remove.
6757         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6758         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6759         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6760         * config/lm32/lm32.h (TARGET_VERSION): Remove.
6761         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6762         * config/m32c/m32c.h (TARGET_VERSION): Remove.
6763         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6764         * config/m32r/m32r.h (TARGET_VERSION): Remove.
6765         * config/m68k/linux.h (TARGET_VERSION): Remove.
6766         * config/m68k/m68k.h (TARGET_VERSION): Remove.
6767         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6768         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6769         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6770         * config/mep/mep.h (TARGET_VERSION): Remove.
6771         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6772         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6773         * config/mips/iris6.h (MACHINE_TYPE): Remove.
6774         * config/mips/linux.h (TARGET_VERSION): Remove.
6775         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6776         * config/mips/vxworks.h (TARGET_VERSION): Remove.
6777         * config/mmix/mmix.h (TARGET_VERSION): Remove.
6778         * config/mn10300/linux.h (TARGET_VERSION): Remove.
6779         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6780         * config/pa/pa.h (TARGET_VERSION): Remove.
6781         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6782         * config/picochip/picochip.h (TARGET_VERSION): Remove.
6783         * config/rs6000/aix.h (TARGET_VERSION): Remove.
6784         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6785         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6786         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6787         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6788         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6789         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6790         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6791         * config/rs6000/linux.h (TARGET_VERSION): Remove.
6792         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6793         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6794         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6795         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6796         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6797         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6798         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6799         * config/s390/linux.h (TARGET_VERSION): Remove.
6800         * config/s390/s390.h (TARGET_VERSION): Remove.
6801         * config/s390/tpf.h (TARGET_VERSION): Remove.
6802         * config/score/score.h (TARGET_VERSION): Remove.
6803         * config/sh/linux.h (TARGET_VERSION): Remove.
6804         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6805         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6806         * config/sh/sh.h (TARGET_VERSION): Remove.
6807         * config/sh/sh64.h (TARGET_VERSION): Remove.
6808         * config/sh/superh.h (TARGET_VERSION): Remove.
6809         * config/sh/vxworks.h (TARGET_VERSION): Remove.
6810         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6811         * config/sparc/linux.h (TARGET_VERSION): Remove.
6812         * config/sparc/linux64.h (TARGET_VERSION): Remove.
6813         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6814         TARGET_NAME32, TARGET_NAME): Remove.
6815         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6816         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6817         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6818         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6819         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6820         * config/spu/spu.h (TARGET_VERSION): Remove.
6821         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6822         * config/v850/v850.h (TARGET_VERSION): Remove.
6823         * config/vax/linux.h (TARGET_VERSION): Remove.
6824         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6825         * config/xtensa/elf.h (TARGET_VERSION): Remove.
6826         * config/xtensa/linux.h (TARGET_VERSION): Remove.
6827
6828 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6829
6830         PR target/48142
6831         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6832         frame-related from frame-unrelated adjustments to the stack pointer.
6833
6834 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
6835
6836         * common.opt (fdebug-types-section): Move earlier.
6837         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6838
6839 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
6840
6841         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6842         var.
6843
6844 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
6845
6846         * tree.h (CASE_CHAIN): Define.
6847         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6848         (gimple_redirect_edge_and_branch): Likewise.
6849
6850 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6851
6852         PR middle-end/48367
6853         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6854         calculation.
6855
6856 2011-03-30  Jeff Law  <law@redhat.com>
6857
6858         * PR bootstrap/48371
6859         * reload1.c (reload): Fix botch in last change.
6860
6861         * reload.h (struct reload): Fix typo introduced in last change.
6862
6863 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6864
6865         * config/arm/arm.opt (mhard-float, msoft-float): Mark
6866         Undocumented.  Remove help text.
6867         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6868         -mhard-float.
6869
6870 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6871
6872         * doc/options.texi (NegativeAlias): Document.
6873         (Alias): Mention NegativeAlias.
6874         * opt-functions.awk: Handle NegativeAlias.
6875         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
6876         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6877         * opts.h (CL_NEGATIVE_ALIAS): Define.
6878         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6879         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6880         OPT_mspe_.
6881         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6882         Alias entries.
6883         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6884         mno-spe and mno-isel instead of mspe=no and -misel=no.
6885
6886 2011-03-29  Mark Wielaard  <mjw@redhat.com>
6887
6888         * common.opt (fdebug-types-section): New flag.
6889         * doc/invoke.texi: Document new -fno-debug-types-section flag.
6890         * dwarf2out.c (use_debug_types): New define.
6891         (struct die_struct): Mark die_id with GTY desc use_debug_types.
6892         (print_die): Guard output of type unit signatures using
6893         use_debug_types.
6894         (build_abbrev_table): Replace assert of dwarf_version >= 4
6895         with assert on use_debug_types.
6896         (size_of_die): Likewise.
6897         (unmark_dies): Likewise.
6898         (value_format): Decide AT_ref_external form on use_debug_types.
6899         (output_die): Replace dwarf_version version check guard with
6900         use_debug_types where appropriate.
6901         (modified_type_die): Likewise.
6902         (gen_reference_type_die): Likewise.
6903         (dwarf2out_start_source_file): Likewise.
6904         (dwarf2out_end_source_file): Likewise.
6905         (prune_unused_types_walk_attribs): Likewise.
6906         (dwarf2out_finish): Likewise.
6907
6908 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6909
6910         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6911
6912 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6913
6914         PR rtl-optimization/48332
6915         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6916         mode of input operand N and modeN to its actual mode.
6917
6918 2011-03-30  Jeff Law  <law@redhat.com>
6919
6920         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6921         define accessor macro.
6922         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6923         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6924         (reg_equiv_init): Likewise.
6925         (reg_equivs_size): New variable.
6926         (reg_equiv_init_size): Remove.
6927         (allocate_initial_values): Move prototype to here from....
6928         * integrate.h (allocate_initial_values): Remove prototype.
6929         * integrate.c: Include reload.h.
6930         (allocate_initial_values): Corresponding changes.
6931         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6932         (fix_reg_equiv_init, no_equiv): Corresponding changes.
6933         (update_equiv_regs): Corresponding changes.
6934         (ira): Corresponding changes.
6935         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6936         (push_secondary_reload): Corresponding changes.
6937         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
6938         (make_memloc, find_reloads_address): Corresponding changes.
6939         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
6940         (find_reloads_address_1): Corresponding changes.
6941         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
6942         (refers_to_regno_for_reload_p): Corresponding changes.
6943         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
6944         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
6945         * reload1.c: Include ggc.h.
6946         (grow_reg_equivs): New function.
6947         (replace_pseudos_in, reload): Corresponding changes.
6948         (calculate_needs_all_insns, alter_regs): Corresponding changes.
6949         (eliminate_regs_1, elimination_effects): Corresponding changes.
6950         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
6951         (delete_output_reload): Likewise.
6952         * caller-save.c (mark_referenced_regs): Corresponding changes.
6953         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
6954         * frv/predicates.md (frv_load_operand): Corresponding changes.
6955         * microblaze/microblaze.c (double_memory_operand): Corresponding
6956         changes.
6957         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
6958         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
6959         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
6960         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
6961         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
6962         changes.
6963         * pa/pa.c (emit_move_sequence): Corresponding changes.
6964         * vax/vax.c (nonindexed_address_p): Corresponding changes.
6965
6966 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6967
6968         PR target/47551
6969         * config/arm/arm.c (coproc_secondary_reload_class): Handle
6970         structure modes.  Don't check neon_vector_mem_operand for
6971         vector or structure modes.
6972
6973 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6974             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6975
6976         PR target/43590
6977         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6978         operand 1 and reshuffle the operands to match.
6979         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
6980
6981 2011-03-30  Christian Schüler  <cschueler@gmx.de>
6982
6983         PR driver/48208
6984         * config/c.opt (F): Added 'Driver' to -F option.
6985
6986         PR driver/48260
6987         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
6988           handler function.
6989         * config/darwin.opt: Added '-arch' option.
6990
6991 2011-03-30  Nick Clifton  <nickc@redhat.com>
6992
6993         * config/rx/rx.md: Add peepholes and patterns to combine
6994         extending loads and simple arithmetic instructions.
6995         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
6996         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
6997         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
6998         modes to use pre-decrement and post-increment addressing.
6999         (rx_is_restricted_memory_address): Add range checking of REG+INT
7000         addresses.
7001         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7002         (rx_memory_move_cost): Adjust cost of stores.
7003         (rx_adjust_insn_length): New function.
7004
7005 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7006
7007         PR c/48305
7008         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7009         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7010         matching arg00/arg01 types.
7011
7012 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7013
7014         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7015         last_location to UNKNOWN_LOCATION.
7016
7017 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7018
7019         PR target/48349
7020         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7021         FLOAT_SSE_REGS.
7022
7023 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7024             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7025
7026         PR bootstrap/48337
7027         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7028         Init(PROCESSOR_V7).
7029         (sparc_cpu): Likewise.
7030         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7031         PROCESSOR_V7.
7032
7033 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7034
7035         PR target/48336
7036         PR middle-end/48342
7037         PR rtl-optimization/48345
7038         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7039         hard regs for given mode from profitable regs when doing secondary
7040         allocation.
7041
7042 2011-03-29  Jeff Law  <law@redhat.com>
7043
7044         PR bootstrap/48327
7045         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7046         do_not_duplicate field.
7047         (lookup_redirection_data): Corresponding changes.
7048         (create_duplicates): Always create a template block.
7049         (redirect_edges): Remove code which reused the original block
7050         when it was going to become unreachable code.
7051         (thread_block): Don't set do_not_duplicate field.
7052
7053 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7054
7055         * lto-opts.c (register_user_option_p, lto_register_user_option):
7056         Make type argument unsigned.
7057         * lto-streamer.h (lto_register_user_option): Make type argument
7058         unsigned.
7059         * opth-gen.awk: Make CL_* macros unsigned.
7060         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7061         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7062         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7063         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7064         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7065         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7066         (find_opt): Make lang_mask argument unsigned.
7067
7068 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7069
7070         PR rtl-optimization/48331
7071         PR rtl-optimization/48334
7072         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7073         for any used algorithm.
7074
7075 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7076
7077         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7078         to parent_max.
7079
7080 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7081
7082         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7083         (alpha_option_override): Don't set alpha_sr_alias_set.
7084         (emit_frame_store_1): Use gen_frame_mem rather than calling
7085         set_mem_alias_set.
7086         (alpha_expand_epilogue): Ditto.
7087
7088 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7089
7090         PR tree-optimization/48290
7091         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7092         vectorization, check that relevant phis in the basic block after
7093         the inner loop are really inner loop's exit phis.
7094
7095 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7096
7097         PR debug/48190
7098         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7099         (cached_dw_loc_list_def): New structure.
7100         (cached_dw_loc_list): New typedef.
7101         (cached_dw_loc_list_table): New variable.
7102         (cached_dw_loc_list_table_hash): New function.
7103         (cached_dw_loc_list_table_eq): Likewise.
7104         (add_location_or_const_value_attribute): Take a bool cache_p.
7105         Cache the list when the parameter is true.
7106         (gen_formal_parameter_die): Update caller.
7107         (gen_variable_die): Likewise.
7108         (dwarf2out_finish): Likewise.
7109         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7110         while generating debug info for the decl.
7111         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7112         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7113         (resolve_addr): Cache the result of resolving a chain of
7114         location lists.
7115
7116 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7117
7118         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7119         conflict object hard regset nodes have intersecting hard reg sets.
7120
7121         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7122         after regstat_init_n_sets_and_refs.
7123
7124         * ira.c: Add more comments at the top.
7125         (setup_stack_reg_pressure_class, setup_pressure_classes):
7126         Add comments how we compute the register pressure classes.
7127         (setup_allocno_and_important_classes): Add more comments.
7128         (setup_class_translate_array, reorder_important_classes)
7129         (setup_reg_class_relations): Add comments.
7130
7131         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7132         start of the file.
7133
7134         * ira-color.c: Add 2011 to the Copyright line.
7135         (assign_hard_reg):  Add more comments.
7136         (improve_allocation): Ditto.
7137
7138         * ira-costs.c: Add 2011 to the Copyright line.
7139         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7140         comments.
7141         (setup_regno_cost_classes_by_mode): Ditto.
7142
7143         Initial patches from ira-improv branch:
7144
7145         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7146
7147         * ira-build.c (ira_create_object): Remove initialization of
7148         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7149         (ira_create_allocno): Remove initialization of
7150         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7151         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7152         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7153         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7154         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7155         Initialize ALLOCNO_ADD_DATA.
7156         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7157         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7158         ALLOCNO_REG.
7159         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7160         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7161
7162         * ira.c (ira_reallocate): Remove.
7163         (setup_pressure_classes): Call
7164         ira_init_register_move_cost_if_necessary.  Use
7165         ira_register_move_cost instead of ira_get_register_move_cost.
7166         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7167         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7168
7169         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7170         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7171         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7172         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7173         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7174         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7175         Fix formatting.
7176         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7177         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7178         (struct allocno_color_data): New.
7179         (allocno_color_data_t): New typedef.
7180         (allocno_color_data): New definition.
7181         (ALLOCNO_COLOR_DATA): New macro.
7182         (struct object_color_data): New.
7183         (object_color_data_t): New typedef.
7184         (object_color_data): New definition.
7185         (OBJECT_COLOR_DATA): New macro.
7186         (update_copy_costs, calculate_allocno_spill_cost): Call
7187         ira_init_register_move_cost_if_necessary.  Use
7188         ira_register_move_cost instead of ira_get_register_move_cost.
7189         (move_spill_restore, update_curr_costs): Ditto.
7190         (allocno_spill_priority): Make it inline.
7191         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7192         (struct coalesce_data, coalesce_data_t): New.
7193         (allocno_coalesce_data): New definition.
7194         (ALLOCNO_COALESCE_DATA): New macro.
7195         (merge_allocnos, coalesced_allocno_conflict_p): Use
7196         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7197         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7198         (coalesce_allocnos): Ditto.
7199         (setup_coalesced_allocno_costs_and_nums): Ditto.
7200         (collect_spilled_coalesced_allocnos): Ditto.
7201         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7202         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7203         (coalesce_spill_slots): Ditto.
7204         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7205         free allocno_coalesce_data.
7206
7207         * ira-conflicts.c: Fix formatting.
7208         (process_regs_for_copy): Call
7209         ira_init_register_move_cost_if_necessary.  Use
7210         ira_register_move_cost instead of ira_get_register_move_cost.
7211         (build_object_conflicts): Optimize.
7212
7213         * ira-costs.c (record_reg_classes): Optimize.  Call
7214         ira_init_register_move_cost_if_necessary.  Use
7215         ira_register_move_cost, ira_may_move_in_cost, and
7216         ira_may_move_out_cost instead of ira_get_register_move_cost and
7217         ira_get_may_move_cost.
7218         (record_address_regs): Ditto.
7219         (scan_one_insn): Optimize.
7220         (find_costs_and_classes): Optimize.
7221         (process_bb_node_for_hard_reg_moves): Call
7222         ira_init_register_move_cost_if_necessary.  Use
7223         ira_register_move_cost instead of ira_get_register_move_cost.
7224
7225         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7226         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7227         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7228         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7229         definitions.
7230         (ira_initiate_emit_data, ira_finish_emit_data)
7231         (create_new_allocno): New functions.
7232         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7233         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7234         Use ira_register_move_cost instead of ira_get_register_move_cost.
7235
7236         * ira-int.h: Fix some comments.
7237         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7238         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7239         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7240         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7241         add_data.
7242         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7243         bitfield after mode.  Make hard_regno a short int.  Make
7244         hard_regno short.  Remove first_coalesced_allocno and
7245         next_coalesced_allocno.  Move mem_optimized_dest_p,
7246         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7247         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7248         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7249         temp, colorable_p.  Add new member add_data.
7250         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7251         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7252         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7253         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7254         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7255         (ALLOCNO_ADD_DATA): New macro.
7256         (ira_emit_data_t): New typedef.
7257         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7258         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7259         from struct ira_allocno.
7260         (ALLOCNO_EMIT_DATA): New macro.
7261         (ira_allocno_emit_data, allocno_emit_reg): New.
7262         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7263         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7264         (OBJECT_ADD_DATA): New macro.
7265         (ira_reallocate): Remove.
7266         (ira_initiate_emit_data, ira_finish_emit_data): New.
7267         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7268         (ira_init_register_move_cost_if_necessary): New.
7269         (ira_object_conflict_iter_next): Merge into
7270         ira_object_conflict_iter_cond.
7271         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7272
7273         * ira-live.c (process_single_reg_class_operands): Call
7274         ira_init_register_move_cost_if_necessary.  Use
7275         ira_register_move_cost instead of ira_get_register_move_cost.
7276
7277         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7278
7279         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7280
7281         * ira-costs.c: Fix formatting.
7282         (cost_classes, cost_classes_num): Remove.
7283         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7284         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7285         (cost_classes_del, cost_classes_htab): New.
7286         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7287         (initiate_regno_cost_classes, setup_cost_classes): New.
7288         (setup_regno_cost_classes_by_aclass): New.
7289         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7290         (record_reg_classes): Use regno_cost_classes instead of
7291         cost_classes.  Move checking opposite operand up.
7292         (record_address_regs): Use regno_cost_classes
7293         instead of cost_classes.
7294         (scan_one_insn): Ditto.  Use always general register.
7295         (print_allocno_costs): Use regno_cost_classes instead of
7296         cost_classes.
7297         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7298         (find_costs_and_classes): Set up cost classes for each registers.
7299         Use also their mode for this.  Use regno_cost_classes instead of
7300         cost_classes.
7301         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7302         cost_classes.
7303         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7304         (ira_costs, ira_set_pseudo_classes): Call
7305         initiate_regno_cost_classes and finish_regno_cost_classes.
7306
7307         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7308
7309         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7310
7311         * target.def (ira_cover_classes): Remove.
7312
7313         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7314
7315         * doc/tm.texi.in: Ditto.
7316
7317         * ira-conflicts.c: Remove mentioning cover classes from the file.
7318         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7319         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7320
7321         * targhooks.c (default_ira_cover_classes): Remove.
7322
7323         * targhooks.h (default_ira_cover_classes): Ditto.
7324
7325         * haifa-sched.c: Remove mentioning cover classes from the file.
7326         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7327         ira_pressure_classes and ira_pressure_classes_num instead of
7328         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7329         sched_regno_pressure_class instead of sched_regno_cover_class.
7330         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7331         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7332
7333         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7334         classes from the file.
7335         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7336         (struct object_hard_regs, struct object_hard_regs_node): New.
7337         (struct ira_object): New members profitable_hard_regs,
7338         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7339         (struct ira_allocno): Rename cover_class to aclass.  Rename
7340         cover_class_cost and updated_cover_class_cost to class_cost and
7341         updated_class_cost.  Remove splay_removed_p and
7342         left_conflict_size.  Add new members colorable_p.
7343         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7344         (ALLOCNO_COLORABLE_P): New macro.
7345         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7346         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7347         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7348         (OBJECT_...): Rename parameter C to O.
7349         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7350         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7351         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7352         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7353         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7354         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7355         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7356         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7357         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7358         x_ira_reg_class_subunion.
7359         (ira_max_memory_move_cost, ira_max_register_move_cost)
7360         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7361         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7362         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7363         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7364         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7365         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7366         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7367         (ira_tune_allocno_costs_and_cover_classes): Rename to
7368         ira_tune_allocno_costs.
7369         (ira_debug_hard_regs_forest): New.
7370         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7371         (ira_object_conflict_iter_next): Fix comments.
7372         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7373         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7374         cover_class to aclass.
7375         (ira_allocate_and_accumulate_costs): Ditto.
7376         (ira_allocate_and_set_or_copy_costs): Ditto.
7377
7378         * opts.c (decode_options): Remove ira_cover_class check.
7379
7380         * ira-color.c: Remove mentioning cover classes from the file.  Use
7381         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7382         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7383         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7384         (splay-tree.h): Remove include.
7385         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7386         before copy_freq_compare_func.
7387         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7388         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7389         New definitions.
7390         (hard_regs_roots, hard_regs_node_vec): Ditto.
7391         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7392         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7393         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7394         (create_new_object_hard_regs_node): Ditto.
7395         (add_new_object_hard_regs_node_to_forest): Ditto.
7396         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7397         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7398         Ditto.
7399         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7400         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7401         (remove_unused_object_hard_regs_nodes): Ditto.
7402         (enumerate_object_hard_regs_nodes): Ditto.
7403         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7404         (object_hard_regs_subnode_t): Ditto.
7405         (struct object_hard_regs_subnode): Ditto.
7406         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7407         (setup_object_hard_regs_subnode_index): Ditto.
7408         (get_object_hard_regs_subnodes_num): Ditto.
7409         (form_object_hard_regs_nodes_forest): Ditto.
7410         (finish_object_hard_regs_nodes_tree): Ditto.
7411         (finish_object_hard_regs_nodes_forest): Ditto.
7412         (allocnos_have_intersected_live_ranges_p): Rename to
7413         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7414         (pseudos_have_intersected_live_ranges_p): Rename to
7415         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7416         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7417         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7418         (update_copy_costs): Remove assert.  Skip cost update if the hard
7419         reg does not belong the class.
7420         (assign_hard_reg): Process only profitable hard regs.
7421         (uncolorable_allocnos_num): Make it scalar.
7422         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7423         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7424         and ira_reg_class_max_nregs.
7425         (bucket_allocno_compare_func): Check frequency first.
7426         (sort_bucket): Add compare function as a parameter.
7427         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7428         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7429         (push_allocno_to_stack): Rewrite for checking new allocno
7430         colorability.
7431         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7432         (push_only_colorable): Pass new parameter to sort_bucket.
7433         (push_allocno_to_spill): Remove.
7434         (allocno_spill_priority_compare): Make it inline and rewrite.
7435         (splay_tree_allocate, splay_tree_free): Remove.
7436         (allocno_spill_sort_compare): New function.
7437         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7438         build and use splay tree.  Choose first allocno in uncolorable
7439         allocno bucket to spill.  Remove setting spill cost.
7440         (all_conflicting_hard_regs): Remove.
7441         (setup_allocno_available_regs_num): Check only profitable hard
7442         regs.  Print info about hard regs nodes.
7443         (setup_allocno_left_conflicts_size): Remove.
7444         (put_allocno_into_bucket): Don't call
7445         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7446         (improve_allocation): New.
7447         (color_allocnos): Call setup_profitable_hard_regs,
7448         form_object_hard_regs_nodes_forest, improve_allocation,
7449         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7450         (print_loop_title): Use pressure classes.
7451         (color_allocnso): Ditto.
7452         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7453         and allocnos_for_spilling.
7454         (ira_sort_regnos_for_alter_reg): Don't setup members
7455         {first,next}_coalesced_allocno.
7456         (color): Remove allocating and freeing removed_splay_allocno_vec.
7457         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7458         prohibited_class_mode_regs.
7459
7460         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7461         formatting.
7462         (update_allocno_pressure_excess_length): Use pressure classes.
7463         (inc_register_pressure, dec_register_pressure): Check for pressure
7464         class.
7465         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7466         pressure class.  Use ira_reg_class_nregs instead of
7467         ira_reg_class_max_nregs.
7468         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7469         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7470         (single_reg_class): Use ira_reg_class_nregs instead of
7471         ira_reg_class_max_nregs.
7472         (process_bb_node_lives): Use pressure classes.
7473
7474         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7475         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7476         (change_loop): Use pressure classes.
7477         (modify_move_list): Call ira_set_allocno_class instead of
7478         ira_set_allocno_cover_class.
7479
7480         * ira-build.c: Remove mentioning cover classes from the file.  Use
7481         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7482         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7483         ALLOCNO_UPDATED_CLASS_COST instead of
7484         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7485         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7486         (ira_create_allocno): Remove initialization of
7487         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7488         ALLOCNO_COLORABLE_P.
7489         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7490         Update conflict regs for the objects.
7491         (create_cap_allocno): Remove assert.  Don't propagate
7492         ALLOCNO_AVAILABLE_REGS_NUM.
7493         (ira_free_allocno_costs): New function.
7494         (finish_allocno): Change a part of code into call of
7495         ira_free_allocno_costs.
7496         (low_pressure_loop_node_p): Use pressure classes.
7497         (object_range_compare_func): Don't compare classes.
7498         (setup_min_max_conflict_allocno_ids): Ditto.
7499
7500         * loop-invariant.c: Remove mentioning cover classes from the file.
7501         Use ira_pressure_classes and ira_pressure_classes_num instead of
7502         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7503         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7504         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7505         Use reg_allocno_class instead of reg_cover_class.
7506         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7507         STACK_REG_COVER_CLASS.
7508         (get_regno_cover_class): Rename to get_regno_pressure_class.
7509         (move_loop_invariants): Initialize and finalize regstat.
7510
7511         * ira.c: Remove mentioning cover classes from the file.  Add
7512         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7513         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7514         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7515         setup_class_subset_and_memory_move_costs.
7516         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7517         (setup_cover_and_important_classes): Rename to
7518         setup_allocno_and_important_classes.
7519         (setup_class_translate_array): New.
7520         (setup_class_translate): Call it for allocno and pressure classes.
7521         (cover_class_order): Rename to allocno_class_order.
7522         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7523         of ira_class_translate.
7524         (reorder_important_classes): Set up ira_important_class_nums.
7525         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7526         (print_class_cover): Rename to print_classes.  Add parameter.
7527         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7528         Print pressure classes too.
7529         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7530         setup_reg_subclasses.
7531         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7532         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7533         (setup_prohibited_class_mode_regs): Use
7534         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7535         (clarify_prohibited_class_mode_regs): New function.
7536         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7537         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7538         (ira_init_once): Initialize them.
7539         (free_register_move_costs): Process them.
7540         (ira_init): Move calls of find_reg_classes and
7541         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7542         Call clarify_prohibited_class_mode_regs.
7543         (ira_no_alloc_reg): Remove.
7544         (too_high_register_pressure_p): Use pressure classes.
7545
7546         * sched-deps.c: Remove mentioning cover classes from the file.
7547         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7548         ira_pressure_classes and ira_pressure_classes_num instead of
7549         ira_reg_class_cover_size and ira_reg_class_cover.
7550         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7551         sched_regno_pressure_class instead of sched_regno_cover_class.
7552         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7553         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7554
7555         * ira.h: Add 2010 to Copyright.
7556         (ira_no_alloc_reg): Remove external.
7557         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7558         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7559         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7560         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7561         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7562         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7563         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7564         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7565         x_ira_no_alloc_regs.
7566         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7567         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7568         ira_allocno_classes_num and ira_allocno_classes.
7569         (ira_class_translate): Rename to ira_allocno_class_translate.
7570         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7571         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7572         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7573         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7574         (ira_no_alloc_regs): New.
7575
7576         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7577         classes from the file.  Use ALLOCNO_CLASS instead of
7578         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7579         ALLOCNO_COVER_CLASS_COST.
7580         (regno_cover_class): Rename to regno_aclass.
7581         (record_reg_classes): Use ira_reg_class_subunion instead of
7582         ira_reg_class_union.
7583         (record_address_regs): Check overflow.
7584         (scan_one_insn): Ditto.
7585         (print_allocno_costs): Print total mem cost fore regional allocation.
7586         (print_pseudo_costs): Use REG_N_REFS.
7587         (find_costs_and_classes): Use classes intersected with them on the
7588         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7589         ira_reg_class_union.  Use ira_allocno_class_translate and
7590         regno_aclass instead of ira_class_translate and regno_cover_class.
7591         Modify code for finding regno_aclass.  Setup preferred classes for
7592         the next pass.
7593         (setup_allocno_cover_class_and_costs): Rename to
7594         setup_allocno_class_and_costs.  Use regno_aclass instead of
7595         regno_cover_class.  Use ira_set_allocno_class instead of
7596         ira_set_allocno_cover_class.
7597         (init_costs, finish_costs): Use regno_aclass instead of
7598         regno_cover_class.
7599         (ira_costs): Use setup_allocno_class_and_costs instead of
7600         setup_allocno_cover_class_and_costs.
7601         (ira_tune_allocno_costs_and_cover_classes): Rename to
7602         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7603         by processing objects.  Use ira_reg_class_max_nregs instead of
7604         ira_reg_class_nregs.
7605
7606         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7607
7608         * sched-int.h: Remove mentioning cover classes from the file.
7609         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7610
7611         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
7612         classes from the file.
7613         (struct reg_pref): Rename coverclass into allocnoclass.
7614         (reg_cover_class): Rename to reg_allocno_class.
7615
7616         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
7617
7618         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7619
7620         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7621
7622         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7623
7624         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7625
7626         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7627
7628         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7629
7630         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7631
7632         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7633
7634         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7635
7636         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7637         (i386_ira_cover_classes): Ditto.
7638
7639         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7640
7641         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7642
7643         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7644
7645         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7646
7647         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7648
7649         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7650
7651         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7652         (mips_ira_cover_classes): Ditto.
7653
7654         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7655
7656         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7657
7658         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7659
7660         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7661
7662         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7663
7664         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7665         (IRA_COVER_CLASSES_VSX): Ditto.
7666
7667         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7668         (rs6000_ira_cover_classes): Ditto.
7669
7670         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7671
7672         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7673
7674         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7675
7676         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7677
7678         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7679
7680         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7681
7682         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7683
7684         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7685
7686         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7687
7688         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7689
7690 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7691
7692         PR debug/48253
7693         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7694         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7695         dw_fde_unlikely_section_end_label, cold_in_std_section,
7696         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7697         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7698         fields.
7699         (output_fde): Use dw_fde_second_{begin,end} if second is
7700         true, otherwise dw_fde_{begin,end}.
7701         (output_call_frame_info): Test dw_fde_second_begin != NULL
7702         instead of dw_fde_switched_sections.
7703         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7704         fields, initialize new fields.  Initialize in_std_section
7705         unconditionally from the first partition.
7706         (dwarf2out_end_epilogue): Don't override dw_fde_end when
7707         dw_fde_second_begin is non-NULL.
7708         (dwarf2out_switch_text_section): Stop initializing removed
7709         dw_fde_struct fields, initialize new fields, initialize
7710         also dw_fde_end here.  Set dw_fde_switch_cfi even when
7711         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
7712         (struct var_loc_list_def): Add last_before_switch field.
7713         (arange_table, arange_table_allocated, arange_table_in_use,
7714         ARANGE_TABLE_INCREMENT, add_arange): Removed.
7715         (size_of_aranges): Count !in_std_section and !second_in_std_section
7716         hunks in fdes, instead of looking at arange_table_in_use.
7717         (output_aranges): Add aranges_length argument, don't call
7718         size_of_aranges here.  Instead of using aranges_table*
7719         emit ranges for fdes when !in_std_section resp.
7720         !second_in_std_section.
7721         (dw_loc_list): Break ranges crossing section switch.
7722         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
7723         use dw_fde_second_end instead of dw_fde_end as end of last range.
7724         (gen_subprogram_die): Don't call add_arange.  Use
7725         dw_fde_{begin,end} for first partition and if switched
7726         section dw_fde_second_{begin,end} for the second.
7727         (var_location_switch_text_section_1,
7728         var_location_switch_text_section): New functions.
7729         (dwarf2out_begin_function): Initialize cold_text_section even
7730         when function_section () isn't text_section.
7731         (prune_unused_types): Don't walk arange_table.
7732         (dwarf2out_finish): Don't needlessly test
7733         flag_reorder_blocks_and_partition when testing cold_text_section_used.
7734         If info_section_emitted, call size_of_aranges and if it indicates
7735         non-empty .debug_aranges, call output_aranges with the computed
7736         size.  Stop using removed dw_fde_struct fields, use
7737         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7738         for second.
7739
7740         PR debug/48203
7741         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7742         create ENTRY_VALUE if incoming or address of incoming's MEM
7743         is a hard REG.
7744         * dwarf2out.c (mem_loc_descriptor): Don't emit
7745         DW_OP_GNU_entry_value of DW_OP_fbreg.
7746         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7747         on ENTRY_VALUE is able to find the canonical parameter VALUE.
7748         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7749         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7750         ENTRY_VALUE_EXPs.
7751         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7752         is a REG_P or MEM_P with REG_P address, compute hash directly
7753         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7754         (preserve_only_constants): Don't clear VALUES forwaring
7755         ENTRY_VALUE to some other VALUE.
7756
7757 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
7758
7759         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7760         instead of GEN_INT.
7761
7762 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7763
7764         * cfgexpand.c (expand_gimple_cond): Always set the source location and
7765         block before expanding the statement.
7766         (expand_gimple_stmt_1): Likewise.  Set them here...
7767         (expand_gimple_stmt): ...and not here.  Tidy.
7768         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7769         unknown.
7770
7771 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7772
7773         * Makefile.in: New rule for cprop.o.
7774         * gcse.c: Move constant/copy propagation to cprop.c.
7775         (compute_local_properties): Only handle expression tables.
7776         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7777         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7778         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7779         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7780         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
7781         compute_cprop_data, find_used_regs, try_replace_reg,
7782         find_avail_set, cprop_jump, constprop_register, cprop_insn,
7783         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7784         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7785         find_bypass_set, reg_killed_on_edge, bypass_block,
7786         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7787         execute_rtl_cprop, pass_rtl_cprop): Move to...
7788         * cprop.c: ...here.  New file, constant/copy propagation for RTL
7789         moved from gcse.c to here with minor cleanups in duplicated code.
7790
7791 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7792
7793         * config/i386/i386.c (flag_opts): Fix a typo in
7794         -mavx256-split-unaligned-store.
7795
7796 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7797
7798         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7799         LIBCALL_VALUE): Remove macros.
7800         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7801         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7802         (h8300_function_value, h8300_libcall_value,
7803         h8300_function_value_regno_p): New functions.
7804
7805 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7806
7807         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7808
7809 2011-03-28  Jeff Law  <law@redhat.com>
7810
7811         * tree-ssa-threadupdate.c (redirect_edges): Call
7812         create_edge_and_update_destination_phis as needed.
7813         (create_edge_and_update_destination_phis): Accept new BB argument.
7814         All callers updated.
7815         (thread_block): Do not update the profile when threading around
7816         intermediate blocks.
7817         (thread_single_edge): Likewise.
7818         (determine_bb_domination_status): If BB is not a successor of the
7819         loop header, return NONDOMINATING.
7820         (register_jump_thread): Note when we register a jump thread around
7821         an intermediate block.
7822         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7823         (thread_across_edge): Use it.
7824
7825 2011-03-28  Tristan Gingold  <gingold@adacore.com>
7826
7827         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7828         when for_return is 2.
7829
7830 2011-03-28  Jeff Law  <law@redhat.com>
7831
7832         * var-tracking.c (canonicalize_values_mark): Delete unused
7833         lhs assignment.
7834         (canonicalize_values_star, set_variable_part): Likewise.
7835         (clobber_variable_part, delete_variable_part): Likewise.
7836
7837 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7838
7839         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7840
7841 2011-03-28  Martin Jambor  <mjambor@suse.cz>
7842
7843         * tree-inline.c (expand_call_inline): Do not check that destination
7844         node is analyzed.
7845         (optimize_inline_calls): Assert that destination node is analyzed.
7846         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7847         not call tree_lowering_passes.
7848         * cgraph.h (cgraph_analyze_function): Declare.
7849         * cgraphunit.c (cgraph_analyze_function): Make public.
7850
7851 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
7852
7853         * config/sparc/sparc-opts.h: New.
7854         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7855         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7856         (sparc_option_override): Store processor_type enumeration rather
7857         than string in cpu_default.  Remove name and enumeration from
7858         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
7859         without using sparc_select.  Use target_flags_explicit instead of
7860         fpu_option_set.
7861         * config/sparc/sparc.h (enum processor_type): Move to
7862         sparc-opts.h.
7863         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7864         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7865         HeaderInclude entry.
7866         (mcpu=, mtune=): Use Var and Enum.
7867         (sparc_processor_type): New Enum and EnumValue entries.
7868
7869 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7870             Iain Sandoe  <iains@gcc.gnu.org>
7871
7872         PR target/48245
7873         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7874
7875 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7876
7877         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7878         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7879         Insert new statements at it in lieu of STMT.
7880         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7881         * tree-vect-stmts.c (vectorizable_store): Likewise.
7882         (vectorizable_load): Likewise.
7883
7884 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
7885
7886         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7887         (divtf3): Ditto.
7888         (multf3): Ditto.
7889         (subtf3): Ditto.
7890
7891 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7892
7893         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7894         unaligned 256bit load/store.
7895         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7896         (*avx_movdqu<avxmodesuffix>): Likewise.
7897
7898 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7899
7900         PR target/48288
7901         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7902         * config/pa/pa.md (iordi3): Use new predicate in expander.
7903         (iorsi3): Likewise.
7904
7905 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
7906
7907         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
7908         FUNCTION_VALUE_REGNO_P): Remove macros.
7909         * config/mips/mips-protos.h (mips_function_value): Remove.
7910         * config/mips/mips.c (mips_function_value): Rename to...
7911         (mips_function_value_1): ... this. Make static.  Handle receiving
7912         the function type in 'fn_decl_or_type' argument.
7913         (mips_function_value, mips_libcall_value,
7914         mips_function_value_regno_p): New function.
7915         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7916         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7917
7918 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7919
7920         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7921         and -mavx256-split-unaligned-store.
7922         (ix86_option_override_internal): Split 32-byte AVX unaligned
7923         load/store by default.
7924         (ix86_avx256_split_vector_move_misalign): New.
7925         (ix86_expand_vector_move_misalign): Use it.
7926
7927         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7928         -mavx256-split-unaligned-store.
7929
7930         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7931         256bit load/store.  Generate unaligned store on misaligned memory
7932         operand.
7933         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7934         256bit load/store.
7935         (*avx_movdqu<avxmodesuffix>): Likewise.
7936
7937         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
7938         -mavx256-split-unaligned-store.
7939
7940 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7941
7942         PR target/38598
7943         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
7944         Update commentary.
7945
7946 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7947
7948         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
7949         opno arguments with an expand_operand.  Use create_input_operand.
7950         (mips_prepare_builtin_target): Delete.
7951         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
7952         functions.
7953         (mips_expand_builtin_direct): Use create_output_operand and
7954         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
7955         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
7956         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
7957
7958 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
7959
7960         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
7961         function.
7962         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7963
7964 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7965
7966         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
7967         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
7968         basic blocks and call commit_edge_insertions directly.
7969         (fixup_abnormal_edges): Move from here to...
7970         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
7971         on the edges and return whether some have actually been inserted.
7972         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
7973         compensation code.
7974
7975 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
7976
7977         PR rtl-optimization/48144
7978         * sel-sched-ir.c (merge_history_vect): Factor out from ...
7979         (merge_expr_data): ... here.
7980         (av_set_intersect): Rename to av_set_code_motion_filter.
7981         Update all callers.  Call merge_history_vect when an expression
7982         is found in both sets.
7983         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
7984
7985 2011-03-26  Alan Modra  <amodra@gmail.com>
7986
7987         * config/rs6000/predicates.md (word_offset_memref_op): Handle
7988         cmodel medium addresses.
7989         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
7990         64-bit gpr loads and stores.
7991         (rs6000_secondary_reload_ppc64): New function.
7992         * config/rs6000/rs6000-protos.h: Declare it.
7993         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
7994
7995 2011-03-26  Alan Modra  <amodra@gmail.com>
7996
7997         PR target/47487
7998         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
7999         GNU Go in traceback table.
8000
8001 2011-03-25  Richard Henderson  <rth@redhat.com>
8002
8003         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8004         if there are exactly 6 operands.
8005         (set_storage_via_setmem): Similarly.
8006
8007 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8008
8009         * collect2.c (write_c_file_stat): Handle backslash
8010         as right-hand directory separator.
8011         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8012         checking just for slash.
8013         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8014         instead of checking for trailing slash.
8015         * gcc.c (record_temp_file): Use filename_cmp instead
8016         of strcmp.
8017         (do_spec_1): Likewise.
8018         (replace_outfile_spec_function): Likewise.
8019         (is_directory): Use filename_ncmp instead of strncmp.
8020         (print_multilib_info): Likewise.
8021         * gcov.c (find_source): Use filename_cmp instead
8022         instead of strcmp.
8023         (make_gcov_file_name): Fix order of slash/backslash
8024         checks.
8025         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8026         (add_standard_paths): Likewise.
8027         * mips-tfile.c (saber_stop): Handle backslash.
8028         * prefix.c (update_path): Use filename_ncmp instead of
8029         strncmp.
8030         * profile.c (output_location): Use filename_cmp instead
8031         of strcmp.
8032         * read-md.c (handle_toplevel_file): Handle backslash.
8033         * tlink.c (frob_extension):  Likewise.
8034         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8035         strcmp.
8036         * tree-dump.c (dequeue_and_dump): Handle backslash.
8037         * tree.c (get_file_function_name): Likewise.
8038         * gengtype.c (read_input_list): Likewise.
8039         (get_file_realbasename): Likewise.
8040         (get_output_file_with_visibility): Use filename_cmp
8041         instead of strcmp.
8042
8043 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8044
8045         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8046         case to VFPv1.
8047
8048 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8049
8050         * fold-const.c (expr_location_or): New function.
8051         (fold_truth_not_expr): Call it.
8052
8053 2011-03-25  Jeff Law  <law@redhat.com>
8054
8055         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8056         va_end.
8057         * c-family/c-common.c (def_fn_type): Likewise.
8058         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8059         * emit-rtl.c (gen_rtvec): Likewise.
8060         * lto/lto-lang.c (def_fn_type): Likewise.
8061
8062 2011-03-25  Richard Guenther  <rguenther@suse.de>
8063
8064         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8065         also generate copies.
8066         (fini_copy_prop): Handle constant values properly.
8067
8068 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8069
8070         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8071         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8072         (hash_loc_operands, compare_loc_operands): Handle
8073         DW_OP_GNU_entry_value.
8074
8075 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8076
8077         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8078         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8079         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8080         comment and use macro TARGET_64BIT_MS_ABI instead.
8081         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8082         and change default behavior for 32-bit MS_ABI.
8083         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8084         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8085         32-bit, too.
8086         (ix86_cfun_abi): Likewise.
8087         (ix86_maybe_switch_abi): Adjust comment.
8088         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8089         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8090         instead of checking for SYSV_ABI.
8091         (ix86_nsaved_sseregs): Likewise.
8092         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8093         to 16 bytes.
8094         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8095         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8096         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8097         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8098         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8099
8100 2011-03-25  Richard Guenther  <rguenther@suse.de>
8101
8102         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8103         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8104         (verify_gimple): Remove.
8105         * tree-cfg.c (verify_gimple_call): Merge verification
8106         from verify_stmts.
8107         (verify_gimple_phi): Merge verification from verify_stmts.
8108         (verify_gimple_label): New function.
8109         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8110         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8111         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8112         (verify_stmts): Rename to verify_gimple_in_cfg.
8113         (verify_gimple_in_cfg): New function.
8114         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8115         * tree-ssa.c (verify_ssa): Likewise.
8116         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8117
8118 2011-03-25  Richard Guenther  <rguenther@suse.de>
8119
8120         * passes.c (init_optimization_passes): Add FRE pass after
8121         early SRA.
8122
8123 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8124             Andrew Stubbs  <ams@codesourcery.com>
8125
8126         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8127         for Cortex-A8.
8128         (arm_movdi_vfp_cortexa8): New pattern.
8129         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8130         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8131         instructions when tuning for Cortex-A8.  Set attribute "arch".
8132         * config/arm/arm.md: Move include arm-tune.md up a bit.
8133         (define_attr "arch"): Add "onlya8" and "nota8" values.
8134         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8135
8136 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8137
8138         PR bootstrap/48282
8139         Revert:
8140         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8141
8142         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8143         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8144         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8145         * passes.c (init_optimization_passes): Move
8146         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8147
8148 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8149
8150         * c-typeck.c (comptypes_internal): Replace target
8151         hook call of comp_type_attributes by version in tree.c file.
8152         * gimple.c (gimple_types_compatible_p_1): Likewise.
8153         * tree-ssa.c (useless_type_conversion_p): Likewise.
8154         * tree.c (build_type_attribute_qual_variant): Likewise.
8155         (attribute_value_equal): New static helper function.
8156         (comp_type_attributes): New function.
8157         (merge_attributes): Use attribute_value_equal for comparison.
8158         (attribute_list_contained): Likewise.
8159         * tree.h (comp_type_attributes): New prototype.
8160
8161 2011-03-25  Richard Guenther  <rguenther@suse.de>
8162
8163         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8164         of complex types at -O0.
8165         (verify_gimple_assign_binary): Likewise.
8166         (verify_gimple_assign_ternary): Likewise.
8167
8168 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8169
8170         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8171         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8172
8173 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8174
8175         PR debug/48041
8176         * dwarf2out.c (output_abbrev_section): Only write table when
8177         abbrev_die_table_in_use > 1.
8178
8179 2011-02-24  Richard Henderson  <rth@redhat.com>
8180
8181         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8182         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8183         (alpha_expand_unaligned_load_words): Use extql.
8184         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8185         (emit_insxl): Handle all modes for consistency.
8186
8187 2011-02-24  Richard Henderson  <rth@redhat.com>
8188
8189         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8190         (alpha_expand_unaligned_load): Likewise.
8191         (alpha_expand_unaligned_store): Likewise.
8192         (alpha_expand_unaligned_load_words): Likewise.
8193         (alpha_expand_unaligned_store_words): Likewise.
8194         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8195         (alpha_split_lock_test_and_set_12): Likewise.
8196         (print_operand, alpha_fold_builtin_extxx): Likewise.
8197         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8198         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8199         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8200         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8201         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8202         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8203         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8204         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8205         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8206         (extwl, extll, extql): Similarly.
8207         (inswh, inslh, insqh): Similarly.
8208         (mskbl, mskwl, mskll, mskql): Similarly.
8209         (mskwh, msklh, mskqh): Similarly.
8210
8211 2011-02-24  Richard Henderson  <rth@redhat.com>
8212
8213         * config/alpha/alpha.md (attribute isa): Add er, ner.
8214         (attribute enabled): Handle them.
8215         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8216
8217 2011-02-24  Richard Henderson  <rth@redhat.com>
8218
8219         * config/alpha/alpha.md (attribute isa): Add vms.
8220         (attribute enabled): Handle it.
8221         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8222         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8223         (*movtf): Rename from *movtf_internal for consistency.
8224         (*movsi): Merge with *movsi_nt_vms.
8225         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8226         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8227         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8228         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8229
8230 2011-02-24  Richard Henderson  <rth@redhat.com>
8231
8232         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8233         (extendqisi2, extendhisi2): Likewise.
8234         (extendqidi2): Simplify BWX/non-BWX expansions.
8235         (extendhidi2): Similarly.
8236
8237 2011-02-24  Richard Henderson  <rth@redhat.com>
8238
8239         * config/alpha/alpha.md (attribute isa): New.
8240         (attribute enabled): New.
8241         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8242         (zero_extendqisi2, zero_extendqidi2): Similarly.
8243         (zero_extendhisi2, zero_extendhidi2): Similarly.
8244         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8245
8246 2011-02-24  Richard Henderson  <rth@redhat.com>
8247
8248         * config/alpha/predicates.md (input_operand): Revert last change;
8249         update comment to mention 32-bit VMS rather than Windows.
8250
8251 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8252
8253         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8254         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8255         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8256         * passes.c (init_optimization_passes): Move
8257         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8258
8259 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8260
8261         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8262
8263 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8264
8265         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8266         correctly.
8267
8268 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8269
8270         PR debug/48204
8271         * simplify-rtx.c (simplify_const_unary_operation): Call
8272         real_convert when changing mode class with FLOAT_EXTEND.
8273
8274 2011-03-24  Nick Clifton  <nickc@redhat.com>
8275
8276         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8277         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8278         * config/rx/rx.c (rx_option_override): Set align_jumps,
8279         align_loops and align_labels if not set by the user.
8280         (rx_align_for_label): New function.
8281         (rx_max_skip_for_label): New function.
8282         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8283         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8284         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8285         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8286         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8287
8288 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8289
8290         PR rtl-optimization/48263
8291         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8292         and original commutative_p handling.  Use maybe_gen_insn.
8293
8294 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8295
8296         * reload.c (find_reloads_subreg_address): Add address_reloaded
8297         parameter and return true there if the full address has been
8298         reloaded.
8299         (find_reloads_toplev): Pass address_reloaded flag.
8300         (find_reloads_address_1): Don't use address_reloaded parameter.
8301
8302 2011-03-24  Jeff Law  <law@redhat.com>
8303
8304         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8305         unused variable "ann".
8306         (remove_unused_locals): Likewise.
8307
8308         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8309         statement.
8310
8311         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8312         after it is freed.
8313
8314 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8315
8316         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8317         for invalid symbolic addresses.
8318         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8319         larl operands.
8320
8321 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8322
8323         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8324         the argument in calls to fold_truth_not_expr.
8325
8326 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8327
8328         * tree.c (record_node_allocation_statistics): New function.
8329         (make_node_stat, copy_node_stat, build_string): Call it.
8330         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8331         (build1_stat, build_omp_clause): Likewise.
8332
8333 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8334
8335         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8336         last commit.
8337
8338 2011-03-24  Richard Guenther  <rguenther@suse.de>
8339
8340         PR tree-optimization/48271
8341         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8342         blocks that still exist.
8343
8344 2011-03-24  Richard Guenther  <rguenther@suse.de>
8345
8346         PR tree-optimization/48270
8347         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8348         not free datarefs before ddrs.
8349
8350 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8351
8352         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8353         from the address built for a reference with variable offset.
8354
8355 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8356
8357         PR target/48237
8358         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8359         alternatives that can be handled with movq or movabsq insn.
8360         (*movdf_internal): Disable for !TARGET_64BIT.
8361         (*movdf_internal_nointeger): Ditto.
8362         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8363
8364 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8365
8366         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8367         (FUNCTION_ARG_ADVANCE): Likewise.
8368         * tm.texi.in: Change references to them to hook references.
8369         * tm.texi: Regenerate.
8370         * targhooks.c (default_function_arg): Eliminate check for target macro.
8371         (default_function_incoming_arg): Likewise.
8372         (default_function_arg_advance): Likewise.
8373         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8374         (function_arg_advance): Likewise.
8375         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8376
8377 2011-03-24  Richard Guenther  <rguenther@suse.de>
8378
8379         PR middle-end/48269
8380         * tree-object-size.c (addr_object_size): Do not double-account
8381         for MEM_REF offsets.
8382
8383 2011-03-24  Diego Novillo  <dnovillo@google.com>
8384
8385         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8386         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8387         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8388         Update all users.
8389         (lto_input_string): Rename from input_string.  Make extern.
8390         Update all users.
8391         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8392         output_string_with_length.
8393         Output 0 to indicate a non-NULL string.  Update all callers to
8394         not emit 0.
8395         (lto_output_string): Rename from output_string.  Make extern.
8396         Update all users.
8397         (lto_output_decl_state_streams): Make extern.
8398         (lto_output_decl_state_refs): Make extern.
8399         * lto-streamer.h (lto_input_string): Declare.
8400         (lto_input_data_block): Declare.
8401         (lto_output_string): Declare.
8402         (lto_output_string_with_length): Declare.
8403         (lto_output_decl_state_streams): Declare.
8404         (lto_output_decl_state_refs): Declare.
8405
8406 2011-03-24  Richard Guenther  <rguenther@suse.de>
8407
8408         PR tree-optimization/46562
8409         * tree.c (build_invariant_address): New function.
8410         * tree.h (build_invariant_address): Declare.
8411         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8412         a renamed function moved ...
8413         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8414         Take valueization callback parameter.
8415         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8416         * gimple-fold.h: New file.
8417         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8418         (ccp_fold, fold_const_aggregate_ref,
8419         fold_ctor_reference, fold_nonarray_ctor_reference,
8420         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8421         get_base_constructor): Move ...
8422         * gimple-fold.c: ... here.
8423         (gimple_fold_stmt_to_constant_1): New function
8424         split out from ccp_fold.  Take a valueization callback parameter.
8425         Valueize all operands.
8426         (gimple_fold_stmt_to_constant): New wrapper function.
8427         (fold_const_aggregate_ref_1): New function split out from
8428         fold_const_aggregate_ref.  Take a valueization callback parameter.
8429         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8430         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8431         invariant POINTER_PLUS_EXPRs to invariant form.
8432         (vn_valueize): New function.
8433         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8434         * tree-vrp.c (vrp_valueize): New function.
8435         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8436         to fold statements to constants.
8437         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8438         function declarations.
8439         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8440         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8441
8442 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8443
8444         * config/h8300/predicates.md (jump_address_operand): Fix register
8445         mode check.
8446
8447 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8448
8449         * doc/invoke.texi (max-stores-to-sink): Document.
8450         * params.h (MAX_STORES_TO_SINK): Define.
8451         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8452         if either vectorization or if-conversion is disabled.
8453         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8454         tree-vect-data-refs.c vect_equal_offsets.
8455         (dr_equal_offsets_p): New function.
8456         (find_data_references_in_bb): Remove static.
8457         * tree-data-ref.h (find_data_references_in_bb): Declare.
8458         (dr_equal_offsets_p): Likewise.
8459         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8460         (vect_drs_dependent_in_basic_block): Update calls to
8461         vect_equal_offsets.
8462         (vect_check_interleaving): Likewise.
8463         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8464         (cond_if_else_store_replacement): Rename to...
8465         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8466         documentation.
8467         (cond_if_else_store_replacement): New function.
8468         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8469         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8470
8471 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8472
8473         PR target/46934
8474         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8475         to subtract lower bound instead of GEN_INT().
8476
8477 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8478
8479         PR other/48179
8480         PR other/48221
8481         PR other/48234
8482         * doc/extend.texi (Alignment): Move section to match order in TOC.
8483         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8484         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8485
8486 2011-03-23  Jeff Law  <law@redhat.com>
8487
8488         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8489         before removing the edge.
8490
8491         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8492         it may have been freed by redirect_branch_edge or
8493         redirect_edge_succ_nodup.
8494
8495 2011-03-23  Richard Guenther  <rguenther@suse.de>
8496
8497         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8498         (check_va_list_escapes): Likewise.
8499         (check_all_va_list_escapes): Likewise.
8500
8501 2011-03-23  Richard Guenther  <rguenther@suse.de>
8502
8503         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8504         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8505         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8506         (alias.o): Likewise.
8507         (ipa-type-escape.o): Remove.
8508         (ipa-struct-reorg.o): Likewise.
8509         (GTFILES): Remove ipa-struct-reorg.c.
8510         * alias.c: Do not include ipa-type-escape.h.
8511         * tree-ssa-alias.c: Likewise.
8512         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8513         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8514         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8515         and ipa-type-escape passes.
8516         * tree-pass.h (pass_ipa_type_escape): Remove.
8517         (pass_ipa_struct_reorg): Likewise.
8518         * ipa-struct-reorg.h: Remove.
8519         * ipa-struct-reorg.c: Likewise.
8520         * ipa-type-escape.h: Likewise.
8521         * ipa-type-escape.c: Likewise.
8522         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8523         (--param struct-reorg-cold-struct-ratio): Likewise.
8524         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8525         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8526         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8527
8528 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8529
8530         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8531         cpu attribute value.
8532         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8533         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8534         * config/s390/s390.c (processor_flags_table): New constant array.
8535         (s390_handle_arch_option): Remove.
8536         (s390_handle_option): Remove s390_handle_arch_option invocations
8537         and OPT_mwarn_framesize_ handling.
8538         (s390_option_override): Remove s390_handle_arch_option invocation.
8539         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8540         warnings.
8541         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8542         * config/s390/s390.opt (s390_tune, s390_arch)
8543         (march=): Replace s390_arch_option enum and values with
8544         processor_type.  Set variable name to s390_arch.  Set
8545         initialization value.
8546         (mtune=): Replace s390_arch_option with processor_type.  Set
8547         variable name to s390_tune.  Set initialization value.
8548
8549 2011-03-23  Julian Brown  <julian@codesourcery.com>
8550
8551         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8552         accesses which are not naturally aligned.
8553
8554 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8555
8556         PR target/47553
8557         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8558
8559 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8560
8561         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8562         parameter from "int" to "enum insn_code".
8563         (expand_operand_type): New enum.
8564         (expand_operand): New structure.
8565         (create_expand_operand): New function.
8566         (create_fixed_operand, create_output_operand): Likewise
8567         (create_input_operand, create_convert_operand_to): Likewise.
8568         (create_convert_operand_from, create_address_operand): Likewise.
8569         (create_integer_operand): Likewise.
8570         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8571         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8572         (expand_insn, expand_jump_insn): Likewise.
8573         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8574         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8575         (expand_movstr, expand_builtin___clear_cache): Likewise.
8576         (expand_builtin_lock_release): Likewise.
8577         * explow.c (allocate_dynamic_stack_space): Likewise.
8578         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8579         and use the default handling in that case.
8580         * expmed.c (check_predicate_volatile_ok): Delete.
8581         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8582         (emit_cstore): Likewise.
8583         * expr.c (emit_block_move_via_movmem): Likewise.
8584         (set_storage_via_setmem, expand_assignment): Likewise.
8585         (emit_storent_insn, try_casesi): Likewise.
8586         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8587         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8588         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8589         (expand_twoval_unop, expand_twoval_binop): Likewise.
8590         (expand_unop_direct, emit_indirect_jump): Likewise.
8591         (emit_conditional_move, vector_compare_rtx): Likewise.
8592         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8593         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8594         (expand_sync_lock_test_and_set): Likewise.
8595         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8596         (emit_unop_insn): Likewise.
8597         (expand_copysign_absneg): Change icode to an insn_code.
8598         (create_convert_operand_from_type): New function.
8599         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8600         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8601         (expand_insn, expand_jump_insn): Likewise.
8602         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8603         than const_int_operand for operand 2.
8604
8605 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8606
8607         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8608         if possible.
8609
8610 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8611
8612         * emit-rtl.c (emit_pattern_before_noloc): New function.
8613         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8614         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8615         (emit_pattern_after_noloc): New function.
8616         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8617         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8618
8619 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8620
8621         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8622         (__ffsDI2): Likewise.
8623
8624 2011-03-22  Richard Henderson  <rth@redhat.com>
8625
8626         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8627         of !TARGET_ABI_OPEN_VMS.
8628         (alpha_trampoline_init, alpha_start_function): Likewise.
8629         (alpha_expand_epilogue, alpha_file_start): Likewise.
8630         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8631         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8632         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8633         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8634         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8635
8636 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8637
8638         * config/s390/s390-opts.h: New.
8639         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8640         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8641         s390_stack_guard): Remove.
8642         (s390_handle_arch_option): Return void.  Take enum
8643         s390_arch_option value instead of string and searching array.
8644         (s390_handle_option): Don't assert that global structures are in
8645         use.  Access variables via opts pointer.  Use error_at.  Don't use
8646         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8647         s390_handle_arch_option.
8648         (s390_option_override): Update call to s390_handle_arch_option.
8649         (s390_emit_prologue): Use %d format for s390_stack_size in
8650         diagnostic.  Use %wd for HOST_WIDE_INT.
8651         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8652         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8653         * config/s390/s390.opt (config/s390/s390-opts.h): New
8654         HeaderInclude entry.
8655         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8656         s390_arch_flags, s390_warn_framesize): New Variable entries.
8657         (s390_arch_option): New Enum and EnumValue entries.
8658         (march=): Use Enum instead of Var.
8659         (mstack-guard=, mstack-size=): Use UInteger and Var.
8660         (mtune=): Use Enum.
8661
8662 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8663
8664         * config/score/score.c (score_handle_option): Don't assert that
8665         global structures are in use.  Access target_flags via opts
8666         pointer.  Use value of -march= option to determine target_flags
8667         settings.
8668         * config/score/score.opt (march=): Use Enum.
8669         (score_arch): New Enum and EnumValue entries.
8670
8671 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8672
8673         * config/mep/mep.c (option_mtiny_specified): Remove.
8674         (mep_option_override): Move register handling for -mivc2 from
8675         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
8676         instead of option_mtiny_specified.
8677         (mep_handle_option): Access target_flags via opts pointer.  Don't
8678         assert that global structures are in use.  Defer part of -mivc2
8679         handling and move it to mep_option_override.
8680         * config/mep/mep.opt (IVC2): New Mask entry.
8681         (mivc2): Use Var and Defer instead of Mask.
8682
8683 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8684
8685         * config/v850/v850-opts.h: New.
8686         * config/v850/v850.c (small_memory): Replace with
8687         small_memory_physical_max array.  Make that array static const.
8688         (v850_handle_memory_option): Take integer value of argument.  Take
8689         gcc_options pointer, option text and location.  Return void.
8690         Update for changes to small memory structures.
8691         (v850_handle_option): Access target_flags via opts pointer.  Don't
8692         assert that global structures are in use.  Update calls to
8693         v850_handle_memory_option.
8694         (v850_encode_data_area): Update references to small memory settings.
8695         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
8696         (enum small_memory_type): Move to v850-opts.h.
8697         * config/v850/v850.opt (config/v850/v850-opts.h): New
8698         HeaderInclude entry.
8699         (small_memory_max): New Variable entry.
8700         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
8701         (mtda, mzda): Likewise.
8702
8703 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8704
8705         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8706         pointer.  Don't assert that global structures are in use.
8707
8708 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8709
8710         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8711         via opts pointer.  Don't assert that global structures are in use.
8712
8713 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8714
8715         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8716         (munix=93): Use Var.
8717         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8718         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8719         * config/pa/pa-opts.h: New.
8720         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8721         (pa_handle_option): Don't assert that global structures are in
8722         use.  Access target_flags via opts pointer.  Don't handle
8723         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8724         OPT_munix_98 here.
8725         (pa_option_override): Handle deferred OPT_mfixed_range_.
8726
8727 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8728
8729         * config/mn10300/mn10300-opts.h: New.
8730         * config/mn10300/mn10300.c (mn10300_processor,
8731         mn10300_tune_string): Remove.
8732         (mn10300_handle_option): Don't assert that global structures are
8733         in use.  Access mn10300_processor via opts pointer.  Don't handle
8734         OPT_mtune_ here.
8735         * config/mn10300/mn10300.h (enum processor_type): Move to
8736         mn10300-opts.h.
8737         (mn10300_processor): Remove.
8738         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8739         HeaderInclude entry.
8740         (mn10300_processor): New Variable entry.
8741         (mtune=): Use Var.
8742
8743 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8744
8745         * config/microblaze/microblaze.c: Don't include opts.h.
8746         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8747         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8748         (mno-clearbss): Use Var and Warn.
8749
8750 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8751
8752         * config/m32r/m32r-opts.h: New.
8753         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8754         (m32r_handle_option): Don't assert that global structures are in
8755         use.  Access target_flags and m32r_cache_flush_func via opts
8756         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
8757         OPT_mno_flush_trap here.
8758         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8759         include of m32r-opts.h.
8760         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8761         HeaderInclude entry.
8762         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8763         (mmodel=): Use Enum and Var.
8764         (m32r_model): New Enum and EnumValue entries.
8765         (mno-flush-trap): Use Var.
8766         (msdata=): Use Enum and Var.
8767         (m32r_sdata): New Enum and EnumValue entries.
8768
8769 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8770
8771         * config/m32c/m32c.c: Don't include opts.h.
8772         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8773         m32c_handle_option): Remove.
8774         (m32c_option_override): Check global_options_set.x_target_memregs
8775         instead of target_memregs_set.
8776         * config/m32c/m32c.h (target_memregs): Remove.
8777         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8778         variable.
8779
8780 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8781
8782         * config/iq2000/iq2000-opts.h: New.
8783         * config/iq2000/iq2000.c: Don't include opts.h.
8784         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
8785         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
8786         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8787         HeaderInclude entry.
8788         (iq2000_tune): New Variable entry.
8789         (march=): Add comment.  Use Enum.
8790         (iq2000_arch): New Enum and EnumValue entries.
8791         (mcpu=): Use Enum and Var.
8792         (iq2000_tune): New Enum and EnumValue entries.
8793
8794 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8795
8796         * config/ia64/ia64-opts.h: New.
8797         * config/ia64/ia64.c (ia64_tune): Remove.
8798         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8799         here.  Use error_at.
8800         (ia64_option_override): Handle deferred OPT_mfixed_range_.
8801         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8802         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8803         HeaderInclude entry.
8804         (ia64_tune): New Variable entry.
8805         (mfixed-range=): Use Defer and Var.
8806         (mtune=): Use Enum and Var.
8807         (ia64_tune): New Enum and EnumValue entries.
8808
8809 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8810
8811         * config/frv/frv-opts.h: New.
8812         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8813         frv-opts.h.
8814         (frv_cpu_type): Remove.
8815         * config/frv/frv.c: Don't include opts.h.
8816         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
8817         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
8818         (frv_cpu_type): New Variable entry.
8819         (frv_cpu): New Enum and EnumValue entries.
8820
8821 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8822
8823         * config/cris/cris.c (cris_handle_option): Access target_flags via
8824         opts pointer.  Don't assert that global structures are in use.
8825         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8826         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8827
8828 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8829
8830         * config/bfin/bfin-opts.h: New.
8831         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8832         bfin_si_revision, bfin_workarounds): Remove.
8833         (bfin_cpus): Make static const.
8834         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8835         not bfin_lib_id_given.
8836         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
8837         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
8838         pointer. Use error_at.  Don't assert that global structures are in use.
8839         * config/bfin/bfin.h: Include bfin-opts.h.
8840         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8841         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8842         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8843         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8844         entries.
8845
8846 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8847
8848         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8849         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8850         or -msoft-float here.
8851         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8852         -msoft-float and -mhard-float.
8853         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
8854         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8855         msoft-float.
8856         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8857         -msoft-float.
8858         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8859         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8860         not mhard-float.
8861         (LIBGCC_SPEC): Don't handle -msoft-float.
8862         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8863         -mhard-float.
8864         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8865         msoft-float.
8866         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8867         -mfloat-abi=*, not -msoft-float and -mhard-float.
8868         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8869         -msoft-float.
8870         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8871         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8872         mhard-float and msoft-float.
8873         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8874         mfloat-abi=soft in comments, not mhard-float and msoft-float.
8875         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8876         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8877         mhard-float.
8878         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8879         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8880         msoft-float.
8881         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8882         not mhard-float.
8883         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8884         not msoft-float.
8885
8886 2011-03-22  Richard Henderson  <rth@redhat.com>
8887
8888         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8889         TARGET_ABI_WINDOWS_NT.
8890         (alpha_output_function_end_prologue): Likewise.
8891         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8892         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8893         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8894         (trap, *movsi_nt_vms): Likewise.
8895         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8896         (*tablejump_osf_nt_internal): Remove.
8897         * config/alpha/predicates.md (input_operand): Only test Pmode.
8898
8899 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8900
8901         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8902         via opts pointer.  Use error_at.  Don't assert that global
8903         structures are in use.
8904
8905 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8906
8907         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8908         (ix86_handle_option): Access ix86_isa_flags and
8909         ix86_isa_flags_explicit via opts pointer.  Don't assert that
8910         global structures are in use.
8911         (ix86_function_specific_save, ix86_function_specific_restore):
8912         Update ix86_isa_flags_explicit field name.
8913         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
8914         (ix86_isa_flags_explicit): Rename TargetSave entry to
8915         x_ix86_isa_flags_explicit.
8916
8917 2011-03-22  Richard Henderson  <rth@redhat.com>
8918
8919         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8920         (alpha_option_override, direct_return): Likewise.
8921         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8922         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8923         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8924         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8925         (alpha_expand_epilogue, alpha_end_function): Likewise.
8926         (alpha_init_libfuncs): Likewise.
8927         (struct machine_function): Remove unicosmk members.
8928         (print_operand) ['t']: Remove.
8929         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8930         unicosmk_output_module_name, unicosmk_output_common,
8931         current_section_align, unicosmk_output_text_section_asm_op,
8932         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8933         unicosmk_section_type_flags, unicosmk_unique_section,
8934         unicosmk_asm_named_section, unicosmk_insert_attributes,
8935         unicosmk_output_align, unicosmk_defer_case_vector,
8936         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
8937         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
8938         unicosmk_output_ssib, unicosmk_add_call_info_word,
8939         unicosmk_extern_head, unicosmk_output_default_externs,
8940         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
8941         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
8942         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
8943         * config/alpha/alpha-protos.h: Update.
8944         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
8945         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
8946         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
8947         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
8948         (*mulsi_se, mulvsi3): Likewise.
8949         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
8950         (*divmodsi_internal, call, call_value, realign): Likewise.
8951         (moddi3, umoddi3): Likewise; remove duplicate expander.
8952         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
8953         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
8954         (*movdi_nofix): Remove r/U alternative.
8955         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
8956         * config/alpha/constraints.md ("U"): Remove.
8957         * config/alpha/predicates.md (call_operand"): Don't test
8958         TARGET_ABI_UNICOSMK.
8959
8960 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8961
8962         * target.def (handle_option): Take gcc_options and
8963         cl_decoded_option pointers and location_t.
8964         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
8965         * doc/tm.texi: Regenerate.
8966         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
8967         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
8968         * lto-opts.c (lto_reissue_options): Generate option structure for
8969         targetm.handle_option call.
8970         * opts.c (target_handle_option): Update call to
8971         targetm.handle_option.  Remove assertions about values now passed
8972         down to hook.
8973         * targhooks.c (default_target_handle_option): New.
8974         * targhooks.h (default_target_handle_option): Declare.
8975         * config/alpha/alpha.c: Include opts.h.
8976         (alpha_handle_option): Update to new hook interface.
8977         * config/arm/arm.c: Include opts.h.
8978         (arm_handle_option): Update to new hook interface.
8979         * config/arm/t-arm (arm.o): Update dependencies.
8980         * config/bfin/bfin.c: Include opts.h.
8981         (bfin_handle_option): Update to new hook interface.
8982         * config/cris/cris.c: Include opts.h.
8983         (cris_handle_option): Update to new hook interface.
8984         * config/frv/frv.c: Include opts.h.
8985         (frv_handle_option): Update to new hook interface.
8986         * config/i386/i386.c: Include opts.h.
8987         (ix86_handle_option): Update to new hook interface.
8988         (ix86_valid_target_attribute_inner_p): Generate option structure
8989         for call to ix86_handle_option.
8990         * config/i386/t-i386 (i386.o): Update dependencies.
8991         * config/ia64/ia64.c: Include opts.h.
8992         (ia64_handle_option): Update to new hook interface.
8993         * config/ia64/t-ia64 (ia64.o): Update dependencies.
8994         * config/iq2000/iq2000.c: Include opts.h.
8995         (iq2000_handle_option): Update to new hook interface.
8996         * config/m32c/m32c.c: Include opts.h.
8997         (m32c_handle_option): Update to new hook interface.
8998         * config/m32r/m32r.c: Include opts.h.
8999         (m32r_handle_option): Update to new hook interface.
9000         * config/m68k/m68k.c: Include opts.h.
9001         (m68k_handle_option): Update to new hook interface.
9002         * config/mep/mep.c: Include opts.h.
9003         (mep_handle_option): Update to new hook interface.
9004         * config/microblaze/microblaze.c: Include opts.h.
9005         (microblaze_handle_option): Update to new hook interface.
9006         * config/mips/mips.c: Include opts.h.
9007         (mips_handle_option): Update to new hook interface.
9008         * config/mn10300/mn10300.c: Include opts.h.
9009         (mn10300_handle_option): Update to new hook interface.
9010         * config/pa/pa.c: Include opts.h.
9011         (pa_handle_option): Update to new hook interface.
9012         * config/pdp11/pdp11.c: Include opts.h.
9013         (pdp11_handle_option): Update to new hook interface.
9014         * config/rs6000/rs6000.c: Include opts.h.
9015         (rs6000_handle_option): Update to new hook interface.
9016         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9017         * config/rx/rx.c: Include opts.h.
9018         (rx_handle_option): Update to new hook interface.
9019         * config/s390/s390.c: Include opts.h.
9020         (s390_handle_option): Update to new hook interface.
9021         * config/score/score.c: Include opts.h.
9022         (score_handle_option): Update to new hook interface.
9023         * config/sh/sh.c: Include opts.h.
9024         (sh_handle_option): Update to new hook interface.
9025         * config/sparc/sparc.c: Include opts.h.
9026         (sparc_handle_option): Update to new hook interface.
9027         * config/v850/v850.c: Include opts.h.
9028         (v850_handle_option): Update to new hook interface.
9029
9030 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9031
9032         * gcc.c (driver_unknown_option_callback): Only permit and save
9033         unknown -Wno- options.
9034         (driver_wrong_lang_callback): Save options directly instead of via
9035         driver_unknown_option_callback.
9036
9037 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9038
9039         * combine.c (simplify_set): Try harder to find the best CC mode when
9040         simplifying a nested COMPARE on the RHS.
9041
9042 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9043
9044         * config/alpha/gnu.h: Remove.
9045         * config/arc: Remove directory.
9046         * config/arm/netbsd.h: Remove.
9047         * config/arm/t-pe: Remove.
9048         * config/crx: Remove directory.
9049         * config/i386/netbsd.h: Remove.
9050         * config/m68hc11: Remove directory.
9051         * config/m68k/uclinux-oldabi.h: Remove.
9052         * config/mcore/mcore-pe.h: Remove.
9053         * config/mcore/t-mcore-pe: Remove.
9054         * config/netbsd-aout.h: Remove.
9055         * config/rs6000/gnu.h: Remove.
9056         * config/sh/sh-symbian.h: Remove.
9057         * config/sh/symbian-base.c: Remove.
9058         * config/sh/symbian-c.c: Remove.
9059         * config/sh/symbian-cxx.c: Remove.
9060         * config/sh/symbian-post.h: Remove.
9061         * config/sh/symbian-pre.h: Remove.
9062         * config/sh/t-symbian: Remove.
9063         * config/svr3.h: Remove.
9064         * config/vax/netbsd.h: Remove.
9065         * config.build: Don't handle i[34567]86-*-pe.
9066         * config.gcc: Remove handling of deprecations for most deprecated
9067         targets.
9068         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9069         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9070         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9071         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9072         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9073         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9074         Remove cases.
9075         * config.host: Don't handle i[34567]86-*-pe.
9076         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9077         (ASM_SPEC32): Don't handle -mcall-gnu.
9078         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9079         -mcall-gnu.
9080         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9081         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9082         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9083         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9084         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9085         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9086         conditional on SYMBIAN.
9087         * configure.ac: Don't handle powerpc*-*-gnu*.
9088         * configure: Regenerate.
9089         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9090         * doc/install-old.texi (m6811, m6812): Don't mention.
9091         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9092         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9093         (m68k-uclinuxoldabi): Don't mention.
9094         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9095         Remove.
9096         (-mcall-gnu): Remove.
9097         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9098         families): Remove constraint documentation.
9099
9100 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9101
9102         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9103         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9104         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9105
9106 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9107
9108         PR target/48226
9109         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9110         vector when peeking at the next token for vector, don't expand the
9111         keywords.
9112
9113 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9114
9115         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9116         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9117         * config/avr/avr.c (init_cumulative_args)
9118         (avr_function_arg_advance): Use it.
9119         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9120         sibcall epilogues.
9121         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9122         (avr_function_ok_for_sibcall): ...this new function.
9123         (avr_lookup_function_attribute1): New static Function.
9124         (avr_naked_function_p, interrupt_function_p)
9125         (signal_function_p, avr_OS_task_function_p)
9126         (avr_OS_main_function_p): Use it.
9127         * config/avr/avr.md ("sibcall", "sibcall_value")
9128         ("sibcall_epilogue"): New expander.
9129         ("*call_insn", "*call_value_insn"): New insn.
9130         ("call_insn", "call_value_insn"): Remove
9131         ("call", "call_value", "epilogue"): Change expander to handle
9132         sibling calls.
9133
9134 2011-03-21  Nick Clifton  <nickc@redhat.com>
9135
9136         * doc/invoke.texi (Overall Options): Move closing brace to end of
9137         options list.
9138         (Optimization Options): Add missing @gol.
9139         (Directory Options): Likewise.
9140         (i386 and x86-64 Options): Likewise.
9141         (RS6000 and PowerPC Options): Likewise.
9142         (i386 and x86-64 Windows Options): Likewise.
9143         (V850 Options): Add text missing from descriptions.
9144
9145 2011-03-22  Richard Henderson  <rth@redhat.com>
9146
9147         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9148         (avr_incoming_return_addr_rtx): New.
9149         (emit_push_byte): New.
9150         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9151         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9152         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9153         (emit_pop_byte): New.
9154         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9155         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9156         (INCOMING_RETURN_ADDR_RTX): New.
9157         (INCOMING_FRAME_SP_OFFSET): New.
9158         (ARG_POINTER_CFA_OFFSET): New.
9159         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9160         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9161         (pophi): Remove.
9162
9163         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9164
9165 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9166
9167         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9168         (FUNCTION_ARG_ADVANCE): Likewise.
9169         * tm.texi.in: Change references to them to hook references.
9170         * tm.texi: Regenerate.
9171         * targhooks.c (default_function_arg): Eliminate check for target
9172         macro.
9173         (default_function_incoming_arg): Likewise.
9174         (default_function_arg_advance): Likewise.
9175         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9176         (function_arg_advance): Likewise.
9177         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9178
9179 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9180
9181         * tree.c (build_call_1): New function.
9182         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9183
9184 2011-03-22  Richard Guenther  <rguenther@suse.de>
9185
9186         PR tree-optimization/48228
9187         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9188         for single-arg PHIs.
9189
9190 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9191
9192         PR rtl-optimization/48143
9193         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9194         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9195         sse2_cvtps2pd): Likewise.
9196
9197 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9198
9199         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9200
9201 2011-03-22  Richard Guenther  <rguenther@suse.de>
9202
9203         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9204         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9205         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9206         and REALIGN_LOAD_EXPR.
9207         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9208         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9209         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9210         DOT_PROD_EXPR case ...
9211         (expand_expr_real_2): ... here.
9212         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9213         and REALIGN_LOAD_EXPR.
9214         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9215         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9216         (vect_create_epilog_for_reduction): Likewise.
9217         (vectorizable_reduction): Likewise.
9218         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9219         * tree-vect-stmts.c (vectorizable_load): Likewise.
9220
9221 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9222
9223         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9224
9225 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9226
9227         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9228         handling for PLTOFF/GOTOFF.
9229
9230 2011-03-22  Nick Clifton  <nickc@redhat.com>
9231
9232         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9233         trailing backslash from the end of the macro definition.
9234
9235 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9236
9237         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9238         and PLT unspecs.
9239
9240 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9241
9242         * expr.h (prepare_operand): Move to...
9243         * optabs.h (prepare_operand): ...here and change the insn code
9244         parameter from "int" to "enum insn_code".
9245         (insn_operand_matches): Declare.
9246         * expr.c (init_expr_target): Use insn_operand_matches.
9247         (compress_float_constant): Likewise.
9248         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9249         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9250         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9251         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9252         Likewise.
9253         (gen_cond_trap): Likewise.
9254         (prepare_operand): Likewise.  Change icode to an insn_code.
9255         (insn_operand_matches): New function.
9256         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9257         * reload1.c (gen_reload): Likewise.
9258         * targhooks.c (default_secondary_reload): Likewise.
9259
9260 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9261
9262         * config/alpha/alpha.md (unspec): New define_c_enum.
9263         (unspecv): Ditto.
9264
9265 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9266
9267         PR debug/48214
9268         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9269         between a call and its CALL_ARG_LOCATION note.
9270
9271 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9272
9273         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9274
9275 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9276
9277         PR c/42544
9278         PR c/48197
9279         * c-common.c (shorten_compare): If primopN is first sign-extended
9280         to opN and then zero-extended to result type, set primopN to opN.
9281
9282 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9283
9284         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9285         for barrier handlers.
9286
9287 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9288
9289         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9290         UNSPEC constants to be in the unspec enumeration, and redefine
9291         all UNSPECV constants to be in the unspecv enumeration, so that
9292         dumps print which unspec/unspec_volatile this is.
9293         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9294         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9295         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9296         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9297         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9298
9299         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9300         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9301         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9302         * config/rs6000/sync.md (isync, lwsync): Ditto.
9303
9304 2011-03-21  Richard Guenther  <rguenther@suse.de>
9305
9306         * params.def (lto-min-partition): Fix typo.
9307
9308 2011-03-21  Richard Guenther  <rguenther@suse.de>
9309
9310         PR c/47939
9311         * c-decl.c (grokdeclarator): Drop to the main variant only
9312         for array types.  Drop flag_gen_aux_info check.
9313
9314 2011-03-21  Richard Guenther  <rguenther@suse.de>
9315
9316         PR translation/47911
9317         * params.def (lto-partitions): Fix typo.
9318         (lto-min-partition): Fix wording.
9319
9320 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9321
9322         * config/rs6000/t-freebsd: Remove duplication from file.
9323
9324 2011-03-21  Richard Guenther  <rguenther@suse.de>
9325
9326         PR middle-end/47661
9327         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9328
9329 2011-03-21  Richard Guenther  <rguenther@suse.de>
9330
9331         PR lto/48210
9332         * params.def (lto-partitions): Require at least 1 partition.
9333
9334 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9335
9336         * gthr-solaris.h: Remove.
9337         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9338         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9339         (LIB_SPEC): Likewise.
9340         * config/sol2.opt (threads): Remove.
9341         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9342         (sparc*-*-solaris2*): Likewise.
9343         * configure.ac (enable_threads): Enable solaris support.
9344         * configure: Regenerate.
9345         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9346         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9347         solaris.
9348
9349 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9350
9351         * config.gcc: Obsolete *-*-solaris2.8*.
9352         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9353
9354 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9355
9356         PR bootstrap/48135
9357         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9358         reference.  Solaris 8 perl works.
9359
9360 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9361
9362         PR bootstrap/48135
9363         * doc/install.texi (Prerequisites): Move jar etc. up.
9364         Explain support library version requirements.
9365
9366 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9367
9368         PR bootstrap/48135
9369         * doc/install.texi (Prerequisites): Move Perl to build
9370         requirements.  Always necessary on Solaris 2 with Sun ld.
9371
9372 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9373
9374         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9375         binutils 2.21.
9376         (Specific, i?86-*-solaris2.[89]): Likewise.
9377         (Specific, i?86-*-solaris2.10): Likewise.
9378         (Specific, mips-sgi-irix6): Likewise.
9379         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9380         Update for binutils 2.21.
9381
9382 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9383
9384         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9385         Allow -fuse-linker-plugin for non-default plugin linker.
9386         * configure: Regenerate.
9387
9388 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9389
9390         PR bootstrap/48167
9391         * gengtype.c (files_rules): Added rule for cp/parser.h.
9392
9393 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9394
9395         PR target/48213
9396         * config/s390/s390.c (s390_delegitimize_address): Don't call
9397         lowpart_subreg if orig_x has BLKmode.
9398
9399 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9400
9401         PR target/12171
9402         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9403         * tree.h (attribute_spec): Add new member affects_type_identity.
9404         * attribs.c (empty_attribute_table): Adjust attribute_spec
9405         initializers.
9406         * config/alpha/alpha.c: Likewise.
9407         * config/arc/arc.c: Likewise.
9408         * config/arm/arm.c: Likewise.
9409         * config/avr/avr.c: Likewise.
9410         * config/bfin/bfin.c: Likewise.
9411         * config/crx/crx.c: Likewise.
9412         * config/darwin.h: Likewise.
9413         * config/h8300/h8300.c: Likewise.
9414         * config/i386/cygming.h: Likewise.
9415         * config/i386/i386.c: Likewise.
9416         * config/ia64/ia64.c: Likewise.
9417         * config/m32c/m32c.c: Likewise.
9418         * config/m32r/m32r.c: Likewise.
9419         * config/m68hc11/m68hc11.c: Likewise.
9420         * config/m68k/m68k.c: Likewise.
9421         * config/mcore/mcore.c: Likewise.
9422         * config/mep/mep.c: Likewise.
9423         * config/microblaze/microblaze.c: Likewise.
9424         * config/mips/mips.c: Likewise.
9425         * config/rs6000/rs6000.c: Likewise.
9426         * config/rx/rx.c: Likewise.
9427         * config/sh/sh.c: Likewise.
9428         * config/sol2.h: Likewise.
9429         * config/sparc/sparc.c: Likewise.
9430         * config/spu/spu.c: Likewise.
9431         * config/stormy16/stormy16.c: Likewise.
9432         * config/v850/v850.c: Likewise.
9433
9434 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9435
9436         * simplify-rtx.c (simplify_binary_operation_1): Handle
9437         (xor (and A B) C) case when B and C are both constants.
9438
9439 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9440
9441         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9442
9443 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9444
9445         PR bootstrap/48168
9446         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9447
9448 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9449
9450         PR rtl-optimization/48156
9451         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9452         assume df and df_lr are not NULL.
9453
9454 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9455
9456         PR debug/48023
9457         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9458         between a call and its CALL_ARG_LOCATION note.
9459
9460 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9461
9462         PR debug/48178
9463         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9464         between a call and its corresponding CALL_ARG_LOCATION note.
9465
9466 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9467
9468         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9469         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9470         * haifa-sched.c (setup_ref_regs): Ditto.
9471         * caller-save.c (add_used_regs_1): Ditto.
9472         * dse.c (look_for_hardregs): Ditto.
9473         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9474         * sched-rgn.c (check_live_1): Ditto.
9475
9476 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9477
9478         * c-decl.c (diagnose_mismatched_decls): Give an error for
9479         redefining a typedef with variably modified type.
9480
9481 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9482
9483         * c-decl.c (grokfield): Don't allow typedefs for structures or
9484         unions with no tag by default.
9485         * doc/extend.texi (Unnamed Fields): Update.
9486
9487 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9488
9489         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9490         Rewrite using indirect functions.
9491         (lwp_slwpcb): Ditto.
9492         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9493         (avx_vinsertf128<mode>): Ditto.
9494
9495 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9496
9497         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9498         unspecs.
9499
9500 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9501
9502         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9503         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9504
9505 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9506
9507         PR rtl-optimization/48170
9508         * gcse.c (hoist_code): Remove bogus asserts.
9509
9510 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9511
9512         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9513         computation for prologue/epilogue.
9514
9515 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9516
9517         * Makefile.in (check-consistency): Remove.
9518
9519 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9520
9521         PR debug/48176
9522         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9523         arange_table_in_use is 0, but either text_section_used or
9524         cold_text_section_used is true.  Don't call it if
9525         !info_section_emitted.
9526
9527 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9528
9529         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9530         FUNCTION_VALUE_REGNO_P): Remove.
9531         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9532         Remove.
9533         * config/avr/avr.c (avr_ret_register): Make static inline.
9534         (avr_function_value_regno_p): New function.
9535         (avr_libcall_value): Make static. Add 'func' argument.
9536         (avr_function_value): Make static. Rename 'func' argument to
9537         'fn_decl_or_type', forward it to avr_libcall_value. Call
9538         avr_ret_register function instead of RET_REGISTER macro.
9539         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9540
9541 2011-03-18  Jason Merrill  <jason@redhat.com>
9542
9543         PR c++/23372
9544         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9545
9546 2011-03-18  Richard Guenther  <rguenther@suse.de>
9547
9548         * doc/install.texi (--enable-gold): Remove.
9549         (--with-plugin-ld): Document.
9550         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9551
9552 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9553
9554         PR middle-end/47790
9555         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9556         again after expansion changes.
9557
9558 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9559
9560         * combine.c (try_combine): Do simplification only call of
9561         subst() on i2 even when i1 is present. Update comments.
9562
9563 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9564
9565         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9566         and UNSPEC_PCREL_SYMOFF.
9567
9568 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9569
9570         * config/s390/s390.md: Use define_c_enum for the unspec constant
9571         definitions.
9572
9573 2011-03-18  Richard Henderson  <rth@redhat.com>
9574             Jakub Jelinek  <jakub@redhat.com>
9575
9576         PR bootstrap/48161
9577         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9578         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9579
9580 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9581
9582         PR middle-end/47725
9583         * combine.c (cant_combine_insn_p): Don't check zero/sign
9584         extended hard registers.
9585
9586 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9587
9588         PR middle-end/47725
9589         * combine.c (cant_combine_insn_p): Check zero/sign extended
9590         hard registers.
9591
9592 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9593
9594         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9595         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9596         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9597         Change return type to bool.
9598         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9599
9600 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9601
9602         PR debug/48163
9603         * var-tracking.c (prepare_call_arguments): If CALL target
9604         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9605         pc instead of looking it up using cselib_lookup and use
9606         Pmode for it if x has VOIDmode.
9607         * dwarf2out.c (gen_subprogram_die): If also both first and
9608         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9609
9610         PR debug/48163
9611         * function.c (assign_parms): For data.passed_pointer parms
9612         use MEM of data.entry_parm instead of data.entry_parm itself
9613         as DECL_INCOMING_RTL.
9614         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9615         also when passed and declared mode is the same, DECL_RTL
9616         is a MEM with pseudo as address and DECL_INCOMING_RTL is
9617         a MEM too.
9618
9619 2011-03-16  Jeff Law  <law@redhat.com>
9620
9621         PR rtl-optimization/37273
9622         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9623         handle them like argument loads from stack slots.  Do not double
9624         count memory for memory constants and argument loads from stack slots.
9625
9626 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9627
9628         PR debug/48160
9629         * var-tracking.c (prepare_call_arguments): Check SUBREG.
9630
9631 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9632
9633         PR target/48171
9634         * config/i386/i386.opt: Add Save to -mavx and -mfma.
9635
9636 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9637
9638         PR bootstrap/48153
9639         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9640         if dwarf_strict.
9641         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9642         Clear call_arg_locations and call_arg_loc_last always.
9643
9644         PR middle-end/48152
9645         * var-tracking.c (prepare_call_arguments): If argument needs to be
9646         passed by reference, adjust argtype and mode.
9647
9648 2011-03-17  Richard Guenther  <rguenther@suse.de>
9649
9650         PR middle-end/48134
9651         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9652         a value make sure to fold the statement.
9653
9654 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
9655
9656         PR target/43872
9657         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9658         return condition with !cfun->calls_alloca.
9659
9660 2011-03-17  Richard Guenther  <rguenther@suse.de>
9661
9662         PR bootstrap/48148
9663         * lto-cgraph.c (input_overwrite_node): Clear the abstract
9664         origin for decls in other ltrans units.
9665         (input_varpool_node): Likewise.
9666
9667 2011-03-17  Richard Guenther  <rguenther@suse.de>
9668
9669         PR middle-end/48165
9670         * tree-object-size.c (compute_object_offset): Properly return
9671         the offset operand of MEM_REFs as sizetype.
9672
9673 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9674
9675         PR rtl-optimization/48141
9676         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9677         * dse.c: Include params.h.
9678         (active_local_stores_len): New variable.
9679         (add_wild_read, dse_step1): Clear it when setting active_local_stores
9680         to NULL.
9681         (record_store, check_mem_read_rtx): Decrease it when removing
9682         from the chain.
9683         (scan_insn): Likewise.  Increase it when adding to chain, if it
9684         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9685         set active_local_stores to NULL before the addition.
9686         * Makefile.in (dse.o): Depend on $(PARAMS_H).
9687
9688         PR rtl-optimization/48141
9689         * dse.c (record_store): If no positions are needed in an insn
9690         that cannot be deleted, at least unchain it from active_local_stores.
9691
9692 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
9693
9694         PR debug/47510
9695         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9696         (lookup_type_die_strip_naming_typedef): ... here.
9697         (get_context_die): Use it.
9698         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9699         the anonymous struct named by the naming typedef.
9700
9701 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9702
9703         PR target/48154
9704         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9705         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9706
9707 2011-03-16  Jeff Law  <law@redhat.com>
9708
9709         * tree-vrp.c (identify_jump_threads): Slightly simplify type
9710         check for operands of conditional.  Allow type to be a pointer.
9711
9712 2011-03-16  Richard Guenther  <rguenther@suse.de>
9713
9714         PR tree-optimization/48149
9715         * fold-const.c (fold_binary_loc): Fold
9716         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9717
9718 2011-03-16  Richard Guenther  <rguenther@suse.de>
9719
9720         PR tree-optimization/26134
9721         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9722         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9723         (non_rewritable_mem_ref_base): Handle complex type component
9724         accesses, constrain offsets for vector and complex extracts
9725         more properly.
9726
9727 2011-03-16  Richard Guenther  <rguenther@suse.de>
9728
9729         PR tree-optimization/48146
9730         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9731         operands avoiding the need for renaming.
9732
9733 2011-03-16  Richard Guenther  <rguenther@suse.de>
9734
9735         * gimple-fold.c (maybe_fold_reference): Open-code relevant
9736         constant folding.  Move MEM_REF canonicalization first.
9737         Rely on fold_const_aggregate_ref for initializer folding.
9738         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9739
9740 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9741
9742         PR middle-end/48136
9743         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9744         arg0/arg1 or their arguments are always fold converted to matching
9745         types.
9746
9747         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9748         to nargs.
9749
9750 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9751
9752         PR lto/46944
9753         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9754         Handle in-tree gold.
9755         (ld_vers): Extract binutils version for gold.
9756         (gcc_cv_ld_hidden): Handle gold here.
9757         (gcc_cv_lto_plugin): Determine level of linker plugin support.
9758         * configure: Regenerate.
9759         * config.in: Regenerate.
9760         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9761         -fuse-linker-plugin otherwise.
9762         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
9763         (LINK_COMMAND_SPEC): Use it.
9764         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9765
9766 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9767
9768         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9769         * calls.c: Remove debug.h include.
9770         (emit_call_1): Don't call virtual_call_token debug hook.
9771         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9772         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9773         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9774         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9775         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9776         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9777         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9778         dwarf2out_virtual_call): Remove.
9779         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9780         copy_call_info and virtual_call hooks.
9781         (dwarf2out_init): Don't initialize vcall_insn_table,
9782         debug_dcall_section and debug_vcall_section.
9783         (prune_unused_types): Don't mark nodes from dcall_table.
9784         (dwarf2out_finish): Don't output dcall or vcall tables.
9785         * final.c (final_scan_insn): Don't call direct_call or
9786         virtual_call debug hooks.
9787         * debug.h (struct gcc_debug_hooks): Remove direct_call,
9788         virtual_call_token, copy_call_info and virtual_call hooks.
9789         (debug_nothing_uid): Remove prototype.
9790         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9791         copy_call_info and virtual_call hooks.
9792         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9793         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9794         * debug.c (do_nothing_debug_hooks): Likewise.
9795         (debug_nothing_uid): Remove.
9796         * doc/invoke.texi (-fenable-icf-debug): Remove.
9797         * common.opt (-fenable-icf-debug): Likewise.
9798
9799         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9800         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9801         call's MEM.  Handle functions returning aggregate through a hidden
9802         first pointer.  For virtual calls add clobbered pc to call arguments
9803         chain.
9804         * dwarf2out.c (gen_subprogram_die): Emit
9805         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9806         can't be emitted.
9807
9808         PR debug/45882
9809         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9810         * rtl.h (ENTRY_VALUE_EXP): Define.
9811         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9812         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9813         * print-rtl.c (print_rtx): Likewise.
9814         * gengtype.c (adjust_field_rtx_def): Likewise.
9815         * var-tracking.c (vt_add_function_parameter): Adjust
9816         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9817         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9818         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9819         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9820         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9821
9822         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9823         Call var_location debug hook even on CALL_INSNs.
9824         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9825         * rtl.def (ENTRY_VALUE): New.
9826         * dwarf2out.c: Include cfglayout.h.
9827         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9828         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9829         (struct call_arg_loc_node): New type.
9830         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9831         tail_call_site_count): New variables.
9832         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9833         DW_TAG_GNU_call_site_parameter.
9834         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9835         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9836         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9837         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9838         and DW_AT_GNU_all_source_call_sites.
9839         (mem_loc_descriptor): Handle ENTRY_VALUE.
9840         (add_src_coords_attributes): Don't add enything if
9841         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9842         (dwarf2out_abstract_function): Save and clear call_arg_location,
9843         call_site_count and tail_call_site_count around dwarf2out_decl call.
9844         (gen_call_site_die): New function.
9845         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9846         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9847         (dwarf2out_function_decl): Clear call_arg_locations,
9848         call_arg_loc_last, set call_site_count and tail_call_site_count
9849         to -1 and free block_map.
9850         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9851         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
9852         followed by any real instructions.
9853         (dwarf2out_begin_function): Set call_site_count and
9854         tail_call_site_count to 0.
9855         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9856         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9857         attempt to force a DIE for it and worst case remove the attribute.
9858         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9859         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9860         the decl itself.
9861         * var-tracking.c: Include tm_p.h.
9862         (vt_stack_adjustments): For calls call note_register_arguments.
9863         (argument_reg_set): New variable.
9864         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9865         ensure the VALUE is resolved.
9866         (call_arguments): New variable.
9867         (prepare_call_arguments): New function.
9868         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9869         (struct expand_loc_callback_data): Add ignore_cur_loc field.
9870         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9871         always use the best expression.
9872         (vt_expand_loc): Add ignore_cur_loc argument.
9873         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9874         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9875         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9876         note for all calls.
9877         (vt_add_function_parameter): Use cselib_lookup_from_insn.
9878         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9879         argument.  Don't call cselib_preserve_only_values and
9880         cselib_reset_table.
9881         (note_register_arguments): New function.
9882         (vt_initialize): Compute argument_reg_set.  Call
9883         vt_add_function_parameters before processing basic blocks instead of
9884         afterwards.  For calls call prepare_call_arguments before calling
9885         cselib_process_insn.
9886         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9887         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9888         (var-tracking.o): Depend on $(TM_P_H).
9889         * cfglayout.h (insn_scope): New prototype.
9890         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9891         * cfglayout.c (insn_scope): No longer static.
9892         * insn-notes.def (CALL_ARG_LOCATION): New.
9893         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9894         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9895         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9896         nothing for DECL_EXTERNAL BLOCK_VARS.
9897
9898 2011-03-16  Alan Modra  <amodra@gmail.com>
9899
9900         PR target/45844
9901         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9902         create invalid offset address for vsx splat insn.
9903         * config/rs6000/predicates.md (splat_input_operand): New.
9904         * config/rs6000/vsx.md (vsx_splat_*): Use it.
9905
9906 2011-03-15  Xinliang David Li  <davidxl@google.com>
9907
9908         PR c/47837
9909         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9910         (normalize_preds): New function.
9911         (is_use_properly_guarded): Normalize def predicates.
9912
9913 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9914
9915         PR target/46788
9916         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9917         in the output template.
9918
9919 2011-03-15  Richard Guenther  <rguenther@suse.de>
9920
9921         PR middle-end/47650
9922         * tree-pretty-print.c (dump_function_declaration): Properly
9923         dump unprototyped and varargs function types.
9924
9925 2011-03-15  Richard Guenther  <rguenther@suse.de>
9926
9927         PR tree-optimization/13954
9928         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9929         and friends.
9930
9931 2011-03-15  Richard Guenther  <rguenther@suse.de>
9932
9933         PR tree-optimization/48037
9934         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9935         selects into BIT_FIELD_REFs.
9936         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
9937         vector select.
9938
9939 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
9940
9941         PR tree-optimization/48129
9942         * builtins.c (fold_builtin_snprintf): Convert to type of
9943         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
9944         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
9945
9946 2011-03-15  Richard Guenther  <rguenther@suse.de>
9947
9948         PR tree-optimization/41490
9949         * tree-ssa-dce.c (propagate_necessity): Handle returns without
9950         value but with VUSE.
9951         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
9952         return statements.
9953         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
9954         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
9955         * tree-tailcall.c (find_tail_calls): Ignore returns.
9956
9957 2011-03-15  Richard Guenther  <rguenther@suse.de>
9958
9959         PR middle-end/48031
9960         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
9961         or variable-indexed array accesses when in gimple form.
9962
9963 2011-03-15  Richard Guenther  <rguenther@suse.de>
9964
9965         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
9966
9967 2011-03-15  Alan Modra  <amodra@gmail.com>
9968
9969         PR target/48032
9970         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
9971         presume symbol_refs without a symbol_ref_decl are suitably
9972         aligned, nor other trees we may see here.  Handle anchor symbols.
9973         (legitimate_constant_pool_address_p): Comment.  Add mode param.
9974         Check cmodel=medium addresses.  Adjust all calls.
9975         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
9976         creating cmodel=medium optimized access to locals.
9977         * config/rs6000/constraints.md (R): Pass QImode to
9978         legitimate_constant_pool_address_p.
9979         * config/rs6000/predicates.md (input_operand): Pass mode to
9980         legitimate_constant_pool_address_p.
9981         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
9982         Update prototype.
9983
9984 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9985
9986         PR target/48053
9987         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
9988         64-bit constants being loaded into registers other than GPRs such
9989         as loading 0 into a VSX register.
9990
9991 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9992
9993         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
9994
9995 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9996
9997         PR middle-end/47917
9998         * builtins.c (fold_builtin_snprintf): New function.
9999         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10000         (fold_builtin_4): Likewise.
10001
10002         PR middle-end/38878
10003         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10004         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10005         and C - X == X also strip nops from +/-/p+ operand.
10006         When optimizing -X == C, fold C to arg0's type.
10007
10008         PR debug/47946
10009         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10010         emit it as add_AT_int instead of add_AT_unsigned.
10011
10012 2011-03-14  Tom Tromey  <tromey@redhat.com>
10013
10014         * unwind-dw2.c: Include sys/sdt.h if it exists.
10015         (_Unwind_DebugHook): Use STAP_PROBE2.
10016         * config.in, configure: Rebuild.
10017         * configure.ac: Check for sys/sdt.h.
10018
10019 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10020
10021         * config/i386/i386.md (ROUND_FLOOR): New constant.
10022         (ROUND_CEIL): Ditto.
10023         (ROUND_TRUNC): Ditto.
10024         (ROUND_MXCSR): Ditto.
10025         (ROUND_NO_EXC): Ditto.
10026         (rint<mode>2): Use new defines instead of numerical constants.
10027         (floor<mode>2): Ditto.
10028         (ceil<mode>2): Ditto.
10029         (btrunc<mode>2): Ditto.
10030         * config/i386/i386-builtin-types.def: Define ROUND function type
10031         aliases.
10032         * config/i386/i386.c (enum ix86_builtins): Add
10033         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10034         (struct builtin_description): Add
10035         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10036         (ix86_expand_sse_round): New static function.
10037         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10038         function types.
10039         (ix86_builtin_vectorized_function): Handle
10040         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10041
10042 2011-03-14  Tom Tromey  <tromey@redhat.com>
10043
10044         * c-parser.c (c_parser_asm_string_literal): Clear
10045         warn_overlength_strings.
10046
10047 2011-03-14  Tom Tromey  <tromey@redhat.com>
10048
10049         * c-parser.c (disable_extension_diagnostics): Save
10050         warn_overlength_strings.
10051         (restore_extension_diagnostics): Restore warn_overlength_strings.
10052
10053 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10054
10055         * BASE-VER: Change to 4.7.0.
10056
10057 2011-03-14  Richard Guenther  <rguenther@suse.de>
10058
10059         PR middle-end/48098
10060         * tree.c (build_vector_from_val): Adjust assert to requirements
10061         and reality.
10062
10063 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10064
10065         PR bootstrap/48102
10066         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10067
10068 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10069
10070         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10071         terms of target_flags_explicit. Adjust copyright year.
10072
10073         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10074         * config/rs6000/t-freebsd: New file. Add override for
10075         LIB2FUNCS_EXTRA.
10076
10077 2011-03-13  Chris Demetriou  <cgd@google.com>
10078
10079         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10080         (-fno-diagnostics-show-option): this, to reflect current default.
10081         (-Werror=): Update text about -fno-diagnostics-show-option.
10082
10083 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10084
10085         PR target/48053
10086         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10087         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10088         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10089         mode is not V2DImode or V2DFmode.
10090         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10091         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10092         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10093         registers to 0.
10094         (movdi_internal64): Likewise.
10095
10096 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10097
10098         PR tree-optimization/47127
10099         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10100         parameter.
10101         (set_cloog_options): Same.
10102         (scop_to_clast): Same.
10103         (print_clast_stmt): Do not call cloog_state_malloc and
10104         cloog_state_free.
10105         (print_generated_program): Same.
10106         (gloog): Same.
10107         * graphite-clast-to-gimple.h (cloog_state): Declared.
10108         (scop_to_clast): Adjust declaration.
10109         * graphite.c (cloog_state): Defined here.
10110         (graphite_initialize): Call cloog_state_malloc.
10111         (graphite_finalize): Call cloog_state_free.
10112
10113 2011-03-11  Jason Merrill  <jason@redhat.com>
10114
10115         * attribs.c (lookup_attribute_spec): Take const_tree.
10116         * tree.h: Adjust.
10117
10118 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10119
10120         * config/sparc/sparc.c (sparc_option_override): Use
10121         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10122
10123 2011-03-11  Richard Guenther  <rguenther@suse.de>
10124
10125         PR tree-optimization/48067
10126         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10127         multiplication result will be only used once on the target
10128         stmt.
10129
10130 2011-03-11  Richard Guenther  <rguenther@suse.de>
10131
10132         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10133
10134 2011-03-11  Richard Guenther  <rguenther@suse.de>
10135
10136         PR lto/48073
10137         * tree.c (find_decls_types_r): Do not walk types only reachable
10138         from IDENTIFIER_NODEs.
10139
10140 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10141
10142         PR middle-end/48044
10143         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10144         all vnode->force_output nodes as needed.
10145
10146 2011-03-11  Jason Merrill  <jason@redhat.com>
10147
10148         PR c++/48069
10149         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10150         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10151
10152 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10153
10154         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10155         cgraph_node.
10156
10157 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10158
10159         PR tree-optimization/48063
10160         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10161         inline functions called once if !tree_can_inline_p (node->callers).
10162
10163 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10164
10165         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10166         extra_objs.
10167         * config/score/score3.c: Delete.
10168         * config/score/score3.h: Delete.
10169         * config/score/mul-div.S: Delete.
10170         * config/score/sfp-machine.h: Add new file.
10171         * config/score/constraints.md: Add new file.
10172         * config/score/t-score-softfp: Add new file.
10173         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10174         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10175         (score7_extra_constraint): Delete.
10176         (score7_option_override): Remove unused code.
10177         * config/score/score.c: Remove score3 and score5 define and code.
10178         * config/score/score.h: Remove score3 and score5 define and code.
10179         * config/score/score.md: Remove score3 template and unusual insn.
10180         * config/score/score.opt: Remove score3 and score5 options.
10181
10182 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10183
10184         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10185         when _HPUX_SOURCE is defined.
10186         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10187
10188 2011-03-10  Jason Merrill  <jason@redhat.com>
10189
10190         PR c++/48029
10191         * stor-layout.c (layout_type): Don't set structural equality
10192         on arrays of incomplete type.
10193         * tree.c (type_hash_eq): Handle comparing them properly.
10194
10195 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10196
10197         PR debug/48043
10198         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10199         result mode matches original rtl mode.
10200
10201 2011-03-10  Nick Clifton  <nickc@redhat.com>
10202
10203         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10204         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10205
10206 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10207
10208         PR rtl-optimization/47866
10209         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10210         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10211         if target wasn't scalar.
10212         * function.c (assign_stack_temp_for_type): Assert that neither
10213         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10214         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10215         macro.
10216         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10217
10218 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10219
10220         * config/s390/s390-protos.h (s390_label_align): New prototype.
10221         * config/s390/s390.c (s390_label_align): New function.
10222         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10223
10224 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10225
10226         PR target/47755
10227         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10228         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10229         (output_vec_const_move): Ditto.
10230
10231 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10232
10233         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10234         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10235         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10236         Change 'rclass' argument and result type to reg_class_t.
10237         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10238
10239 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10240
10241         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10242         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10243         (TARGET_MEMORY_MOVE_COST): Define.
10244         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10245
10246 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10247
10248         PR debug/47881
10249         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10250         removed anything.
10251
10252         PR tree-optimization/48022
10253         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10254         for EQ/NE_EXPR.
10255
10256 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10257
10258         PR debug/47991
10259         * var-tracking.c (find_use_val): Return NULL for
10260         cui->sets && cui->store_p BLKmode MEMs.
10261
10262 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10263
10264         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10265         Remove.
10266         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10267         xstormy16_print_operand_address): Remove.
10268         * config/stormy16/stormy16.c (xstormy16_print_operand,
10269         xstormy16_print_operand_address): Make static.
10270         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10271
10272 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10273
10274         PR target/47862
10275         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10276         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10277         before definition.
10278
10279 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10280
10281         PR bootstrap/48000
10282         * cfgloopmanip.c (fix_bb_placements): Return immediately
10283         if FROM is BASE_LOOP's header.
10284
10285 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10286
10287         * gimplify.c (gimplify_function_tree): Fix building calls
10288         to __builtin_return_address.
10289
10290 2011-03-07  Alan Modra  <amodra@gmail.com>
10291
10292         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10293         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10294         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10295         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10296         return_mode args.
10297         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10298         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10299         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10300         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10301         * config/rs6000/rs6000.c
10302         (rs6000_elf_end_indicate_exec_stack): Rename to..
10303         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10304         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10305         (rs6000_file_start): ..here.
10306         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10307         file scope variables.
10308         (call_ABI_of_interest): New function.
10309         (init_cumulative_args): Set above vars when function return value
10310         is a float, vector, or small struct.
10311         (rs6000_function_arg_advance_1): Likewise for function args.
10312         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10313         references float args.
10314
10315 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10316
10317         * doc/cfg.texi: Remove "See" before @ref.
10318         * doc/invoke.texi: Likewise.
10319
10320 2011-03-05  Jason Merrill  <jason@redhat.com>
10321
10322         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10323
10324 2011-03-05  Anthony Green  <green@moxielogic.com>
10325
10326         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10327
10328 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10329
10330         PR rtl-optimization/47899
10331         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10332         to flow_loop_nested_p when moving the loop upward.
10333
10334 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10335
10336         PR target/47719
10337         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10338
10339 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10340
10341         PR tree-optimization/47967
10342         * ipa-cp.c (build_const_val): Return NULL instead of creating
10343         VIEW_CONVERT_EXPR for mismatching sizes.
10344         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10345         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10346         give up on versioning.
10347
10348 2011-03-05  Alan Modra  <amodra@gmail.com>
10349
10350         PR target/47986
10351         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10352         full cmodel medium/large lo_sum + high addresses.
10353
10354 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10355
10356         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10357         pool references in UNSPEC_LTREL_OFFSET.
10358
10359 2011-03-04  Jan Hubicka  <jh@suse.cz>
10360
10361         PR lto/47497
10362         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10363         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10364         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10365         Add node pointers.
10366         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10367         cgraph_add_thunk): Add node pointers.
10368         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10369         associated to right node.
10370         (input_node): Update use of cgraph_same_body_alias
10371         and cgraph_add_thunk.
10372
10373 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10374
10375         * config/i386/i386.opt (mprefer-avx128): New flag.
10376         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10377         modes when the flag -mprefer-avx128 is on.
10378
10379 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10380
10381         * dwarf2out.c (compare_loc_operands): Fix address handling.
10382
10383 2011-03-04  Alan Modra  <amodra@gmail.com>
10384
10385         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10386
10387 2011-03-04  Richard Guenther  <rguenther@suse.de>
10388
10389         PR middle-end/47968
10390         * expmed.c (extract_bit_field_1): Prefer vector modes that
10391         vec_extract patterns can handle.
10392
10393 2011-03-04  Richard Guenther  <rguenther@suse.de>
10394
10395         PR middle-end/47975
10396         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10397
10398 2011-03-04  Richard Henderson  <rth@redhat.com>
10399
10400         * explow.c (emit_stack_save): Remove 'after' parameter.
10401         (emit_stack_restore): Likewise.
10402         * expr.h: Update to match.
10403         * builtins.c, calls.c, stmt.c: Likewise.
10404         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10405         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10406         * function.c (expand_function_end): Insert the emit_stack_save
10407         sequence before parm_birth_insn instead of after.
10408
10409 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10410
10411         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10412         (ssse3_pmaddubsw128): Ditto.
10413         (ssse3_pmaddubsw): Ditto.
10414
10415 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10416
10417         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10418
10419 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10420
10421         PR c/47963
10422         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10423         on TYPE_SIZE_UNIT if it is a DECL.
10424
10425         PR debug/47283
10426         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10427         first operand is not is_gimple_mem_ref_addr, try to fold it.
10428         If the operand still isn't is_gimple_mem_ref_addr, clear
10429         MEM_EXPR on op0.
10430
10431 2011-03-03  Richard Guenther  <rguenther@suse.de>
10432
10433         PR middle-end/47283
10434         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10435         match comment.
10436         (refs_may_alias_p_1): For release branches return true if
10437         we are confused by our input.
10438
10439 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10440
10441         * config/s390/s390.c (s390_function_value): Rename to ...
10442         (s390_function_and_libcall_value): ... this.
10443         (s390_function_value): New function.
10444         (s390_libcall_value): New function.
10445         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10446         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10447         target macro definitions.
10448         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10449
10450 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10451
10452         * config/i386/freebsd64.h (CC1_SPEC): Define.
10453         * config/i386/linux64.h (CC1_SPEC): Define.
10454         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10455
10456 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10457
10458         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10459         Remove.
10460         * config/stormy16/stormy16.c: Include reload.h.
10461         (xstormy16_memory_move_cost): New function.
10462         (TARGET_MEMORY_MOVE_COST): Define.
10463
10464 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10465
10466         PR rtl-optimization/47925
10467         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10468         with side effects.  Remove the more-specific check for volatile asms.
10469
10470 2011-03-02  Alan Modra  <amodra@gmail.com>
10471
10472         PR target/47935
10473         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10474         toc relative addresses for valid offsets.
10475
10476 2011-03-01  Richard Guenther  <rguenther@suse.de>
10477
10478         PR tree-optimization/47890
10479         * tree-vect-loop.c (get_initial_def_for_induction): Set
10480         related stmt properly.
10481
10482 2011-03-01  Richard Guenther  <rguenther@suse.de>
10483
10484         PR lto/47924
10485         * lto-streamer.c (lto_record_common_node): Also register
10486         the canonical type.
10487
10488 2011-03-01  Richard Guenther  <rguenther@suse.de>
10489
10490         PR lto/46911
10491         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10492         Do not stream DECL_ABSTRACT_ORIGIN.
10493         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10494         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10495         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10496         Do not stream DECL_ABSTRACT_ORIGIN.
10497         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10498         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10499
10500 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10501
10502         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10503         FUNCTION_VALUE_REGNO_P): Remove.
10504         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10505         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10506         Add 'outgoing' argument.
10507         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10508         function.
10509         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10510         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10511
10512 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10513
10514         PR debug/28047
10515         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10516         (lookup_filename): Likewise.
10517         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10518
10519 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10520             Jakub Jelinek  <jakub@redhat.com>
10521
10522         PR middle-end/47893
10523         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10524         (assign_stack_local_1): Change last argument type to int.
10525         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10526         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10527         don't record padding space into frame_space_list nor use those areas.
10528         (assign_stack_local): Adjust caller.
10529         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10530         of assign_stack_local, pass 0 as last argument.
10531         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10532         callers.
10533
10534 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10535
10536         PR debug/47283
10537         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10538         Use target address_mode and pointer_mode hooks instead of hardcoded
10539         Pmode and ptr_mode.  Handle some simple cases of extending if
10540         POINTERS_EXTEND_UNSIGNED < 0.
10541         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10542         Call convert_debug_memory_address.
10543         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10544         convert_debug_memory_address.
10545
10546         PR middle-end/46790
10547         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10548         * configure: Regenerated.
10549         * config.in: Regenerated.
10550         * varasm.c (default_function_section): Return NULL
10551         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10552
10553 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10554
10555         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10556         the description to match the printed values.
10557
10558 2011-02-28  Richard Guenther  <rguenther@suse.de>
10559
10560         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10561         of the copied scope tree.
10562
10563 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10564
10565         * doc/extend.texi (Function Attributes): Avoid deeply (and
10566         wrongly) nested tables.
10567
10568 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10569
10570         PR middle-end/47903
10571         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10572         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10573         r isn't op0 nor op1.
10574
10575 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10576
10577         * config/avr/avr.md: Remove magic comment for emacs.
10578
10579 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10580
10581         PR target/45261
10582         * config/avr/avr.c (avr_option_override): Use error on bad options.
10583         (avr_help): New function.
10584         (TARGET_HELP): Define.
10585
10586 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10587
10588         PR target/42240
10589         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10590         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10591
10592 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10593
10594         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10595         (ARM Options): Ditto.
10596         (i386 and x86-64 Options): Ditto.
10597         (RX Options): Ditto.
10598         (SPARC Options): Ditto.
10599
10600 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10601
10602         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10603         FreeBSD 6 and later.  Generally use cpu generic.
10604
10605 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10606
10607         * doc/cpp.texi: Update copyright years.
10608
10609 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10610
10611         PR target/46898
10612         * config/lm32/lm32.md (ashrsi3): Added needed variable.
10613
10614 2011-02-25  Jon Beniston  <jon@beniston.com>
10615
10616         PR target/46898
10617         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10618         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10619         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10620         (lm32_block_move_inline): Add type cast to remove warning.
10621         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
10622         (gen_int_relational): Move declarations to start of function.
10623
10624 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10625
10626         PR tree-optimization/45470
10627         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10628         can throw internally only.
10629         * tree-vect-stmts.c (vectorizable_call): Likewise.
10630
10631 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
10632
10633         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10634         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10635         * config/stormy16/stormy16-protos.h
10636         (xstormy16_preferred_reload_class): Remove.
10637         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10638         static. Change 'rclass' argument and return type to reg_class_t.
10639         (TARGET_PREFERRED_RELOAD_CLASS,
10640         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10641
10642 2011-02-24  Richard Guenther  <rguenther@suse.de>
10643
10644         * lto-streamer-in.c (input_bb): Do not find referenced vars
10645         in debug statements.
10646
10647 2011-02-23  Jason Merrill  <jason@redhat.com>
10648
10649         * common.opt (fabi-version): Document v5 and v6.
10650
10651 2011-02-23  Richard Guenther  <rguenther@suse.de>
10652
10653         PR tree-optimization/47849
10654         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10655
10656 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10657
10658         * opts-common.c (decode_cmdline_option): Print empty string
10659         argument as "" in decoded->orig_option_with_args_text.
10660         * gcc.c (execute): Print empty string argument as ""
10661         in the verbose output.
10662         (do_spec_1): Keep empty string argument.
10663
10664 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
10665
10666         * config.gcc: Declare score-* and crx-* obsolete.
10667
10668 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10669
10670         PR rtl-optimization/47763
10671         * web.c (web_main): Ignore naked clobber when replacing register.
10672
10673 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
10674
10675         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10676         Remove.
10677
10678 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10679
10680         PR doc/47848
10681         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10682
10683 2011-02-22  Mike Stump  <mikestump@comcast.net>
10684
10685         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10686         assembler.
10687         * configure: Regenerate.
10688
10689 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
10690
10691         PR rtl-optimization/46002
10692         * ira-color.c (update_copy_costs): Change class intersection
10693         test to reg_class_contents[] test of 'hard_regno'.
10694
10695 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
10696
10697         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10698         than Driver option.
10699         * config/hpux11.opt (mt): Likewise.
10700         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10701         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10702         * config/vax/elf.opt (mno-asm-pic): Likewise.
10703         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10704
10705 2011-02-21  Mike Stump  <mikestump@comcast.net>
10706
10707         PR target/47822
10708         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10709         tree so we can get save the type.
10710         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10711         for CFString instead of trying to use past the end of the builtins.
10712         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10713         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10714         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10715         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10716         Rename to darwin_builtin_cfstring.
10717         (darwin_init_cfstring_builtins): Return the built type.
10718
10719 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
10720
10721         PR target/47840
10722         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10723         (_mm256_insert_epi64): Use _mm_insert_epi64.
10724
10725 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
10726
10727         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10728         * config/stormy16/stormy16-protos.h
10729         (xstormy16_mode_dependent_address_p): Remove.
10730         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10731         Make static. Change return type to bool. Change argument type to
10732         const_rtx. Remove dead code.
10733         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10734
10735 2011-02-21  Richard Guenther  <rguenther@suse.de>
10736
10737         PR lto/47820
10738         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10739         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10740         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10741         TUs context.
10742         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10743         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10744
10745 2011-02-20  Richard Guenther  <rguenther@suse.de>
10746
10747         PR lto/47822
10748         * tree.c (free_lang_data_in_decl): Clean builtins from
10749         the TU decl BLOCK_VARS.
10750
10751 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
10752
10753         PR debug/47620
10754         PR debug/47630
10755         * haifa-sched.c (fix_tick_ready): Skip tick computation
10756         for debug insns.
10757
10758 2011-02-19  Richard Guenther  <rguenther@suse.de>
10759
10760         PR lto/47647
10761         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10762         Remove lazy BLOCK_VARS streaming.
10763         (lto_input_ts_block_tree_pointers): Likewise.
10764         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10765
10766 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10767
10768         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10769
10770 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10771
10772         * config/i386/biarch32.h, config/i386/mach.h,
10773         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10774
10775 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
10776
10777         PR target/47800
10778         * config/i386/i386.md (peephole2 for shift and plus): Use
10779         operands[1] original mode in the first insn.
10780
10781 2011-02-18  Mike Stump  <mikestump@comcast.net>
10782
10783         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
10784
10785 2011-02-18  Jan Hubicka  <jh@suse.cz>
10786
10787         PR middle-end/47788
10788         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10789         to zero when the function is not inlinable at all.
10790
10791 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10792
10793         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10794         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10795         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10796         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10797         * config/pa/t-pa64: Likewise.
10798         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10799
10800 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10801
10802         PR driver/47787
10803         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10804
10805 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10806
10807         PR target/47792
10808         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10809
10810 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
10811
10812         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10813         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10814         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10815         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10816         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10817         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10818         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10819         m32r_load_postinc_p, m32r_store_preinc_predec_p,
10820         m32r_legitimate_address_p): New functions.
10821         * config/m32r/constraints.md (constraint "S"): Don't use
10822         STORE_PREINC_PREDEC_P.
10823         (constraint "U"): Don't use LOAD_POSTINC_P.
10824
10825 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
10826
10827         PR rtl-optimization/46178
10828         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10829         compute ira_hard_regno_cover_class[].
10830
10831 2011-02-18  Richard Guenther  <rguenther@suse.de>
10832
10833         PR lto/47798
10834         * lto-streamer.h (lto_global_var_decls): Declare.
10835         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10836         statics for global var processing.
10837
10838 2011-02-18  Richard Guenther  <rguenther@suse.de>
10839
10840         PR tree-optimization/47737
10841         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10842         edge dominance check.
10843
10844 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10845
10846         PR debug/47780
10847         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10848         avoid invalid rtx sharing.
10849
10850 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
10851
10852         * doc/cpp.texi (Obsolete Features): Add background on the
10853         origin of assertions.
10854
10855 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
10856
10857         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
10858         objc_abi == 2.
10859         * config/darwin.c (output_objc_section_asm_op): Added support for
10860         ABI v1 and v2.
10861         (is_objc_metadata): New.
10862         (darwin_objc2_section): New.
10863         (darwin_objc1_section): New.
10864         (machopic_select_section): Added support for ABI v1 and v2.
10865         (darwin_emit_objc_zeroed): New.
10866         (darwin_output_aligned_bss): Detect objc metadata and treat it
10867         appropriately.
10868         (darwin_asm_output_aligned_decl_common): Same.
10869         (darwin_asm_output_aligned_decl_local): Same.
10870         * config/darwin-sections.def: Updated for ABI v1 and v2.
10871         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10872         compiling Objective-C code for the NeXT runtime, default to using
10873         ABI version 0 for 32-bit, and version 2 for 64-bit.
10874
10875 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10876
10877         * common.opt (optimize_fast): New Variable.
10878         * opts.c (default_options_optimization): Use opts->x_optimize_fast
10879         instead of local variable ofast.
10880
10881 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
10882
10883         * doc/invoke.texi (fobjc-abi-version): Documented.
10884         (fobjc-nilcheck): Documented.
10885         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10886         version.
10887
10888 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10889
10890         PR driver/47390
10891         * common.opt (export-dynamic): New Driver option.
10892         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10893
10894 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10895
10896         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10897
10898 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
10899             Jan Hubicka  <jh@suse.cz>
10900
10901         PR debug/47106
10902         PR debug/47402
10903         * cfgexpand.c (account_used_vars_for_block): Remove.
10904         (estimated_stack_frame_size): Use referenced vars.
10905         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10906         that were referenced in the original function.  Test src_fn
10907         rather than cfun.  Drop redundant get_var_ann.
10908         (setup_one_parameter): Drop redundant get_var_ann.
10909         (declare_return_variable): Likewise.
10910         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10911         (copy_arguments_for_versioning): Drop redundant get_var_ann.
10912         * ipa-inline.c (compute_inline_parameters): Do not compute
10913         disregard_inline_limits here.
10914         (compute_inlinable_for_current, pass_inlinable): New.
10915         (pass_inline_parameters): Require PROP_referenced_vars.
10916         * cgraphunit.c (cgraph_process_new_functions): Don't run
10917         compute_inline_parameters explicitly unless function is in SSA form.
10918         (cgraph_analyze_function): Set .disregard_inline_limits.
10919         * tree-sra.c (convert_callers): Compute inliner parameters
10920         only for functions already in SSA form.
10921
10922 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10923
10924         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10925         -mlittle-endian-data.
10926
10927 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10928
10929         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10930         -mno-fpu, not -fpu and -no-fpu.
10931         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10932         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10933
10934 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
10935
10936         PR target/43653
10937         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
10938         input reload with PLUS RTX.
10939
10940 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10941
10942         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
10943         of InverseVar(MDMX).
10944
10945 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10946
10947         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
10948         --m4-340.
10949
10950 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10951
10952         * config/mn10300/mn10300.opt (mno-crt0): New.
10953
10954 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10955
10956         * config/m68k/uclinux.opt (static-libc): New Driver option.
10957
10958 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10959
10960         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
10961
10962 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10963
10964         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
10965         %{muser-extend-enabled}.
10966
10967 2011-02-16  Richard Guenther  <rguenther@suse.de>
10968
10969         PR tree-optimization/47738
10970         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
10971         the TODO from tree_predictive_commoning.
10972
10973 2011-02-15  Jeff Law  <law@redhat.com>
10974
10975         Revert
10976         2011-01-25  Jeff Law  <law@redhat.com>
10977
10978         PR rtl-optimization/37273
10979         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10980         handle them like argument loads from stack slots.  Do not double
10981         count memory for memory constants and argument loads from stack slots.
10982
10983 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10984
10985         PR middle-end/47725
10986         * combine.c (cant_combine_insn_p): Revert the last change.
10987
10988 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10989
10990         PR target/47755
10991         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
10992         mode for vector constants.  Remove code that checks for TImode.
10993
10994 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10995
10996         PR debug/47106
10997         PR debug/47402
10998         * cgraph.h (compute_inline_parameters): Return void.
10999         * ipa-inline.c (compute_inline_parameters): Adjust.
11000
11001 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11002
11003         PR debug/47106
11004         PR debug/47402
11005         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11006         rather than decl.
11007         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11008         * ipa-inline.c (compute_inline_parameters): Adjust.
11009
11010 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11011
11012         PR debug/47106
11013         PR debug/47402
11014         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11015         Adjust all users.  Pass FN to...
11016         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11017         fn argument.
11018         * ipa-struct-reorg.c: Adjust.
11019         * tree-dfa.c: Adjust.
11020         * tree-into-ssa.c: Adjust.
11021         * tree-sra.c: Adjust.
11022         * tree-ssa-alias.c: Adjust.
11023         * tree-ssa-live.c: Adjust.
11024         * tree-ssa.c: Adjust.
11025         * tree-ssanames.c: Adjust.
11026         * tree-tailcall.c: Adjust.
11027
11028 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11029
11030         PR debug/47106
11031         PR debug/47402
11032         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11033         Adjust all callers.
11034         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11035         * tree-flow-inline.h: Adjust.
11036         * gimple-pretty-print.c: Adjust.
11037         * tree-into-ssa.c: Adjust.
11038         * tree-ssa.c: Adjust.
11039         * cfgexpand.c: Adjust.
11040
11041 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11042
11043         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11044         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11045         (EXTRA_CONSTRAINT): Delete.
11046         * config/iq2000/constraints.md: New file.
11047         * config/iq2000/iq2000.md: Include it.
11048         (define_insn ""): Delete.
11049         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11050         unsupported constraint letters from patterns.
11051         (call_value, call_value_internal1): Likewise.
11052         (call_value_multiple_internal1): Likewise.
11053
11054 2011-02-15  Nick Clifton  <nickc@redhat.com>
11055
11056         * config/mn10300/mn10300.c: Include tm-constrs.h.
11057         (struct liw_data): New data structure describing an LIW candidate
11058         instruction.
11059         (extract_bundle): Use struct liw_data.  Allow small integer
11060         operands for some instructions.
11061         (check_liw_constraints): Use struct liw_data.  Remove swapped
11062         parameter.  Add comments describing the checks.  Fix bug when
11063         assigning the source of liw1 to the source of liw2.
11064         (liw_candidate): Delete.  Code moved into extract_bundle.
11065         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11066         before swapping.
11067         * config/mn10300/predicates.md (liw_operand): New predicate.
11068         Allows registers and small integer constants.
11069         * config/mn10300/constraints.md (O): New constraint.  Accetps
11070         integers in the range -8 to +7 inclusive.
11071         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11072         for moving a small integer into a register.  Give this alternative
11073         LIW attributes.
11074         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11075         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11076         using the J,K,L and M constraints,
11077         (liw): Remove SI mode on second operands to allow for HI and QI
11078         mode values.
11079         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11080         instruction.
11081
11082 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11083
11084         PR middle-end/47725
11085         * combine.c (cant_combine_insn_p): Check zero/sign extended
11086         hard registers.
11087
11088 2011-02-15  Richard Guenther  <rguenther@suse.de>
11089
11090         PR tree-optimization/47743
11091         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11092         for a non-type-compatible VN lookup bail out.
11093
11094 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11095
11096         * config/fr30/constraints.md: New file.
11097         * config/fr30/fr30.md: Include it.
11098         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11099         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11100         (EXTRA_CONSTRAINT): Delete.
11101
11102 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11103
11104         * config/frv/constraints.md: New file.
11105         * config/frv/predicates.md: Include it.
11106         * config/frv/frv.c (reg_class_from_letter): Delete.
11107         (frv_option_override): Don't initialize it.
11108         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11109         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11110         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11111         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11112         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11113         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11114         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11115         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11116         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11117         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11118         (REG_CLASS_FROM_CONSTRAINT): Delete.
11119
11120 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11121
11122         PR middle-end/47581
11123         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11124         if frame size is 0 in a leaf function.
11125
11126 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11127
11128         PR pch/14940
11129         * config/alpha/host-osf.c: New file.
11130         * config/alpha/x-osf: New file.
11131         * config.host (alpha*-dec-osf*): Use it.
11132
11133 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11134
11135         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11136         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11137         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11138         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11139         type to const_rtx.
11140         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11141
11142 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11143
11144         * config/stormy16/constraints.md: New file.
11145         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11146         Use satisfies_constraint_Q and satisfies_constraint_R.
11147         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11148         Delete.
11149         (xstormy16_legitiamte_address_p): Declare.
11150         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11151         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11152         (EXTRA_CONSTRAINT): Delete.
11153         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11154         Un-staticize.
11155         (xstormy16_extra_constraint_p): Delete.
11156
11157 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11158
11159         PR tree-optimization/46494
11160         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11161         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11162         (pass_rtl_loop_done): Add TODO_verify_flow.
11163         * fwprop.c (pass_rtl_fwprop): Likewise.
11164         * modulo-sched.c (pass_sms): Likewise.
11165         * tree-ssa-dom.c (pass_dominator): Likewise.
11166         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11167         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11168         (pass_tree_loop_done): Likewise.
11169         * tree-ssa-pre.c (execute_pre): Likewise.
11170         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11171         * tree-ssa-sink.c (pass_sink_code): Likewise.
11172         * tree-vrp.c (pass_vrp): Likewise.
11173
11174 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11175
11176         * config/v850/constraints.md: New file.
11177         * config/v850/v850.md: Include it.
11178         * config/v850/predicates.md (reg_or_0_operand): Use
11179         satisfies_constraint_G.
11180         (special_symbolref_operand): Use satisfies_constraint_K.
11181         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11182         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11183         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11184         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11185         (EXTRA_CONSTRAINT): Delete.
11186         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11187         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11188         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11189
11190 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11191
11192         PR target/47696
11193         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11194         description.
11195
11196 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11197
11198         * config/mcore/constraints.md: New file.
11199         * config/mcore/mcore.md: Include it.
11200         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11201         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11202         (REG_CLASS_FROM_LETTER): Delete.
11203         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11204         insn_const_int_ok_for_constraint.
11205         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11206         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11207         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11208         (EXTRA_CONSTRAINT): Delete.
11209
11210 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11211
11212         PR ada/41929
11213         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11214         (IS_SIGHANDLER): Define.
11215         (sparc64_is_sighandler): New function, split off from
11216         sparc64_fallback_frame_state.
11217         (sparc_is_sighandler): New function, split off from
11218         sparc_fallback_frame_state.
11219         (sparc64_fallback_frame_state): Merge with ...
11220         (sparc_fallback_frame_state): ... this into ...
11221         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11222         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11223         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11224         stack instead of hardcoded offsets.
11225
11226 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11227
11228         PR target/45808
11229         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11230
11231 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11232
11233         * configure: Regenerate.
11234
11235 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11236
11237         PR driver/45731
11238         * gcc.c (asm_options): Correct spec matching --target-help.
11239
11240 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11241
11242         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11243         to gimple call error.
11244
11245 2011-02-12  Mike Stump  <mikestump@comcast.net>
11246
11247         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11248         comments in backslash regions.
11249
11250 2011-02-12  Mike Stump  <mikestump@comcast.net>
11251             Jakub Jelinek  <jakub@redhat.com>
11252             Iain Sandoe  <iains@gcc.gnu.org>
11253
11254         PR target/47324
11255         * dwarf2out.c (output_cfa_loc): When required, apply the
11256         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11257         (output_loc_sequence): Likewise.
11258         (output_loc_operands_raw): Likewise.
11259         (output_loc_sequence_raw): Likewise.
11260         (output_cfa_loc): Likewise.
11261         (output_loc_list): Suppress register number adjustment when
11262         calling output_loc_sequence()
11263         (output_die): Likewise.
11264
11265 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11266
11267         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11268         Remove macros.
11269         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11270         xtensa_memory_move_cost): New functions.
11271         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11272
11273 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11274
11275         PR lto/47225
11276         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11277         in the current directory.
11278         * configure: Rebuilt.
11279
11280 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11281
11282         * config/darwin.c (darwin_override_options): Add a hunk missed
11283         from the commit of r168571.  Trim comment line lengths and
11284         correct indents of the preceding block.
11285
11286 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11287
11288         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11289         the switch.
11290
11291 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11292
11293         * common.opt (nostartfiles): New Driver option.
11294
11295 2011-02-11  Xinliang David Li  <davidxl@google.com>
11296
11297         PR tree-optimization/47707
11298         * tree-chrec.c (convert_affine_scev): Keep type precision.
11299
11300 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11301
11302         PR tree-optimization/47420
11303         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11304
11305 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11306
11307         PR rtl-optimization/47614
11308         * rtl.h (check_for_inc_dec): Declare.
11309         * dse.c (check_for_inc_dec): Externalize...
11310         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11311         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11312
11313 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11314
11315         PR driver/47678
11316         * gcc.c (main): Do not compile inputs if there were errors in
11317         option handling.
11318         * opts-common.c (read_cmdline_option): Check for wrong language
11319         after other error checks.
11320
11321 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11322
11323         * cgraph.c: Fix comment typos.
11324         * cgraph.h: Likewise.
11325         * cgraphunit.c: Likewise.
11326         * ipa-cp.c: Likewise.
11327         * ipa-inline.c: Likewise.
11328         * ipa-prop.c: Likewise.
11329         * ipa-pure-const.c: Likewise.
11330         * ipa-ref.c: Likewise.
11331         * ipa-reference.c: Likewise.
11332
11333 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11334
11335         PR debug/47684
11336         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11337
11338 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11339
11340         PR testsuite/47400
11341         * doc/sourcebuild.texi (Require Support): Document
11342         dg-require-ascii-locale.
11343
11344 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11345
11346         * doc/lto.texi (Write summary): Fix missing parentheses.
11347
11348 2011-02-10  DJ Delorie  <dj@redhat.com>
11349
11350         * config/m32c/m32c.c (m32c_option_override): Disable
11351         -fcombine-stack-adjustments until flag value tracking and compare
11352         optimization can be rewritten.
11353
11354 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11355
11356         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11357         PROCESSOR_POWER7.
11358         (PROCESSOR_DEFAULT64): Likewise.
11359
11360 2011-02-10  Richard Henderson  <rth@redhat.com>
11361
11362         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11363         change from 2011-02-03.
11364         * config/rx/rx.c (flags_from_code): Likewise.
11365         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11366         is valid, n/pz otherwise.
11367         (rx_select_cc_mode): Return CCmode if Y is not zero.
11368
11369 2011-02-10  Richard Guenther  <rguenther@suse.de>
11370
11371         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11372
11373 2011-02-10  Richard Guenther  <rguenther@suse.de>
11374
11375         PR tree-optimization/47677
11376         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11377
11378 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11379
11380         PR target/47665
11381         * combine.c (make_compound_operation): Only change shifts into
11382         multiplication for SCALAR_INT_MODE_P.
11383
11384 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11385
11386         PR testsuite/47622
11387         Revert
11388         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11389         PR debug/42631
11390         * web.c (entry_register): Don't clobber the number of the
11391         first uninitialized reference in used[].
11392
11393 2011-02-09  Richard Guenther  <rguenther@suse.de>
11394
11395         PR tree-optimization/47664
11396         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11397         all edges again.
11398
11399 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11400
11401         PR target/46481
11402         PR target/47032
11403         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11404         PROCESSOR_POWER7.
11405         (PROCESSOR_DEFAULT64): Same.
11406         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11407
11408 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11409
11410         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11411
11412 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11413
11414         PR middle-end/45505
11415         * tree-sra.c (struct access): New flags grp_scalar_read and
11416         grp_scalar_write.  Changed description of assignment read and write
11417         flags.
11418         (dump_access): Dump new flags, reorder all of them.
11419         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11420         to detect multiple scalar reads.
11421         (analyze_access_subtree): Use the new scalar read write flags instead
11422         of the old flags.  Adjusted comments.
11423
11424 2011-02-08  DJ Delorie  <dj@redhat.com>
11425
11426         PR target/47548
11427         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11428         patterns.
11429
11430 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11431
11432         * config/m68k/uclinux.opt: New.
11433         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11434
11435 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11436
11437         * config/cris/elf.opt (sim): New Driver option.
11438
11439 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11440
11441         * config/xtensa/elf.opt: New.
11442         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11443
11444 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11445
11446         * config/vax/elf.opt: New.
11447         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11448
11449 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11450
11451         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11452
11453 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11454
11455         * config/gnu-user.opt: New.
11456         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11457         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11458         *-*-uclinux*): Use gnu-user.opt.
11459
11460 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11461
11462         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11463         * config/i386/gnu.h (CPP_SPEC): Likewise.
11464
11465 2011-02-08  Ian Lance Taylor  <iant@google.com>
11466
11467         * common.opt (fcx-limited-range): Add SetByCombined flag.
11468         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11469         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11470         (fassociative-math, freciprocal-math): Likewise.
11471         (funsafe-math-optimizations): Likewise.
11472         * opth-gen.awk: Handle SetByCombined.
11473         * optc-gen.awk: Likewise.
11474         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11475         (set_unsafe_math_optimizations_flags): Likewise.
11476         * doc/options.texi (Option properties): Document SetByCombined.
11477
11478 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11479
11480         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11481         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11482         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11483         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11484         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11485
11486 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11487
11488         PR tree-optimization/46834
11489         PR tree-optimization/46994
11490         PR tree-optimization/46995
11491         * graphite-sese-to-poly.c (used_outside_reduction): New.
11492         (detect_commutative_reduction): Call used_outside_reduction.
11493         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11494         translate_scalar_reduction_to_array only when at least one
11495         loop-phi/close-phi tuple has been detected.
11496
11497 2011-02-08  Richard Guenther  <rguenther@suse.de>
11498
11499         PR middle-end/47639
11500         * tree-vect-generic.c (expand_vector_operations_1): Update
11501         stmts here ...
11502         (expand_vector_operations): ... not here.  Cleanup EH info
11503         and the CFG if required.
11504
11505 2011-02-08  Richard Guenther  <rguenther@suse.de>
11506
11507         PR tree-optimization/47641
11508         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11509         require type compatibility.
11510
11511 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11512
11513         * gimple-low.c (lower_function_body): Don't remove the location of
11514         the return statement here.
11515         (lower_gimple_return): Do it here instead but only if the return
11516         statement is actually used twice.
11517
11518 2011-02-08  Richard Guenther  <rguenther@suse.de>
11519
11520         PR tree-optimization/47632
11521         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11522         unused up_to_stmt parameter, return whether cfg-cleanup is
11523         necessary, remove EH info properly.
11524         (forward_propagate_into_gimple_cond): Adjust caller.
11525         (forward_propagate_into_cond): Likewise.
11526         (forward_propagate_comparison): Likewise.
11527         (tree_ssa_forward_propagate_single_use_vars): Make
11528         forward_propagate_comparison case similar to the two others.
11529
11530 2011-02-08  Nick Clifton  <nickc@redhat.com>
11531
11532         * config/mn10300/mn10300.opt (mliw): New command line option.
11533         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11534         (liw_bundling): New automaton.
11535         (liw): New attribute.
11536         (liw_op): New attribute.
11537         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11538         (movsi_internal): Add LIW attributes.
11539         (andsi3): Likewise.
11540         (iorsi3): Likewise.
11541         (xorsi3): Likewise.
11542         (addsi3): Separate register and immediate alternatives.
11543         Add LIW attributes.
11544         (subsi3): Likewise.
11545         (cmpsi): Likewise.
11546         (aslsi3): Likewise.
11547         (lshrsi3): Likewise.
11548         (ashrsi3): Likewise.
11549         (liw): New pattern.
11550         * config/mn10300/mn10300.c (liw_op_names): New
11551         (mn10300_print_operand): Handle 'W' operand descriptor.
11552         (extract_bundle): New function.
11553         (check_liw_constraints): New function.
11554         (liw_candidate): New function.
11555         (mn10300_bundle_liw): New function.
11556         (mn10300_reorg): New function.
11557         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11558         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11559         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11560         __LIW__ or __NO_LIW__.
11561         * doc/invoke.texi: Describe the -mliw command line option.
11562
11563 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11564
11565         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11566         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11567         pthread_mutex_unlock): Remove.
11568         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11569         * config/pa/t-pa64: Likewise.
11570         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11571         shared libc if not linking against libpthread.
11572         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11573
11574 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11575
11576         PR target/47558
11577         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11578         on 10.6 and later to ensure that we always use the unwinder from
11579         the system.  Only add -no_compact_unwind when tarteting darwin
11580         10.6 or later.
11581
11582 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11583
11584         PR target/46997
11585         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11586         (vec_interleave_lowv2sf): Ditto.
11587         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11588         (vec_extract_oddv2sf): Ditto.
11589
11590 2011-02-07  Mike Stump  <mikestump@comcast.net>
11591
11592         PR target/42333
11593         Add __ieee_divdc3 entry point.
11594         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11595         entry point.
11596         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11597         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11598         * config/darwin.c (darwin_rename_builtins): Add.
11599         * config/darwin-protos.h (darwin_rename_builtins): Add.
11600
11601 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11602
11603         PR target/47636
11604         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11605         for the condition.
11606
11607 2011-02-07  Mike Stump  <mikestump@comcast.net>
11608
11609         * config/darwin.opt (mmacosx-version-min): Update default OS version.
11610
11611 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
11612
11613         PR target/47534
11614         * config/avr/libgcc.S (exit): Move .endfunc
11615
11616 2011-02-07  Richard Guenther  <rguenther@suse.de>
11617
11618         PR tree-optimization/47615
11619         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11620         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11621         (run_scc_vn): Initialize it.
11622         (visit_reference_op_load): Use it.
11623         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11624
11625 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11626
11627         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11628         DImode trapping arithmetic libfuncs.
11629
11630 2011-02-07  Richard Guenther  <rguenther@suse.de>
11631
11632         PR tree-optimization/47621
11633         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11634         two duplicates ...
11635         (execute_update_addresses_taken): ... here.  Make it more
11636         conservative in what we accept.
11637
11638 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11639
11640         * config/sparc/freebsd.h (ASM_SPEC): Define.
11641         * config/sparc/vxworks.h (ASM_SPEC): Define.
11642
11643 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11644
11645         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11646
11647 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11648
11649         * doc/invoke.texi: Remove reference to compiler internals from
11650         user documentation.
11651
11652         * reg-notes.def: Remove REG_VALUE_PROFILE.
11653         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11654
11655 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
11656
11657         PR middle-end/47610
11658         * varasm.c (default_section_type_flags): If decl is NULL,
11659         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
11660
11661 2011-02-05  Jie Zhang  <jie@codesourcery.com>
11662
11663         PR debug/42631
11664         * web.c (entry_register): Don't clobber the number of the
11665         first uninitialized reference in used[].
11666
11667 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
11668
11669         PR tree-optimization/46194
11670         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11671         (build_classic_dist_vector_1): Do not represent classic distance
11672         vectors when the access functions are variating in different loops.
11673
11674 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11675
11676         * config/mips/iris6.opt: New.
11677         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11678
11679 2011-02-04  Richard Henderson  <rth@redhat.com>
11680             Steve Ellcey  <sje@cup.hp.com>
11681
11682         PR target/46997
11683         * config/ia64/predicates.md (mux1_brcst_element): New.
11684         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11685         * config/ia64/ia64.c (ia64_unpack_assemble): New.
11686         (ia64_unpack_sign): New.
11687         (ia64_expand_unpack): Rewrite using new routines.
11688         (ia64_expand_widen_sum): Ditto.
11689         (ia64_expand_dot_prod_v8qi): Ditto.
11690         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11691         routines, add endian check.
11692         (pmpy2_even): Rename from pmpy2_r, add endian check.
11693         (pmpy2_odd): Rename from pmpy2_l, add endian check.
11694         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11695         (vec_widen_smult_hi_v4hi): Ditto.
11696         (vec_widen_umult_lo_v4hi): Ditto.
11697         (vec_widen_umult_hi_v4hi): Ditto.
11698         (mulv2si3): Change endian checks.
11699         (sdot_prodv4hi): Rewrite with new calls.
11700         (udot_prodv4hi): New.
11701         (vec_pack_ssat_v4hi): Add endian check.
11702         (vec_pack_usat_v4hi): Ditto.
11703         (vec_pack_ssat_v2si): Ditto.
11704         (max1_even): Rename from max1_r, add endian check.
11705         (max1_odd): Rename from max1_l, add endian check.
11706         (*mux1_rev): Format change.
11707         (*mux1_mix): Ditto.
11708         (*mux1_shuf): Ditto.
11709         (*mux1_alt): Ditto.
11710         (*mux1_brcst_v8qi): Use new predicate.
11711         (vec_extract_evenv8qi): Remove endian check.
11712         (vec_extract_oddv8qi): Ditto.
11713         (vec_interleave_lowv4hi): Format change.
11714         (vec_interleave_highv4hi): Ditto.
11715         (mix2_even): Rename from mix2_r, add endian check.
11716         (mix2_odd): Rename from mux2_l, add endian check.
11717         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11718         (vec_extract_evenodd_helper): Format change.
11719         (vec_extract_evenv4hi): Remove endian check.
11720         (vec_extract_oddv4hi): Remove endian check.
11721         (vec_interleave_lowv2si): Format change.
11722         (vec_interleave_highv2si): Format change.
11723         (vec_initv2si): Remove endian check.
11724         (vecinit_v2si): Add endian check.
11725         (reduc_splus_v2sf): Add endian check.
11726         (reduc_smax_v2sf): Ditto.
11727         (reduc_smin_v2sf): Ditto.
11728         (vec_initv2sf): Remove endian check.
11729         (fpack): Add endian check.
11730         (fswap): Add endian check.
11731         (vec_interleave_highv2sf): Add endian check.
11732         (vec_interleave_lowv2sf): Add endian check.
11733         (fmix_lr): Add endian check.
11734         (vec_setv2sf): Format change.
11735         (*vec_extractv2sf_0_be): Use shift to extract operand.
11736         (*vec_extractv2sf_1_be): New.
11737         (vec_pack_trunc_v4hi): Add endian check.
11738         (vec_pack_trunc_v2si): Format change.
11739
11740 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
11741
11742         PR inline-asm/23200
11743         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
11744         do bb, locus and block comparison and disallow loads if it is not set.
11745         (stmt_is_replaceable_p): New function.
11746         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11747         callers.
11748         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11749         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11750         SSA_NAME_DEF_STMT.
11751         * tree-flow.h (stmt_is_replaceable_p): New prototype.
11752
11753 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11754
11755         * config/rs6000/xilinx.opt: New.
11756         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11757
11758 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11759
11760         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11761
11762 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
11763
11764         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11765         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11766         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11767         secondary_reload_info, xtensa_secondary_reload): Remove.
11768         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11769         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11770         (xtensa_preferred_reload_class): Make static. Change return and
11771         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11772         Use CONST_DOUBLE_P predicate.
11773         (xtensa_preferred_output_reload_class): New function.
11774         (xtensa_secondary_reload): Make static.
11775
11776 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
11777
11778         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11779         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11780         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11781
11782 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11783
11784         PR middle-end/31490
11785         * output.h (SECTION_RELRO): Define.
11786         (SECTION_MACH_DEP): Adjust.
11787         (get_variable_section): New prototype.
11788         * varpool.c (varpool_finalize_named_section_flags): New function.
11789         (varpool_assemble_pending_decls): Call it.
11790         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11791         * cgraphunit.c (cgraph_output_in_order): Call
11792         varpool_finalize_named_section_flags.
11793         * varasm.c (get_section): Allow section flags conflicts between
11794         relro and read-only sections if the section hasn't been declared yet.
11795         Set SECTION_OVERRIDE after diagnosing section type conflict.
11796         (get_variable_section): No longer static.
11797         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11798         readonly sections that need relocations.
11799         (decl_readonly_section_1): New function.
11800         (decl_readonly_section): Use it.
11801
11802         Revert:
11803         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
11804                     Steve Ellcey  <sje@cup.hp.com>
11805
11806         PR middle-end/31490
11807         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11808         if section attribute used.
11809
11810 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11811
11812         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11813         * config/darwin.c (SECTION_NO_ANCHOR): Define.
11814         (darwin_init_sections): Remove assertion.
11815
11816 2011-02-03  Nick Clifton  <nickc@redhat.com>
11817
11818         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11819         lt and ge.
11820         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
11821         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11822         instead of "n" and "pz".
11823         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11824         CC_FLAG_S.
11825
11826 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11827
11828         PR target/47312
11829         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11830         fma, expand FMA_EXPR as fma{,f,l} call.
11831
11832         PR lto/47274
11833         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11834         copy them into a unsigned char variable and pass address of it to
11835         lto_output_data_stream.
11836
11837         PR target/47564
11838         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11839         around backend_init_target and lang_dependent_init_target calls.
11840         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11841         (verify_cgraph_node): Don't call set_cfun here.  Use
11842         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11843         Set error_found for incorrectly represented calls to thunks.
11844
11845 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11846
11847         PR debug/43092
11848         PR rtl-optimization/43494
11849         * rtl.h (for_each_inc_dec_fn): New type.
11850         (for_each_inc_dec): Declare.
11851         * rtlanal.c (struct for_each_inc_dec_ops): New type.
11852         (for_each_inc_dec_find_inc_dec): New fn.
11853         (for_each_inc_dec_find_mem): New fn.
11854         (for_each_inc_dec): New fn.
11855         * dse.c (struct insn_size): Remove.
11856         (replace_inc_dec, replace_inc_dec_mem): Remove.
11857         (emit_inc_dec_insn_before): New fn.
11858         (check_for_inc_dec): Use it, along with for_each_inc_dec.
11859         (canon_address): Pass mem modes to cselib_lookup.
11860         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
11861         (cselib_lookup_from_insn): Likewise.
11862         (cselib_subst_to_values): Likewise.
11863         * cselib.c (find_slot_memmode): New var.
11864         (cselib_find_slot): New fn.  Use it instead of
11865         htab_find_slot_with_hash everywhere.
11866         (entry_and_rtx_equal_p): Use find_slot_memmode.
11867         (autoinc_split): New fn.
11868         (rtx_equal_for_cselib_p): Rename and implement in terms of...
11869         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
11870         Deal with autoinc.  Special-case recursion into MEMs.
11871         (cselib_hash_rtx): Likewise.
11872         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
11873         address and MEM modes.
11874         (cselib_subst_to_values): Add memmode, pass it on.
11875         Deal with autoinc.
11876         (cselib_lookup): Add memmode argument, pass it on.
11877         (cselib_lookup_from_insn): Add memmode.
11878         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11879         (struct cselib_record_autoinc_data): New.
11880         (cselib_record_autoinc_cb): New fn.
11881         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
11882         mode to cselib_lookup.  Reset autoinced REGs here instead of...
11883         (cselib_process_insn): ... here.
11884         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11885         to cselib_lookup.
11886         (add_uses): Likewise, also to cselib_subst_to_values.
11887         (add_stores): Likewise.
11888         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
11889         cselib_subst_to_values.
11890         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
11891         * gcse.c (do_local_cprop): Adjusted.
11892         * postreload.c (reload_cse_simplify_set): Adjusted.
11893         (reload_cse_simplify_operands): Adjusted.
11894         * sel-sched-dump (debug_mem_addr_value): Pass mode.
11895
11896 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11897
11898         PR tree-optimization/45122
11899         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11900         unsafe assumptions when there's more than one loop exit.
11901
11902 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11903
11904         PR target/47272
11905         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11906         Document using vector double with the load/store builtins, and
11907         that the load/store builtins always use Altivec instructions.
11908
11909         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11910         to use altivec memory instructions, even on VSX.
11911         (vector_altivec_store_<mode>): Ditto.
11912
11913         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11914         function.
11915
11916         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11917         V2DF, V2DI support to load/store overloaded builtins.
11918
11919         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11920         altivec load/store builtins for V2DF/V2DI types.
11921
11922         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11923         set avoid indexed addresses on power6 if -maltivec.
11924         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11925         vector_altivec_load/vector_altivec_store builtins.
11926         (altivec_expand_st_builtin): Ditto.
11927         (altivec_expand_builtin): Add VSX memory builtins.
11928         (rs6000_init_builtins): Add V2DI types to internal types.
11929         (altivec_init_builtins): Add support for V2DF/V2DI altivec
11930         load/store builtins.
11931         (rs6000_address_for_altivec): Insure memory address is appropriate
11932         for Altivec.
11933
11934         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11935         vec_vsx_ld and vec_vsx_st.
11936         (vsx_store_<mode>): Ditto.
11937
11938         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
11939         variables to hold long long types for VSX vector memory builtins.
11940         (RS6000_BTI_unsigned_long_long): Ditto.
11941         (long_long_integer_type_internal_node): Ditti.
11942         (long_long_unsigned_type_internal_node): Ditti.
11943
11944         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
11945         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
11946         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
11947
11948         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
11949         short cuts.
11950         (vec_vsx_st): Ditto.
11951
11952 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11953
11954         * config/pa/pa-hpux10.opt: New.
11955         * config/hpux11.opt (pthread): New Driver option.
11956         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
11957         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
11958
11959 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11960
11961         * config/ia64/vms.opt: New.
11962         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
11963
11964 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
11965
11966         PR target/47580
11967         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
11968         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
11969         generator functions.
11970         (vsx_floatuns<VSi><mode>2): Ditto.
11971         (vsx_fix_trunc<mode><VSi>2): Ditto.
11972         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
11973
11974 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11975
11976         * config/i386/djgpp.opt (posix): New Driver option.
11977
11978 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11979
11980         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
11981         Move to the unsupported targets list.
11982
11983 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
11984
11985         PR rtl-optimization/47525
11986         * df-scan.c: Update copyright years.
11987         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
11988         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
11989
11990 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11991
11992         * config/i386/sysv4.h (TARGET_VERSION): Remove.
11993         (SUBTARGET_RETURN_IN_MEMORY): Remove.
11994         (ASM_OUTPUT_ASCII): Remove.
11995         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
11996
11997 2011-02-02  Jeff Law  <law@redhat.com>
11998
11999         PR middle-end/47543
12000         * reload.c (find_reloads_address): Handle reg+d address where both
12001         components are invalid by reloading the entire address.
12002
12003 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12004             Richard Guenther  <rguenther@suse.de>
12005
12006         PR tree-optimization/40979
12007         PR bootstrap/47044
12008         * passes.c (init_optimization_passes): After LIM call copy_prop
12009         and DCE to clean up.
12010         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12011
12012 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12013
12014         PR tree-optimization/47576
12015         PR tree-optimization/47555
12016         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12017         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12018         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12019         * tree-scalar-evolution.c (follow_ssa_edge): Use
12020         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12021
12022 2011-02-02  Richard Guenther  <rguenther@suse.de>
12023
12024         PR tree-optimization/47566
12025         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12026
12027 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12028
12029         PR debug/47106
12030         PR debug/47402
12031         * tree-inline.c (declare_return_variable): Remove unused caller
12032         variable.
12033
12034         PR debug/47106
12035         PR debug/47402
12036         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12037         * cfgexpand.c (account_used_vars_for_block): Use them.
12038         * tree-nrv.c (tree_nrv): Likewise.
12039         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12040         (dump_scope_block): Likewise.
12041         (remove_unused_locals): Likewise.
12042
12043         PR debug/47106
12044         PR debug/47402
12045         * tree-inline.c (declare_return_variable): Add result decl to
12046         local decls only once.
12047         * gimple-low.c (record_vars_into): Mark newly-created variables
12048         as referenced.
12049
12050 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12051
12052         PR debug/47498
12053         PR debug/47501
12054         PR debug/45136
12055         PR debug/45130
12056         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12057         debug insns.
12058         (no_real_insns_p, schedule_block, set_priorities): Drop special
12059         treatment of boundary debug insns.
12060         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12061         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12062         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12063         (BOUNDARY_DEBUG_INSN_P): Likewise.
12064         (SCHEDULE_DEBUG_INSN_P): Likewise.
12065         * sched-rgn.c (init_ready_list): Drop special treatment of
12066         boundary debug insns.
12067         * final.c (rest_of_clean_state): Clear notes' BB.
12068
12069 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12070
12071         * config/openbsd.opt (assert=): New Driver option.
12072
12073 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12074
12075         * config/i386/nto.opt: New.
12076         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12077
12078 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12079
12080         * config/i386/netware.opt: New.
12081         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12082
12083 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12084
12085         * config/interix.opt (posix): New Driver option.
12086
12087 2011-02-01  DJ Delorie  <dj@redhat.com>
12088
12089         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12090
12091         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12092         class for A0/A1.
12093
12094 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12095
12096         PR tree-optimization/47561
12097         * toplev.c (process_options): Print the Graphite flags.  Add
12098         flag_loop_flatten to the list of options requiring Graphite.
12099
12100 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12101
12102         * config/i386/cygming.opt (posix): New Driver option.
12103
12104 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12105
12106         * config/arm/vxworks.opt: New.
12107         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12108
12109 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12110
12111         * config/alpha/elf.opt: New.
12112         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12113         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12114
12115 2011-02-01  Richard Guenther  <rguenther@suse.de>
12116
12117         PR tree-optimization/47559
12118         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12119         store-motion on references that can throw.
12120
12121 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12122
12123         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12124         * tree-pass.h (TDF_CSELIB): New macro.
12125         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12126         cselib_lookup): Check for it rather than for TDF_DETAILS.
12127
12128 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12129
12130         PR driver/47547
12131         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12132         is HOST_BIT_BUCKET.
12133
12134         * opts.c (finish_options): Don't add x_aux_base_name if it is
12135         HOST_BIT_BUCKET.
12136
12137 2011-02-01  Richard Guenther  <rguenther@suse.de>
12138
12139         PR tree-optimization/47555
12140         Revert
12141         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12142
12143         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12144
12145 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12146
12147         PR gcc/46692
12148         * config/lm32/t-lm32: Add multilib for all CPU options.
12149
12150 2011-02-01  Richard Guenther  <rguenther@suse.de>
12151
12152         PR tree-optimization/47541
12153         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12154         sure to have a field at offset zero.
12155
12156 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12157
12158         * config/arc/arc.opt (EB, EL): New Driver options.
12159
12160 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12161
12162         * config/alpha/osf5.opt: New.
12163         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12164
12165 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12166
12167         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12168
12169 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12170
12171         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12172         -floop-interchange.
12173         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12174         is an alias of -floop-interchange and that it requires the
12175         Graphite infrastructure.
12176         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12177         flag_loop_interchange based on the value of flag_tree_loop_linear.
12178
12179 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12180             Richard Guenther  <rguenther@suse.de>
12181
12182         PR tree-optimization/47538
12183         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12184         type instead of r1type, except for comparisons.  For right
12185         shifts and comparisons punt if there are mismatches in
12186         sizetype vs. non-sizetype types.
12187
12188 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12189
12190         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12191         avx_runtime.
12192
12193 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12194
12195         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12196         version number.
12197         * configure: Regenerate.
12198
12199 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12200
12201         * configure.ac (gcc_cv_ld_static_option): Define.
12202         (gcc_cv_ld_dynamic_option): Define.
12203         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12204         instead.
12205         (HAVE_LD_STATIC_DYNAMIC): Update message.
12206         (LD_STATIC_OPTION): Define.
12207         (LD_DYNAMIC_OPTION): Define.
12208         * configure: Regenerate.
12209         * config.in: Regenerate.
12210         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12211         HAVE_LD_STATIC_DYNAMIC]: Use them.
12212
12213 2011-01-31  Nick Clifton  <nickc@redhat.com>
12214
12215         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12216         registers inside interrupt handlers if the handler is not a leaf
12217         function.
12218
12219 2011-01-31  Nick Clifton  <nickc@redhat.com>
12220
12221         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12222         reg_renumber returning an INVALID_REGNUM.
12223
12224 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12225
12226         PR libgcj/44341
12227         * doc/install.texi: Document host options discarded when cross
12228         configuring target libraries.
12229
12230 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12231
12232         Reverted:
12233         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12234         PR debug/45136
12235         PR debug/45130
12236         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12237         debug insns.
12238         (no_real_insns_p, schedule_block, set_priorities): Drop special
12239         treatment of boundary debug insns.
12240         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12241         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12242         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12243         (BOUNDARY_DEBUG_INSN_P): Likewise.
12244         (SCHEDULE_DEBUG_INSN_P): Likewise.
12245         * sched-rgn.c (init_ready_list): Drop special treatment of
12246         boundary debug insns.
12247         * final.c (rest_of_clean-state): Clear notes' BB.
12248
12249 2011-01-31  Alan Modra  <amodra@gmail.com>
12250
12251         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12252         toc relative expressions as we do in print_operand_address.
12253
12254 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12255
12256         * doc/extend.texi: Follow spelling conventions.
12257         * doc/invoke.texi: Fix a typo.
12258
12259 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12260
12261         * config/hpux11.opt: New.
12262         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12263         ia64*-*-hpux*): Use hpux11.opt.
12264
12265 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12266
12267         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12268         to tmake_file.
12269
12270 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12271
12272         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12273         support sites.
12274
12275 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12276
12277         * doc/install.texi (Binaries): Remove outdated reference for
12278         Motorola 68HC11/68HC12 downloads.
12279
12280 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12281
12282         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12283         Drepper's paper.
12284
12285 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12286
12287         PR bootstrap/47147
12288         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12289         used by NetBSD.
12290
12291 2011-01-28  Ahmad Sharif  <asharif@google.com>
12292
12293         * value-prof.c (check_counter): Corrected error message.
12294
12295 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12296
12297         * config/arm/arm.c (arm_legitimize_reload_address): New.
12298         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12299         arm_legitimize_reload_address.
12300         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12301
12302 2011-01-28  Ian Lance Taylor  <iant@google.com>
12303
12304         * godump.c (go_define): Ignore macros whose definitions include
12305         two adjacent operands.
12306
12307 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12308
12309         PR target/42894
12310         * varasm.c (force_const_mem): Store copy of x in desc->constant
12311         instead of x itself.
12312         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12313         itself into REG_EQUAL note.
12314
12315 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12316
12317         * config/freebsd.opt (posix, rdynamic): New Driver options.
12318
12319 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12320
12321         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12322         -Bstatic/-Bdynamic.
12323         * configure: Regenerate.
12324
12325 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12326
12327         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12328         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12329
12330 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12331
12332         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12333         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12334         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12335         (s390_preferred_reload_class): Make static. Change return and
12336         'rclass' argument type to reg_class_t.
12337
12338 2011-01-27  Jan Hubicka  <jh@suse.cz>
12339
12340         PR middle-end/46949
12341         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12342         (process_function_and_variable_attributes): Check defined weakrefs.
12343
12344 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12345
12346         PR tree-optimization/47228
12347         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12348         build_ref_for_offset.
12349
12350 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12351
12352         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12353
12354 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12355
12356         PR rtl-optimization/46856
12357         * postreload.c (reload_combine_recognize_const_pattern): Do not
12358         separate cc0 setter and user on cc0 targets.
12359
12360 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12361
12362         PR c/43082
12363         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12364         passed a VOID_TYPE expression, immediately emit an error and
12365         return error_mark_node.
12366
12367 2011-01-26  Jeff Law  <law@redhat.com>
12368
12369         PR rtl-optimization/47464
12370         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12371         rather than may_trap_p as needed.
12372
12373 2011-01-26  DJ Delorie  <dj@redhat.com>
12374
12375         PR rtl-optimization/46878
12376         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12377         setter/user dependency as well.
12378
12379 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12380
12381         PR rtl-optimization/44469
12382         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12383         after removing trivially dead basic blocks.
12384
12385 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12386
12387         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12388         * config/frv/frv.h (LINK_SPEC): Likewise.
12389         * config/i386/netware.h (LINK_SPEC): Likewise.
12390         * config/m68k/linux.h (ASM_SPEC): Likewise.
12391         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12392         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12393         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12394         * config/sparc/linux.h (ASM_SPEC): Likewise.
12395         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12396         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12397
12398 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12399
12400         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12401         * config/frv/frv.h (ASM_SPEC): Likewise.
12402         * config/m68k/linux.h (ASM_SPEC): Likewise.
12403         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12404         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12405         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12406         * config/sparc/linux.h (ASM_SPEC): Likewise.
12407         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12408         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12409
12410 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12411
12412         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12413         * config/frv/frv.h (LINK_SPEC): Likewise.
12414         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12415
12416 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12417
12418         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12419         * config/frv/frv.h (ASM_SPEC): Likewise.
12420         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12421         * config/m68k/linux.h (ASM_SPEC): Likewise.
12422         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12423         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12424         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12425         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12426         * config/sparc/linux.h (ASM_SPEC): Likewise.
12427         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12428         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12429         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12430
12431 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12432
12433         PR target/46997
12434         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12435         (*mux2): Ditto.
12436         (vec_extract_evenodd_help): Ditto.
12437         (vec_extract_evenv4hi): Ditto.
12438         (vec_extract_oddv4hi): Ditto.
12439         (vec_interleave_lowv2si): Ditto.
12440         (vec_interleave_highv2si): Ditto.
12441         (vec_extract_evenv2si): Ditto.
12442         (vec_extract_oddv2si: Ditto.
12443         (vec_pack_trunc_v2si): Ditto.
12444
12445 2011-01-22  Jan Hubicka  <jh@suse.cz>
12446
12447         PR target/47237
12448         * cgraph.h (cgraph_local_info): New field can_change_signature.
12449         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12450         signature can change.
12451         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12452         can change.
12453         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12454         (cgraph_function_versioning): We can not change signature of functions
12455         that don't allow that.
12456         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12457         (lto_input_node): Likewise.
12458         * ipa-inline.c (compute_inline_parameters): Compute
12459         local.can_change_signature.
12460         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12461         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12462         functions that can not change signature.
12463         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12464         init_cumulative_args): Do not use local calling conventions
12465         for functions that can not change signature.
12466
12467 2011-01-22  Jan Hubicka  <jh@suse.cz>
12468
12469         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12470
12471 2011-01-26  Richard Guenther  <rguenther@suse.de>
12472
12473         PR tree-optimization/47190
12474         * cgraphunit.c (process_common_attributes): New function.
12475         (process_function_and_variable_attributes): Use it.
12476
12477 2011-01-26  Richard Guenther  <rguenther@suse.de>
12478
12479         PR lto/47423
12480         * cgraphbuild.c (record_eh_tables): Record reference to personality
12481         function.
12482
12483 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12484
12485         PR debug/45454
12486         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12487         non-debug insns from moving up.
12488
12489 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12490
12491         PR target/40125
12492         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12493         t-dlldir{,-x} fragment for build and add it to tmake_file.
12494         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12495         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12496         * config/i386/t-dlldir: New file.
12497         (SHLIB_DLLDIR): Define.
12498         * config/i386/t-dlldir-x: New file.
12499         (SHLIB_DLLDIR): Define.
12500         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12501         (SHLIB_INSTALL): Use it.
12502
12503 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12504
12505         PR target/47246
12506         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12507         lower bound of the allowed Thumb-2 coprocessor load/store
12508         index range to -256. Add explaining comment.
12509
12510 2011-01-25  Ian Lance Taylor  <iant@google.com>
12511
12512         * godump.c (go_define): Improve lexing of macro expansion to only
12513         accept expressions which match Go spec.
12514
12515 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12516
12517         PR c++/43601
12518         * tree.c (handle_dll_attribute): Handle it.
12519         * doc/extend.texi (@item dllexport): Mention it.
12520         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12521
12522 2011-01-25  Ian Lance Taylor  <iant@google.com>
12523
12524         PR tree-optimization/26854
12525         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12526         (decl_jump_unsafe): Move higher in file, with no other change.
12527         (bind): Set has_jump_unsafe_decl if appropriate.
12528         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12529         (check_earlier_gotos): Likewise.
12530         (c_check_switch_jump_warnings): Likewise.
12531
12532 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12533
12534         * doc/invoke.texi (Warning Options): Add missing hyphen.
12535         (-fprofile-dir): Minor grammatical fixes.
12536         (-fbranch-probabilities): Likewise.
12537
12538 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12539
12540         PR debug/45136
12541         PR debug/45130
12542         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12543         debug insns.
12544         (no_real_insns_p, schedule_block, set_priorities): Drop special
12545         treatment of boundary debug insns.
12546         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12547         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12548         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12549         (BOUNDARY_DEBUG_INSN_P): Likewise.
12550         (SCHEDULE_DEBUG_INSN_P): Likewise.
12551         * sched-rgn.c (init_ready_list): Drop special treatment of
12552         boundary debug insns.
12553         * final.c (rest_of_clean-state): Clear notes' BB.
12554
12555 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12556
12557         * Makefile.in (LAMBDA_H): Removed.
12558         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12559         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12560         lambda-trans.o, and tree-loop-linear.o.
12561         (lto-symtab.o): Remove dependence on LAMBDA_H.
12562         (tree-loop-linear.o): Remove rule.
12563         (lambda-mat.o): Same.
12564         (lambda-trans.o): Same.
12565         (lambda-code.o): Same.
12566         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12567         (tree-vect-slp.o): Same.
12568         * hwint.h (gcd): Moved here.
12569         (least_common_multiple): Same.
12570         * lambda-code.c: Removed.
12571         * lambda-mat.c: Removed.
12572         * lambda-trans.c: Removed.
12573         * lambda.h: Removed.
12574         * tree-loop-linear.c: Removed.
12575         * lto-symtab.c: Do not include lambda.h.
12576         * omega.c (gcd): Removed.
12577         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12578         * tree-data-ref.c (print_lambda_vector): Moved here.
12579         (lambda_vector_copy): Same.
12580         (lambda_matrix_copy): Same.
12581         (lambda_matrix_id): Same.
12582         (lambda_vector_first_nz): Same.
12583         (lambda_matrix_row_add): Same.
12584         (lambda_matrix_row_exchange): Same.
12585         (lambda_vector_mult_const): Same.
12586         (lambda_vector_negate): Same.
12587         (lambda_matrix_row_negate): Same.
12588         (lambda_vector_equal): Same.
12589         (lambda_matrix_right_hermite): Same.
12590         * tree-data-ref.h: Do not include lambda.h.
12591         (lambda_vector): Moved here.
12592         (lambda_matrix): Same.
12593         (dependence_level): Same.
12594         (lambda_transform_legal_p): Removed declaration.
12595         (lambda_collect_parameters): Same.
12596         (lambda_compute_access_matrices): Same.
12597         (lambda_vector_gcd): Same.
12598         (lambda_vector_new): Same.
12599         (lambda_vector_clear): Same.
12600         (lambda_vector_lexico_pos): Same.
12601         (lambda_vector_zerop): Same.
12602         (lambda_matrix_new): Same.
12603         * tree-flow.h (least_common_multiple): Removed declaration.
12604         * tree-parloops.c (lambda_trans_matrix): Moved here.
12605         (LTM_MATRIX): Same.
12606         (LTM_ROWSIZE): Same.
12607         (LTM_COLSIZE): Same.
12608         (LTM_DENOMINATOR): Same.
12609         (lambda_trans_matrix_new): Same.
12610         (lambda_matrix_vector_mult): Same.
12611         (lambda_transform_legal_p): Same.
12612         * tree-pass.h (pass_linear_transform): Removed declaration.
12613         * tree-ssa-loop.c (tree_linear_transform): Removed.
12614         (gate_tree_linear_transform): Removed.
12615         (pass_linear_transform): Removed.
12616         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12617         flag_loop_interchange.
12618
12619 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12620
12621         PR tree-optimization/47265
12622         PR tree-optimization/47443
12623         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12624         if name still has some uses.
12625
12626 2011-01-25  Martin Jambor  <mjambor@suse.cz>
12627
12628         PR tree-optimization/47382
12629         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12630         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12631
12632 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
12633
12634         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12635         sjlj_except_unwind_info.
12636
12637 2011-01-25  Richard Guenther  <rguenther@suse.de>
12638
12639         PR tree-optimization/47426
12640         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12641         visible functions results escape.
12642
12643 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12644
12645         PR target/45701
12646         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12647         (arm_get_frame_offsets): Use it.
12648
12649 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12650             Jakub Jelinek  <jakub@redhat.com>
12651
12652         PR tree-optimization/47271
12653         * tree-if-conv.c (bb_postdominates_preds): New.
12654         (if_convertible_bb_p): Call bb_postdominates_preds.
12655         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12656         (predicate_scalar_phi): Call bb_postdominates_preds.
12657
12658 2011-01-25  Nick Clifton  <nickc@redhat.com>
12659
12660         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12661         * config/rx/rx.c (rx_function_value): Likewise.
12662         (rx_promote_function_mode): Likewise.
12663         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12664         in order to make it legitimate.
12665         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12666         make sure that the first operand is the same as the result register.
12667         (addsi3_unspec): Delete.
12668         (subdi3): Do not accept immediate operands.
12669         (subdi3_internal): Likewise.
12670
12671 2011-01-25  Jeff Law  <law@redhat.com>
12672
12673         PR rtl-optimization/37273
12674         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12675         handle them like argument loads from stack slots.  Do not double
12676         count memory for memory constants and argument loads from stack slots.
12677
12678 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12679
12680         PR tree-optimization/47427
12681         PR tree-optimization/47428
12682         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12683         coalesce if the new root var would be TREE_READONLY.
12684
12685 2011-01-25  Richard Guenther  <rguenther@suse.de>
12686
12687         PR middle-end/47414
12688         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12689         correct type for TBAA.
12690
12691 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12692
12693         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12694         (close_phi_written_to_memory): Call for_each_index with
12695         dr_indices_valid_in_loop.
12696
12697 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12698
12699         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12700         when it is initialized.
12701
12702 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12703
12704         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12705         call to graphite_find_data_references_in_stmt.
12706         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12707         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
12708         call to graphite_find_data_references_in_stmt.
12709         (analyze_drs_in_stmts): Same.
12710         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12711         in which the scalar analysis of indices is performed.
12712         (create_data_ref): Same.  Update call to dr_analyze_indices.
12713         (find_data_references_in_stmt): Update call to create_data_ref.
12714         (graphite_find_data_references_in_stmt): Same.
12715         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12716         declaration.
12717         (create_data_ref): Same.
12718         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12719         call to create_data_ref.
12720
12721 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12722
12723         * graphite-sese-to-poly.c (build_poly_scop): Move
12724         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
12725
12726 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12727
12728         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12729         VAR_DECL, PARM_DECL, and RESULT_DECL.
12730
12731 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12732
12733         * graphite-dependences.c (reduction_dr_1): Allow several reductions
12734         in a reduction PBB.
12735         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12736         that have already been marked as PBB_IS_REDUCTION.
12737
12738 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12739
12740         * graphite-scop-detection.c (same_close_phi_node): New.
12741         (remove_duplicate_close_phi): New.
12742         (make_close_phi_nodes_unique): New.
12743         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12744
12745 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12746
12747         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12748         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12749         of both data references to be the same.
12750
12751 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12752
12753         * graphite-dependences.c (build_lexicographical_constraint): Remove
12754         the gdim parameter.
12755         (build_lexicographical_constraint): Adjust call to
12756         ppl_powerset_is_empty.
12757         (dependence_polyhedron): Same.
12758         (graphite_legal_transform_dr): Same.
12759         (graphite_carried_dependence_level_k): Same.
12760         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12761         parameter.
12762         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12763
12764 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12765
12766         * graphite-sese-to-poly.c
12767         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12768         (close_phi_written_to_memory): New.
12769         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12770         and unshare_expr.
12771
12772 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12773
12774         * doc/install.texi: Update the expected version number of PPL to 0.11.
12775         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12776         #if PPL_VERSION_MINOR < 11.
12777
12778 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12779
12780         * graphite-dependences.c: Include graphite-cloog-util.h.
12781         (new_poly_ddr): Inlined into dependence_polyhedron.
12782         (free_poly_ddr): Moved close by new_poly_ddr.
12783         (dependence_polyhedron_1): Renamed dependence_polyhedron.
12784         Early return NULL when ppl_powerset_is_empty returns true.
12785         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
12786         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
12787         (graphite_legal_transform_dr): Call new_poly_ddr.
12788         (graphite_carried_dependence_level_k): Same.
12789         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
12790         (dot_transformed_deps_stmt_1): Removed.
12791         (dot_deps_stmt_1): Call dot_deps_stmt_2.
12792         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
12793         (dot_deps_1): Call dot_deps_2.
12794         * Makefile.in (graphite-dependences.o): Add missing dependence on
12795         graphite-cloog-util.h.
12796
12797 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12798
12799         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12800         (build_lexicographical_constraint): Same.
12801         (dependence_polyhedron_1): Same.
12802         (graphite_legal_transform_dr): Same.
12803         (graphite_carried_dependence_level_k): Same.
12804         * graphite-ppl.c (ppl_powerset_is_empty): New.
12805         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12806         * tree-data-ref.c (dump_data_reference): Print the basic block index.
12807
12808 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12809
12810         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12811         the "a followed by b" relation and document it.
12812
12813 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12814
12815         * graphite-dependences.c (build_lexicographical_constraint): Stop the
12816         iteration when the bag of constraints is empty.
12817
12818 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12819
12820         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12821
12822 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12823
12824         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12825         nest and two loop depths as parameters.
12826         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12827         lst_perfect_nestify.
12828
12829 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12830
12831         * graphite-dependences.c (print_pddr): Call
12832         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12833
12834 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12835
12836         * graphite-ppl.c (debug_gmp_value): New.
12837         * graphite-ppl.h (debug_gmp_value): Declared.
12838
12839 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
12840
12841         * doc/install.texi: Document availability of cloog-0.16.
12842
12843 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
12844
12845         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12846         invalid postdominance info.
12847
12848 2011-01-24  Jan Hubicka  <jh@suse.cz>
12849
12850         PR c/21659
12851         * doc/extend.texi (weak pragma): Drop claim that it must
12852         appear before definition.
12853         * varasm.c (merge_weak, declare_weak): Only sanity check
12854         that DECL is not output at a time it is declared weak.
12855
12856 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
12857
12858         * machmode.def: Fixed comments.
12859
12860 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
12861
12862         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12863
12864 2011-01-24  Paul Koning  <ni1d@arrl.net>
12865
12866         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
12867         WORDS_BIG_ENDIAN.
12868
12869 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12870
12871         PR target/46519
12872         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12873         (block_info): Add scanned and prev.
12874         (move_or_delete_vzeroupper_2): Return if the basic block
12875         has been scanned and the upper 128bit state is unchanged
12876         from the last scan.
12877         (move_or_delete_vzeroupper_1): Return true if the exit
12878         state is changed.
12879         (move_or_delete_vzeroupper): Visit basic blocks using the
12880         work-list based algorithm based on vt_find_locations in
12881         var-tracking.c.
12882
12883         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12884
12885 2011-01-24  Nick Clifton  <nickc@redhat.com>
12886
12887         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12888         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12889         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
12890         then define __v850e1__.
12891         * doc/invoke.texi: Document -mv850es.
12892
12893 2011-01-24  Richard Henderson  <rth@redhat.com>
12894
12895         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12896         compound unordered comparisons.
12897         * config/rx/rx.c (rx_split_fp_compare): Remove.
12898         * config/rx/rx-protos.h: Update.
12899         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12900         (cbranchsf4): Don't call rx_split_fp_compare.
12901         (*cbranchsf4): Use rx_split_cbranch.
12902         (*cmpsf): Don't accept "i" constraint.
12903         (*conditional_branch): Only valid after reload.
12904         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
12905
12906 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12907
12908         PR target/47385
12909         * config/rs6000/altivec.md (vector constant splitters): Add
12910         support for creating vector single precision constants if -mvsx is
12911         used and we would create the constant using Altivec primitives.
12912
12913 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
12914             Richard Sandiford  <rdsandiford@googlemail.com>
12915
12916         PR rtl-optimization/47166
12917         * reload1.c (emit_reload_insns): Disable the spill_reg_store
12918         mechanism for PRE_MODIFY and POST_MODIFY.
12919         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12920         reloadreg.
12921
12922 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
12923
12924         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
12925
12926 2011-01-22  Jan Hubicka  <jh@suse.cz>
12927
12928         PR lto/47333
12929         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12930
12931 2011-01-22  Jan Hubicka  <jh@suse.cz>
12932
12933         PR tree-optimization/43884
12934         PR lto/44334
12935         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
12936         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
12937
12938 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
12939
12940         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12941         * config/s390/s390.c (s390_register_move_cost,
12942         s390_memory_move_cost): New.
12943         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12944
12945 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12946
12947         PR middle-end/47401
12948         * except.c (sjlj_assign_call_site_values): Move setting the
12949         crtl->uses_eh_lsda flag to ...
12950         (sjlj_mark_call_sites): ... here.
12951         (sjlj_emit_function_enter): Support NULL dispatch label.
12952         (sjlj_build_landing_pads): In a function with no landing pads
12953         that still has must-not-throw regions, generate code to register
12954         a personality function with empty LSDA.
12955
12956 2011-01-21  Richard Henderson  <rth@redhat.com>
12957
12958         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
12959
12960         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
12961
12962         * compare-elim.c: New file.
12963         * Makefile.in (OBJS-common): Add it.
12964         (compare-elim.o): New.
12965         * common.opt (fcompare-elim): New.
12966         * opts.c (default_options_table): Add OPT_fcompare_elim.
12967         * tree-pass.h (pass_compare_elim_after_reload): New.
12968         * passes.c (init_optimization_passes): Add it.
12969         * recog.h: Protect against re-inclusion.
12970         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
12971         * doc/invoke.texi (-fcompare-elim): Document it.
12972         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
12973         * doc/tm.texi: Rebuild.
12974
12975 2011-01-22  Nick Clifton  <nickc@redhat.com>
12976
12977         * config/rx/rx.md (cstoresf4): Pass comparison operator to
12978         rx_split_fp_compare.
12979
12980 2011-01-22  Nick Clifton  <nickc@redhat.com>
12981
12982         * config/rx/rx.md (UNSPEC_CONST): New.
12983         (deallocate_and_return): Wrap the amount popped off the stack in
12984         an UNSPEC_CONST in order to stop it being rejected by
12985         -mmax-constant-size.
12986         (pop_and_return): Add a "(return)" rtx.
12987         (call): Drop the immediate operand.
12988         (call_internal): Likewise.
12989         (call_value): Likewise.
12990         (call_value_internal): Likewise.
12991         (sibcall_internal): Likewise.
12992         (sibcall_value_internal): Likewise.
12993         (sibcall): Likewise.  Generate an explicit call using
12994         sibcall_internal.
12995         (sibcall_value): Likewise.
12996         (mov<>): FAIL if a constant operand is not legitimate.
12997         (addsi3_unpsec): New pattern.
12998
12999         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13000         (ok_for_max_constant): New function.
13001         (gen_safe_add): New function.
13002         (rx_expand_prologue): Use gen_safe_add.
13003         (rx_expand_epilogue): Likewise.
13004         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13005         UNSPEC CONSTs.
13006
13007 2011-01-21  Jeff Law  <law@redhat.com>
13008
13009         PR tree-optimization/47053
13010         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13011         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13012         statements are deleted.
13013         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13014         is nonempty, then purge dead edges and cleanup the CFG.
13015
13016 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13017
13018         PR debug/47402
13019         Temporarily revert:
13020         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13021         PR debug/47106
13022         * tree-dfa.c (create_var_ann): Mark variable as used.
13023
13024 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13025
13026         PR middle-end/45566
13027         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13028         notes from other section in hot/cold partitioning even if
13029         last_action is -3.  Increment call_site_base.
13030
13031         PR rtl-optimization/47366
13032         * fwprop.c (forward_propagate_into): Return bool.  If
13033         any changes are made, -fnon-call-exceptions is used and
13034         REG_EH_REGION note is present, call purge_dead_edges
13035         and return true if it purged anything.
13036         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13037         any EH edges were purged.
13038
13039 2011-01-21  Jeff Law  <law@redhat.com>
13040
13041         PR rtl-optimization/41619
13042         * caller-save.c (setup_save_areas): Break out code to determine
13043         which hard regs are live across calls by examining the reload chains
13044         so that it is always used.
13045         Eliminate code which checked REG_N_CALLS_CROSSED.
13046
13047 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13048
13049         PR tree-optimization/47355
13050         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13051         NOP has non-debug uses beyond PHIs in new_bb.
13052
13053 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13054
13055         PR debug/47106
13056         * cfgexpand.c (account_used_vars_for_block): Only account vars
13057         that are annotated as used.
13058         (estimated_stack_frame_size): Don't set TREE_USED.
13059         * tree-dfa.c (create_var_ann): Mark variable as used.
13060
13061 2011-01-21  Richard Guenther  <rguenther@suse.de>
13062
13063         PR middle-end/47395
13064         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13065
13066 2011-01-21  Richard Guenther  <rguenther@suse.de>
13067
13068         PR tree-optimization/47365
13069         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13070         (vn_reference_lookup_pieces): Adjust.
13071         (vn_reference_lookup): Likewise.
13072         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13073         (vn_reference_lookup_3): Only look through kills if in
13074         VN_WALKREWRITE mode.
13075         (vn_reference_lookup_pieces): Adjust.
13076         (vn_reference_lookup): Likewise.
13077         (visit_reference_op_load): Likewise.
13078         (visit_reference_op_store): Likewise.
13079         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13080         (compute_avail): Likewise.
13081         (eliminate): Likewise.
13082
13083 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13084
13085         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13086         DECL_IGNORED_P non-reg vars if they are used.
13087
13088         PR tree-optimization/47391
13089         * varpool.c (const_value_known_p): Return false if
13090         decl is volatile.
13091
13092 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13093
13094         PR bootstrap/47215
13095         * config/i386/i386.c (ix86_local_alignment): Handle
13096         case for va_list_type_node is nil.
13097         (ix86_canonical_va_list_type): Likewise.
13098
13099 2011-01-21  Alan Modra  <amodra@gmail.com>
13100
13101         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13102         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13103
13104 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13105
13106         * config/arm/arm.md (define_attr type): Rename f_load
13107         and f_store to f_fpa_load and f_fpa_store. Update.
13108         (write_conflict): Deal with rename fallout.
13109         (*push_fp_multi): Likewise.
13110         * config/arm/fpa.md (f_load): Use f_fpa_load.
13111         (f_store): Use f_fpa_store.
13112         (*movsf_fpa): Likewise.
13113         (*movdf_fpa): Likewise.
13114         (*movxf_fpa): Likewise.
13115         (*thumb2_movsf_fpa): Likewise.
13116         (*thumb2_movdf_fpa): Likewise.
13117         (*thumb2_movxf_fpa): Likewise.
13118         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13119         f_loadd and f_stored.
13120         (*thumb2_movdi_vfp): Likewise.
13121         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13122         (*thumb2_movsi_vfp): Likewise.
13123         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13124         Use f_loads instead of f_load.
13125         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13126
13127 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13128
13129         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13130         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13131         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13132         (xtensa_mode_dependent_address_p): New function.
13133         (constantpool_address_p): Make static. Change return type to bool.
13134         Change argument type to const_rtx. Use CONST_INT_P predicate.
13135
13136 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13137
13138         PR debug/46583
13139         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13140
13141 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13142
13143         PR debug/47283
13144         * cfgexpand.c (expand_debug_expr): Instead of generating
13145         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13146         etc. handling.
13147
13148 2011-01-20  Richard Guenther  <rguenther@suse.de>
13149
13150         PR middle-end/47370
13151         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13152         the pointer operand of MEM_REFs.
13153
13154 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13155
13156         PR tree-optimization/46130
13157         * ipa-split.c (consider_split): If return_bb contains non-virtual
13158         PHIs other than for retval or if split_function would not adjust it,
13159         refuse to split.
13160
13161 2011-01-20  Richard Guenther  <rguenther@suse.de>
13162
13163         PR tree-optimization/47167
13164         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13165         Revert previous change, only avoid enumeral type changes.
13166
13167 2011-01-19  Mike Stump  <mikestump@comcast.net>
13168
13169         * doc/tm.texi.in (BRANCH_COST): Englishify.
13170         * doc/tm.texi (BRANCH_COST): Likewise.
13171
13172 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13173
13174         PR c++/47291
13175         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13176         (gen_scheduled_generic_parms_dies): New functions.
13177         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13178         generation for the end of CU compilation.
13179         (dwarf2out_finish): Generate template parameters DIEs here.
13180
13181 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13182
13183         PR debug/46240
13184         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13185         debug bind stmt on merge edges.
13186
13187 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13188
13189         PR debug/47079
13190         PR debug/46724
13191         * function.c (instantiate_expr): Instantiate incoming rtl of
13192         implicit arguments, and recurse on VALUE_EXPRs.
13193         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13194         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13195
13196 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13197
13198         * c-parser.c (c_parser_for_statement): Initialize
13199         collection_expression.
13200
13201 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13202
13203         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13204
13205 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13206
13207         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13208         (LINK_SHLIB_SPEC): Don't use %(link_path).
13209         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13210
13211 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13212
13213         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13214         (NO_SHARED_LIB_SUPPORT): Remove.
13215         (LINK_SHLIB_SPEC): Remove one conditional definition.
13216
13217 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13218
13219         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13220         %{call_shared}.
13221         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13222         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13223         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13224         %{call_shared} and conditionals on these options not being passed.
13225         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13226         %{call_shared}.
13227
13228 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13229
13230         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13231         simplify.
13232
13233         * ipa-split.c: Spelling fixes.
13234
13235 2011-01-19  Richard Henderson  <rth@redhat.com>
13236
13237         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13238         (*mulsi3): Likewise.
13239
13240         * longlong.h [__mn10300__] (count_leading_zeros): New.
13241         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13242         [__mn10300__] (add_ssaaaa, subddmmss): New.
13243         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13244         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13245
13246 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13247
13248         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13249
13250 2011-01-19  Richard Henderson  <rth@redhat.com>
13251
13252         * config/mn10300/mn10300.md (addsi3_flags): New.
13253         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13254         (subsi3_flags, subc_internal, subdi3): New.
13255         (subdi3_internal, *subdi3_degenerate): New.
13256         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13257
13258         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13259         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13260         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13261         * config/mn10300/mn10300-protos.h: Update.
13262         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13263         (return_ret): Likewise.  Rename from return_internal_regs.
13264         (return_internal): Remove.
13265
13266         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13267         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13268         (mn10300_legitimate_constant_p): Likewise.
13269         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13270         (mn10300_frame_size): New.
13271         (mn10300_expand_prologue): Use it.
13272         (mn10300_expand_epilogue): Likewise.
13273         (mn10300_initial_offset): Likewise.
13274         * config/mn10300/mn10300-protos.h: Update.
13275         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13276         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13277         (prologue, epilogue, return_internal): Tidy output code.
13278         (mn10300_store_multiple_operation, return): Likewise.
13279         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13280         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13281         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13282         (load_pic, am33_load_pic): New.
13283         (mn10300_load_pic0, mn10300_load_pic1): New.
13284
13285         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13286         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13287         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13288         (cc_flags_for_mode, cc_flags_for_code): New.
13289         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13290         overflow flag is not valid.  Validate that the flags we need
13291         for the comparison are valid.
13292         (mn10300_output_cmp): Remove.
13293         (mn10300_output_add): New.
13294         (mn10300_select_cc_mode): Use cc_flags_for_code.
13295         (mn10300_split_cbranch): New.
13296         (mn10300_match_ccmode): New.
13297         (mn10300_split_and_operand_count): New.
13298         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13299         to the function.
13300         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13301         (addsi3): ... here.  Use mn10300_output_add.
13302         (*addsi3_flags): New.
13303         (*am33_subsi3, *mn10300_subsi3): Merge...
13304         (subsi3): ... here.  Use attribute isa.
13305         (*subsi3_flags): New.
13306         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13307         when possible.
13308         (*am33_andsi3, *mn10300_andsi3): Merge...
13309         (andsi3): ... here.
13310         (*andsi3_flags): New.
13311         (andsi3 splitters): New.
13312         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13313         (iorsi3): ... here.
13314         (*iorsi3_flags): New.
13315         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13316         (xorsi3): ... here.
13317         (*xorsi3_flags): New.
13318         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13319         (one_cmplsi2): ... here.
13320         (*one_cmplsi2_flags): New.
13321         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13322         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13323         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13324         use matching constraints to eliminate a self-comparison.
13325         (*integer_conditional_branch): Rename from integer_conditional_branch.
13326         Use int_mode_flags to match CC_REG.
13327         (*cbranchsi4_btst, *btstsi): New.
13328         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13329         mn10300_split_cbranch.
13330         (*am33_cmpsf): Rename from am33_cmpsf.
13331         (*float_conditional_branch): Rename from float_conditional_branch.
13332         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13333         (zero_extendqisi2): ... here.
13334         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13335         (zero_extendhisi2): ... here.
13336         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13337         (extendqisi2): ... here.
13338         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13339         (extendhisi2): ... here.
13340         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13341         (ashlsi3): ... here.
13342         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13343         (lshrsi3): ... here.
13344         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13345         (ashrsi3): ... here.
13346         (consecutive add peephole): Remove.
13347         * config/mn10300/predicates.md (label_ref_operand): New.
13348         (int_mode_flags): New.
13349         (CCZN_comparison_operator): New.
13350
13351         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13352         (throughput_42_latency_43): New reservation.
13353         (mulsidi3, umulsidi3): New expanders.
13354         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13355         the MDR register to allocation; separately allocate the low and
13356         high parts of the DImode result.
13357         (umulsidi3_internal): Similarly.
13358         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13359         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13360         (udivsi3, umodsi3): Remove.
13361         (udivmodsi4, divmodsi4): New expanders.
13362         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13363         (*divmodsi4): Simiarly.
13364         (ext_internal): New.
13365
13366         * config/mn10300/constraints.md ("z"): New constraint.
13367         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13368         (FIXED_REGISTERS): Don't fix MDR.
13369         (CALL_USED_REGSITERS): Reformat nicely.
13370         (REG_ALLOC_ORDER): Add MDR.
13371         (enum regclass): Add MDR_REGS.
13372         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13373         (IRA_COVER_CLASSES): Add MDR_REGS.
13374         (REGNO_REG_CLASS): Handle MDR_REG.
13375         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13376         (mn10300_register_move_cost): Likewise.
13377         * config/mn10300/mn10300.md (MDR_REG): New.
13378         (*movsi_internal): Handle moves to/from MDR_REGS.
13379
13380         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13381         POST_MODIFY.
13382         (mn10300_secondary_reload): Tidy combination reload classes.
13383         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13384         addresses for AM33.  Allow symbolic offsets for reg+imm.
13385         (mn10300_regno_in_class_p): New.
13386         (mn10300_legitimize_reload_address): New.
13387         * config/mn10300/mn10300.h (enum reg_class): Remove
13388         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13389         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13390         SP_OR_GENERAL_REGS.
13391         (REG_CLASS_NAMES): Update to match.
13392         (REG_CLASS_CONTENTS): Likewise.
13393         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13394         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13395         (REGNO_IN_RANGE_P): Remove.
13396         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13397         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13398         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13399         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13400         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13401         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13402         (REGNO_GENERAL_P): New.
13403         (HAVE_POST_MODIFY_DISP): New.
13404         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13405         (LEGITIMIZE_RELOAD_ADDRESS): New.
13406         * config/mn10300/mn10300-protos.h: Update.
13407
13408         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13409         DATA_REGS for AM33 stack-pointer destination.
13410         (mn10300_preferred_output_reload_class): Likewise.
13411         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13412         into a form appropriate for ...
13413         (TARGET_SECONDARY_RELOAD): New.
13414         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13415         * config/mn10300/mn10300-protos.h: Update.
13416         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13417         reload_insi; use the "A" constraint for the scratch; handle AM33
13418         moves of sp to non-address registers.
13419
13420         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13421         (*movqi_internal): ... here.
13422         (*am33_movhi, *mn10300_movhi): Merge into...
13423         (*movhi_internal): ... here.
13424         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13425         as the source/destination of moves from/to SP.
13426         (movsf): Only allow for AM33-2.
13427         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13428         any integer constant constraint.  Only allow for AM33-2.  Tidy
13429         all of the alternative outputs.
13430         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13431         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13432         for MN103.
13433         (udivsi3, umodsi3): New patterns for MN103 only.
13434
13435 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13436
13437         * doc/tm.texi.in: Spell out that a lack of register class unions
13438         can lead to ICEs.
13439         * doc/tm.texi: Regenerate.
13440
13441 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13442
13443         PR rtl-optimization/47337
13444         * dce.c (check_argument_store): New function.
13445         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13446
13447         PR tree-optimization/47290
13448         * tree-eh.c (infinite_empty_loop_p): New function.
13449         (cleanup_empty_eh): Use it.
13450
13451 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13452
13453         PR target/46997
13454         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13455         (a64_expand_widen_sum): Ditto.
13456         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13457         (vec_extract_evenodd_help): Ditto.
13458         (vec_extract_evenv4hi): Ditto.
13459         (vec_extract_oddv4hi): Ditto.
13460         (vec_extract_evenv2si): Ditto.
13461         (vec_extract_oddv2si): Ditto.
13462         (vec_extract_evenv2sf): Ditto.
13463         (vec_extract_oddv2sf): Ditto.
13464         (vec_pack_trunc_v4hi: Ditto.
13465         (vec_pack_trunc_v2si): Ditto.
13466         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13467         (vec_interleave_highv8qi): Ditto.
13468         (mix1_r): Ditto.
13469         (vec_extract_oddv8qi): Ditto.
13470         (vec_interleave_lowv4hi): Ditto.
13471         (vec_interleave_highv4hi): Ditto.
13472         (vec_interleave_lowv2si): Ditto.
13473         (vec_interleave_highv2si): Ditto.
13474
13475 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13476
13477         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13478         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13479         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13480         (pa_c_mode_for_suffix): New.
13481         (TARGET_EXPAND_BUILTIN): Define.
13482         (TARGET_C_MODE_FOR_SUFFIX): Define.
13483         (pa_builtins): Define.
13484         (pa_init_builtins): Register __float128 type and init new support
13485         builtins.
13486         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13487         * config/pa/quadlib.c (_U_Qfcopysign): New.
13488
13489 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13490
13491         PR middle-end/46894
13492         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13493         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13494         are defined.
13495
13496 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13497
13498         PR tree-optimization/47179
13499         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13500         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13501
13502 2011-01-18  Richard Guenther  <rguenther@suse.de>
13503
13504         PR rtl-optimization/47216
13505         * emit-rtl.c: Include tree-flow.h.
13506         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13507         of replicating it with different semantics.
13508         * Makefile.in (emit-rtl.o): Adjust.
13509
13510 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13511
13512         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13513         (cortex_a9_dp): Handle neon types correctly.
13514
13515 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13516
13517         PR rtl-optimization/47299
13518         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13519         subtarget.  Use normal multiplication if both operands are constants.
13520         * expmed.c (expand_widening_mult): Don't try to optimize constant
13521         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13522         before using it.
13523
13524 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13525
13526         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13527         spacing after 'e.g.', typos, comma, hyphenation.
13528
13529 2011-01-17  Richard Henderson  <rth@redhat.com>
13530
13531         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13532         (rx_restricted_mem_operand): New.
13533         (rx_shift_operand): Use register_operand.
13534         (rx_source_operand, rx_compare_operand): Likewise.
13535         * config/rx/rx.md (addsi3_flags): New expander.
13536         (adddi3): Rewrite as expander.
13537         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13538         (subsi3_flags): New expander.
13539         (subdi3): Rewrite as expander.
13540         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13541
13542         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13543         (rx_init_builtins): Remove sat builtin.
13544         (rx_expand_builtin): Likewise.
13545         * config/rx/rx.md (ssaddsi3): New.
13546         (*sat): Rename from sat.  Represent the CC_REG input.
13547
13548         * config/rx/predicates.md (rshift_operator): New.
13549         * config/rx/rx.c (rx_expand_insv): Remove.
13550         * config/rx/rx-protos.h: Update.
13551         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13552         operand to the canonical position.
13553         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13554         (*bitclr, *bitclr_in_memory): Similarly.
13555         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13556         (insv): Retain the zero_extract in the expansion.
13557
13558         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13559         (bswaphi2, bitinvert, revw): Likewise.
13560
13561         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13562         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13563         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13564         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13565         (bitset, bitset_in_memory): Likewise.
13566         (bitinvert, bitinvert_in_memory): Likewise.
13567         (bitclr, bitclr_in_memory): Likewise.
13568         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13569         (rx_strend, rx_cmpstrn): Likewise.
13570         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13571         (bitop peep2 patterns): Remove.
13572
13573         * config/rx/rx.c (rx_match_ccmode): New.
13574         * config/rx/rx-protos.h: Update.
13575         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13576         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13577         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13578         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13579         (fix_truncsfsi2, floatsisf2): Likewise.
13580         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13581         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13582         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13583         (*subsi3_flags, *xorsi3_flags): New.
13584
13585         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13586
13587         * config/rx/rx.c (rx_print_operand): Remove workaround for
13588         unsplit comparison operations.
13589
13590         * config/rx/rx.md (movsicc): Split after reload.
13591         (*movsicc): Merge *movsieq and *movsine via match_operator.
13592         (*stcc): New pattern.
13593
13594         * config/rx/rx.c (rx_float_compare_mode): Remove.
13595         * config/rx/rx.h (rx_float_compare_mode): Remove.
13596         * config/rx/rx.md (cstoresi4): Split after reload.
13597         (*sccc): New pattern.
13598
13599         * config/rx/predicates.md (label_ref_operand): New.
13600         (rx_z_comparison_operator): New.
13601         (rx_zs_comparison_operator): New.
13602         (rx_fp_comparison_operator): New.
13603         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13604         Validate that the flags are set properly for the comparison.
13605         (rx_gen_cond_branch_template): Remove.
13606         (rx_cc_modes_compatible): Remove.
13607         (mode_from_flags): New.
13608         (flags_from_code): Rename from flags_needed_for_conditional.
13609         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13610         (rx_select_cc_mode): Likewise.
13611         (rx_split_fp_compare): New.
13612         (rx_split_cbranch): New.
13613         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13614         (*cbranchsi4): Use match_operator and rx_split_cbranch.
13615         (*cbranchsf4): Similarly.
13616         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
13617         match_operator and rx_split_cbranch.
13618         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13619         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
13620         (*cmpsi): Rename from cmpsi.
13621         (*tstsi): Rename from tstsi.
13622         (*cmpsf): Rename from cmpsf; use CC_Fmode.
13623         (*conditional_branch): Rename from conditional_branch.
13624         (*reveresed_conditional_branch): Remove.
13625         (b<code>): Remove expander.
13626         * config/rx/rx-protos.h: Update.
13627
13628         * config/rx/rx.c (rx_compare_redundant): Remove.
13629         * config/rx/rx.md (cmpsi): Don't use it.
13630         * config/rx/rx-protos.h: Update.
13631
13632         * config/rx/rx-modes.def (CC_F): New mode.
13633         * config/rx/rx.c (rx_select_cc_mode): New.
13634         * config/rx/rx.h (SELECT_CC_MODE): Use it.
13635         * config/rx/rx-protos.h: Update.
13636
13637 2011-01-17  Richard Henderson  <rth@redhat.com>
13638
13639         * except.c (dump_eh_tree): Fix stray ; after for statement.
13640
13641 2011-01-17  Richard Guenther  <rguenther@suse.de>
13642
13643         PR tree-optimization/47313
13644         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13645         handling before copying the body.  Properly deal with
13646         by-reference result in SSA form.
13647
13648 2011-01-17  Ian Lance Taylor  <iant@google.com>
13649
13650         PR target/47219
13651         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13652         (struct_value_alias_set): Don't define.
13653         (sparc_option_override): Don't set sparc_sr_alias_set and
13654         struct_value_alias_set.
13655         (save_or_restore_regs): Use gen_frame_mem rather than calling
13656         set_mem_alias_set.
13657         (sparc_struct_value_rtx): Likewise.
13658
13659 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
13660
13661         PR target/47318
13662         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
13663         (_mm_maskstore_pd): Likewise.
13664         (_mm_maskload_ps): Likewise.
13665         (_mm_maskstore_ps): Likewise.
13666         (_mm256_maskload_pd): Change mask to __m256i.
13667         (_mm256_maskstore_pd): Likewise.
13668         (_mm256_maskload_ps): Likewise.
13669         (_mm256_maskstore_ps): Likewise.
13670
13671         * config/i386/i386-builtin-types.def: Updated.
13672         (ix86_expand_special_args_builtin): Likewise.
13673
13674         * config/i386/i386.c (bdesc_special_args): Update
13675         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13676         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13677         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13678         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13679
13680         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13681         Use <avxpermvecmode> on mask register.
13682         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13683
13684 2011-01-17  Olivier Hainque  <hainque@adacore.com>
13685             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
13686             Eric Botcazou  <ebotcazou@adacore.com>
13687
13688         PR target/46655
13689         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13690         if <= USHRT_MAX in 32-bit mode.
13691
13692 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13693
13694         * doc/install.texi (Configuration, Specific): Wrap long
13695         lines in examples.  Allow line wrapping in long options
13696         and URLs where beneficial for PDF output.
13697
13698 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
13699
13700         * config/mips/mips.c (mips_classify_symbol): Don't return
13701         SYMBOL_PC_RELATIVE for nonlocal labels.
13702
13703 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13704
13705         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13706
13707 2011-01-15  Jan Hubicka  <jh@suse.cz>
13708
13709         PR tree-optimization/47276
13710         * ipa.c (function_and_variable_visibility): Do not try to mark alias
13711         declarations as needed.
13712
13713 2011-01-15  Martin Jambor  <mjambor@suse.cz>
13714
13715         * common.opt (fdevirtualize): New flag.
13716         * doc/invoke.texi (Option Summary): Document it.
13717         * opts.c (default_options_table): Add devirtualize flag.
13718         * ipa-prop.c (detect_type_change): Return immediately if
13719         devirtualize flag is not set.
13720         (detect_type_change_ssa): Likewise.
13721         (compute_known_type_jump_func): Likewise.
13722         (ipa_analyze_virtual_call_uses): Likewise.
13723
13724 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13725
13726         PR tree-optimization/45934
13727         PR tree-optimization/46302
13728         * ipa-prop.c (type_change_info): New type.
13729         (stmt_may_be_vtbl_ptr_store): New function.
13730         (check_stmt_for_type_change): Likewise.
13731         (detect_type_change): Likewise.
13732         (detect_type_change_ssa): Likewise.
13733         (compute_complex_assign_jump_func): Check for dynamic type change.
13734         (compute_complex_ancestor_jump_func): Likewise.
13735         (compute_known_type_jump_func): Likewise.
13736         (compute_scalar_jump_functions): Likewise.
13737         (ipa_analyze_virtual_call_uses): Likewise.
13738         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13739
13740 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13741
13742         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13743         * config/i386/i386.opt (msse5): New Alias.
13744
13745 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13746
13747         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13748         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13749         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13750         * config/sparc/sparc.h (CC1_SPEC): Likewise.
13751
13752 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13753
13754         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13755         -mcpu options.
13756         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13757         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13758         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13759         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13760         Likewise.
13761         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13762
13763 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13764
13765         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
13766
13767 2011-01-14  Mike Stump  <mikestump@comcast.net>
13768
13769         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13770         * config/fr30/fr30.md: Likweise
13771         (movsi_push): Likewise.
13772         (movsi_pop): Likewise.
13773         (enter_func): Likewise.
13774         * config/moxie/moxie.md (movsi_push): Likewise.
13775         (movsi_pop): Likewise.
13776
13777 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13778
13779         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13780         %{no_archive} %{exact_version}.
13781         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13782         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13783         %{no_archive} %{exact_version}.
13784         * config/mips/openbsd.h (LINK_SPEC): Likewise.
13785         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13786         * config/mips/vxworks.h: Likewise.
13787
13788 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13789
13790         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
13791
13792 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13793
13794         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13795         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13796
13797 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13798
13799         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13800         -nodefaultlib.
13801
13802 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13803
13804         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13805         for mcpu not cpu.
13806         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13807         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13808         not cpu.
13809         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13810         Don't handle -shlib.
13811
13812 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13813
13814         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13815         (CC1_SPEC): Don't handle -profile.
13816
13817 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13818
13819         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13820         * config/mips/mips.h (CC1_SPEC): Likewise.
13821
13822 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13823
13824         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13825         * config/mips/mips.h (CC1_SPEC): Likewise.
13826
13827 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13828
13829         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13830         * config/m32r/linux.h (LINK_SPEC): Likewise.
13831         * config/mips/linux.h (LINK_SPEC): Likewise.
13832         * config/mips/linux64.h (LINK_SPEC): Likewise.
13833         * config/sparc/linux.h (LINK_SPEC): Likewise.
13834         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13835         LINK_SPEC): Likewise.
13836         * config/xtensa/linux.h (LINK_SPEC): Likewise.
13837
13838 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13839
13840         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13841         %{version:-v}.
13842         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13843
13844 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13845
13846         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13847         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13848
13849 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13850
13851         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13852
13853 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13854
13855         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13856         supports -Bstatic/-Bdynamic.
13857         * configure: Regenerate.
13858
13859 2011-01-14  Jan Hubicka  <jh@suse.cz>
13860             Jack Howarth  <howarth@bromo.med.uc.edu>
13861
13862         PR target/46037
13863         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13864         when checking debug_info_level. Test write_symbols instead of
13865         debug_hooks->var_location when setting flag_var_tracking_uninit.
13866
13867 2011-01-14  Richard Guenther  <rguenther@suse.de>
13868
13869         PR tree-optimization/47179
13870         * target.def (ref_may_alias_errno): New target hook.
13871         * targhooks.h (default_ref_may_alias_errno): Declare.
13872         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13873         (default_ref_may_alias_errno): New function.
13874         * target.h (struct ao_ref_s): Declare.
13875         * tree-ssa-alias.c: Include target.h.
13876         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13877         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13878         (targhooks.o): Likewise.
13879         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13880         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13881
13882 2011-01-14  Richard Guenther  <rguenther@suse.de>
13883
13884         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
13885
13886 2011-01-14  Richard Guenther  <rguenther@suse.de>
13887
13888         PR tree-optimization/47280
13889         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13890         return CFG changes.
13891         (tree_ssa_forward_propagate_single_use_vars): Deal with
13892         CFG changes from associate_plusminus.
13893
13894 2011-01-14  Richard Guenther  <rguenther@suse.de>
13895
13896         PR middle-end/47281
13897         Revert
13898         2011-01-11  Richard Guenther  <rguenther@suse.de>
13899
13900         PR tree-optimization/46076
13901         * tree-ssa.c (useless_type_conversion_p): Conversions from
13902         unprototyped to empty argument list function types are useless.
13903
13904 2011-01-14  Richard Guenther  <rguenther@suse.de>
13905
13906         PR tree-optimization/47286
13907         * tree-ssa-structalias.c (new_var_info): Register variables are global.
13908
13909 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13910
13911         PR middle-end/46823
13912         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13913
13914 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
13915
13916         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13917         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13918         * config/xtensa/xtensa.c (xtensa_libcall_value,
13919         xtensa_function_value_regno_p): New functions.
13920         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13921
13922 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
13923
13924         PR c++/47213
13925         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13926         PE specific hook.
13927         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13928         New function prototype.
13929         * config/i386/winnt.c (i386_pe_assemble_visibility):
13930         Warn only if attribute was specified by user.
13931
13932 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13933
13934         PR target/47251
13935         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13936         floating point.
13937         (floatunsdidf2_fcfidu): Ditto.
13938
13939 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13940
13941         * config/s390/s390.c (print_operand_address): Replace 'error' with
13942         'output_operand_lossage'.
13943         (print_operand): Likewise.
13944
13945 2011-01-13  Jeff Law  <law@redhat.com>
13946
13947         PR rtl-optimization/39077
13948         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
13949         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
13950         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
13951         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
13952         * gcse.c (prune_insertions_deletions): New function.
13953         (compute_pre_data): Use it.
13954
13955 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
13956
13957         PR debug/PR46973
13958         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
13959         static function.
13960         (prune_unused_types_mark): Use it.
13961
13962 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
13963
13964         PR rtl-optimization/45352
13965         * sel-sched.c: Update copyright years.
13966         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
13967         in the advancing loop when we have issued issue_rate insns.
13968
13969 2011-01-12  Richard Henderson  <rth@redhat.com>
13970
13971         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
13972         (TARGET_MD_ASM_CLOBBERS): New.
13973
13974         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
13975         (TARGET_DELEGITIMIZE_ADDRESS): New.
13976
13977         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
13978         (clzsi2, *bsch): New patterns.
13979
13980         * config/mn10300/mn10300.md (INT): New mode iterator.
13981         (*mov<INT>_clr): New pattern, and peep2 to generate it.
13982
13983         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
13984         flag_split_wide_types.
13985
13986         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
13987         (mn10300_trampoline_init): Rewrite without a template, an immediate
13988         load and a direct branch.
13989         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
13990
13991 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
13992
13993         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13994         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
13995         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
13996         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13997
13998 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
13999
14000         PR debug/47209
14001         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14002         of type.
14003
14004 2011-01-12  Jan Hubicka  <jh@suse.cz>
14005
14006         PR driver/47244
14007         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14008         (PLUGIN_COND_CLOSE): New macro.
14009         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14010
14011 2011-01-12  Richard Guenther  <rguenther@suse.de>
14012
14013         PR lto/47259
14014         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14015         register variables in a MEM_REF.
14016
14017 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14018
14019         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14020         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14021         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14022         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14023         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14024         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14025         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14026         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14027         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14028         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14029         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14030         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14031         * config/gnu-user.h: New.  Copied from linux.h.
14032         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14033         GNU_USER_TARGET_STARTFILE_SPEC.
14034         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14035         GNU_USER_TARGET_ENDFILE_SPEC.
14036         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14037         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14038         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14039         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14040         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14041         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14042         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14043         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14044         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14045         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14046         * config/arm/linux-eabi.h (CC1_SPEC): Use
14047         GNU_USER_TARGET_CC1_SPEC.
14048         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14049         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14050         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14051         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14052         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14053         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14054         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14055         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14056
14057 2011-01-12  Richard Guenther  <rguenther@suse.de>
14058
14059         PR other/46946
14060         * doc/invoke.texi (ffast-math): Document it is turned on
14061         with -Ofast.
14062
14063 2011-01-12  Jan Hubicka  <jh@suse.cz>
14064
14065         PR tree-optimization/47233
14066         * opts.c (common_handle_option): Disable ipa-reference with profile
14067         feedback.
14068
14069 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14070
14071         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14072         error message.
14073
14074 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14075
14076         * c-parser.c (c_lex_one_token): Updated and reindented some
14077         comments.  No changes in code.
14078
14079 2011-01-11  Ian Lance Taylor  <iant@google.com>
14080
14081         * godump.c (go_output_var): Don't output the variable if there is
14082         already a type with the same name.
14083
14084 2011-01-11  Ian Lance Taylor  <iant@google.com>
14085
14086         * godump.c (go_format_type): Don't generate float80.
14087
14088 2011-01-11  Richard Henderson  <rth@redhat.com>
14089
14090         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14091         declaration.  Rewrite for both speed and size.
14092         (mn10300_address_cost_1): Remove.
14093         (mn10300_register_move_cost): New.
14094         (mn10300_memory_move_cost): New.
14095         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14096         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14097         extensions, shifts, BSWAP, CLZ.
14098         (mn10300_wide_const_load_uses_clr): Remove.
14099         (TARGET_REGISTER_MOVE_COST): New.
14100         (TARGET_MEMORY_MOVE_COST): New.
14101         * config/mn10300/mn10300-protos.h: Update.
14102         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14103
14104         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14105         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14106         * config/mn10300/mn10300-protos.h: Update.
14107         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14108         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14109         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14110         (*test_int_bitfield, *test_byte_bitfield): Remove.
14111         (*bit_test, *subreg_bit_test): Remove.
14112         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14113
14114         * config/mn10300/constraints.md ("c"): Rename from "A".
14115         ("A", "D"): New constraint letters.
14116         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14117         (fmssf4, fnmasf4, fnmssf4): Likewise.
14118
14119         * config/mn10300/mn10300.md (isa): New attribute.
14120         (enabled): New attribute.
14121
14122         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14123         (abssf2, negsf2): Define only for hardware fp.
14124         (sqrtsf2): Reformat.
14125         (addsf3, subsf3, mulsf3): Merge expander and insn.
14126
14127         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14128         (DEBUGGER_AUTO_OFFSET): Remove.
14129         (DEBUGGER_ARG_OFFSET): Remove.
14130
14131         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14132         Emit register stores with the same offsets as the hardware.
14133         (mn10300_store_multiple_operation): Don't check that the register
14134         save offsets are monotonic.
14135         * config/mn10300/mn10300-protos.h: Update.
14136
14137         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14138
14139         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14140         in terms of the value on the stack, not the MDR register.
14141
14142 2011-01-11  Jan Hubicka  <jh@suse.cz>
14143
14144         PR lto/45721
14145         PR lto/45375
14146         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14147         (symbol_alias_set_destroy, symbol_alias_set_contains,
14148         propagate_aliases_backward): Declare.
14149         * lto-streamer-out.c (struct sets): New sturcture.
14150         (trivally_defined_alias): New function.
14151         (output_alias_pair_p): Rewrite.
14152         (output_unreferenced_globals): Fix output of alias pairs.
14153         (produce_symtab): Likewise.
14154         * ipa.c (function_and_variable_visibility): Set weak alias destination
14155         as needed in lto.
14156         * varasm.c (symbol_alias_set_t): Remove.
14157         (symbol_alias_set_destroy): Export.
14158         (propagate_aliases_forward, propagate_aliases_backward): New functions
14159         based on ...
14160         (compute_visible_aliases): ... this one; remove.
14161         (trivially_visible_alias): New
14162         (trivially_defined_alias): New.
14163         (remove_unreachable_alias_pairs): Rewrite.
14164         (finish_aliases_1): Reorganize code checking if alias is defined.
14165         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14166         in LTO mode.
14167
14168 2011-01-11  Richard Guenther  <rguenther@suse.de>
14169
14170         PR tree-optimization/46076
14171         * tree-ssa.c (useless_type_conversion_p): Conversions from
14172         unprototyped to empty argument list function types are useless.
14173
14174 2011-01-11  Richard Guenther  <rguenther@suse.de>
14175
14176         PR middle-end/45235
14177         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14178         volatile MEMs as MEM_READONLY_P.
14179
14180 2011-01-11  Richard Guenther  <rguenther@suse.de>
14181
14182         PR tree-optimization/47239
14183         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14184
14185 2011-01-11  Jeff Law  <law@redhat.com>
14186
14187         PR tree-optimization/47086
14188         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14189         IVs from statements that might throw.
14190
14191 2011-01-10  Jan Hubicka  <jh@suse.cz>
14192
14193         PR lto/45375
14194         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14195
14196 2011-01-10  Jan Hubicka  <jh@suse.cz>
14197
14198         PR lto/45375
14199         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14200         when correcting profile.
14201
14202 2011-01-10  Jan Hubicka  <jh@suse.cz>
14203
14204         PR lto/46083
14205         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14206         DECL_FINI_PRIORITY.
14207         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14208         Restore DECL_FINI_PRIORITY.
14209
14210 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14211
14212         * doc/gimple.texi: Fix quoting of multi-word return values in
14213         @deftypefn statements.  Ensure presence of return value.  Wrap
14214         overlong @deftypefn lines.
14215         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14216         descriptions of removed functions.
14217         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14218         of multi-word return value in @deftypefn statement.
14219
14220 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14221
14222         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14223         (Conditional Expressions, Logical Operators)
14224         (Statement and operand traversals): Do not indent smallexample
14225         code.  Fix duplicate function argument in example.
14226
14227 2011-01-10  Jeff Law  <law@redhat.com>
14228
14229         PR tree-optimization/47141
14230         * ipa-split.c (split_function): Handle case where we are
14231         returning a value and the return block has a virtual operand phi.
14232
14233 2011-01-10  Jan Hubicka  <jh@suse.cz>
14234
14235         PR tree-optimization/47234
14236         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14237         (pass_feedback_split_functions): Declare.
14238         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14239         tree-profile.
14240         * ipa-split.c (gate_split_functions): Update comments; disable
14241         split-functions for profile_arc_flag and branch_probabilities.
14242         (gate_feedback_split_functions): New function.
14243         (execute_feedback_split_functions): New function.
14244         (pass_feedback_split_functions): New global var.
14245
14246 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14247
14248         PR lto/46760
14249         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14250         calling gimple_call_set_cannot_inline.
14251
14252 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14253
14254         * config/darwin-sections.def: Remove unused section.
14255
14256 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14257
14258         PR c++/47218
14259         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14260
14261 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14262
14263         PR objc/47232
14264         * c-parser.c (c_parser_declaration_or_fndef): Improved
14265         error message.
14266
14267 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14268
14269         * config/i386/winnt.c (i386_pe_start_function): Make sure
14270         to switch back to function's section.
14271
14272 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14273
14274         PR gcc/46902
14275         PR testsuite/46912
14276         * plugin.c: Move include of dlfcn.h from here...
14277         * system.h: ... to here.
14278
14279 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14280
14281         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14282         file name.
14283         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14284         two extra empty pages in PDF output.
14285
14286 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14287
14288         PR objc/47078
14289         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14290         for error recovery purposes behave as if it was not specified so
14291         that the default type is usd.
14292
14293 2011-01-07  Jan Hubicka  <jh@suse.cz>
14294
14295         PR tree-optmization/46469
14296         * ipa.c (function_and_variable_visibility): Clear needed flags on
14297         nodes with external decls; handle weakrefs merging correctly.
14298
14299 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14300
14301         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14302         not false.
14303
14304 2011-01-07  Jan Hubicka  <jh@suse.cz>
14305
14306         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14307         and no longer claim that gold is required for linker plugin.
14308         * configure: Regenerate.
14309         * gcc.c (PLUGIN_COND): New macro.
14310         (LINK_COMMAND_SPEC): Use it.
14311         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14312         * config.in (HAVE_LTO_PLUGIN): New.
14313         * configure.ac (--with-lto-plugin): New parameter; autodetect
14314         HAVE_LTO_PLUGIN.
14315
14316 2011-01-07  Jan Hubicka  <jh@suse.cz>
14317
14318         PR tree-optimization/46367
14319         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14320         when we can update original.
14321         (cgraph_mark_inline_edge): Sanity check.
14322         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14323
14324 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14325
14326         * config/spu/spu.h (ASM_COMMENT_START): Define.
14327
14328 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14329
14330         PR driver/42445
14331         * gcc.c (%>S): New.
14332         (SWITCH_KEEP_FOR_GCC): Likewise.
14333         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14334         (do_spec_1): Handle "%>".
14335
14336         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14337
14338 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14339
14340         PR target/47201
14341         * config/i386/i386.c (ix86_delegitimize_address): If
14342         simplify_gen_subreg fails, return orig_x.
14343
14344         PR bootstrap/47187
14345         * value-prof.c (gimple_stringop_fixed_value): Handle
14346         lhs of the call properly.
14347
14348 2011-01-07  Jan Hubicka  <jh@suse.cz>
14349
14350         PR lto/45375
14351         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14352
14353 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14354
14355         * target.def (function_switched_text_sections): New hook.
14356         * doc/tm.texi: Regenerated.
14357         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14358         * final.c (default_function_switched_text_sections): New.
14359         (final_scan_insn): Call function_switched_text_sections when a
14360         mid-function section change occurs.
14361         * output.h (default_function_switched_text_sections): Declare.
14362         * config/darwin-protos.h (darwin_function_switched_text_sections):
14363         Likewise.
14364         * config/darwin.c (darwin_function_switched_text_sections): New.
14365         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14366
14367 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14368
14369         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14370         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14371         the secondary code fragment when outputting for DWARF == 2.
14372
14373 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14374
14375         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14376         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14377         Remove.
14378         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14379         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14380
14381 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14382
14383         PR debug/46704
14384         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14385         when it is not empty.
14386
14387 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14388
14389         Bobcat Enablement
14390         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14391         (case ${target}): Add btver1.
14392         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14393         -march=native recognize btver1 processors.
14394         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14395         btver1 def_and_undef
14396         * config/i386/i386.c (struct processor_costs btver1_cost): New
14397         btver1 cost table.
14398         (m_BTVER1): New definition.
14399         (m_AMD_MULTIPLE): Includes m_BTVER1.
14400         (initial_ix86_tune_features): Add btver1 tune.
14401         (processor_target_table): Add btver1 entry.
14402         (static const char *const cpu_names): Add btver1 entry.
14403         (software_prefetching_beneficial_p): Add btver1.
14404         (ix86_option_override_internal): Add btver1 instruction sets.
14405         (ix86_issue_rate): Add btver1.
14406         (ix86_adjust_cost): Add btver1.
14407         * config/i386/i386.h (TARGET_BTVER1): New definition.
14408         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14409         (enum processor_type): Add PROCESSOR_BTVER1.
14410         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14411
14412 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14413
14414         PR target/43309
14415         * config/i386/i386.c (legitimize_tls_address)
14416         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14417         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14418         (tls_initial_exec_64_sun): New pattern.
14419
14420 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14421
14422         * doc/invoke.texi (Overall Options): Improve wording and markup
14423         of the description of -wrapper.
14424
14425 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14426
14427         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14428         rdynamic, threads): New Driver options.
14429
14430 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14431
14432         PR target/38118
14433         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14434         if coming from .tdata.
14435         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14436
14437 2011-01-06  Jan Hubicka  <jh@suse.cz>
14438
14439         PR lto/47188
14440         * collect2.c (main): Do not enable LTOmode when plugin is active.
14441
14442 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14443
14444         PR other/45915
14445         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14446         --version output if supported.
14447         * configure: Regenerate.
14448
14449 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14450
14451         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14452         Driver options.
14453
14454 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14455
14456         PR c/47150
14457         * c-convert.c (convert): When converting a complex expression
14458         other than COMPLEX_EXPR to a different complex type, ensure
14459         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14460         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14461         when converting COMPLEX_TYPE.
14462
14463 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14464
14465         PR tree-optimization/47139
14466         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14467         only the last reduction value is used outside the loop.  Update
14468         documentation.
14469
14470 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14471
14472         * config/rtems.opt: New.
14473         * config.gcc (*-*-rtems*): Use rtems.opt.
14474
14475 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14476
14477         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14478         processors do not support 3DNow instructions.
14479
14480 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14481
14482         * config/spu/spu.c (spu_option_override): Set parameter
14483         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14484
14485 2011-01-05  Jan Hubicka  <jh@suse.cz>
14486
14487         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14488         at the command line.
14489
14490 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14491
14492         PR lto/47162
14493         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14494         deltas on streamed outgoing edges.
14495         (output_node_opt_summary): Output info for outgoing edges only when
14496         the node is in new parameter set.
14497         (output_cgraph_opt_summary): New parameter set, passed to the two
14498         aforementioned functions.  Update its forward declaration and its
14499         callee too.
14500
14501 2011-01-05  Tom Tromey  <tromey@redhat.com>
14502
14503         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14504         operator to c_finish_omp_atomic.
14505         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14506         (build_unary_op): Update.
14507         (build_modify_expr): Update.
14508         (build_asm_expr): Update.
14509
14510 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14511
14512         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14513         newly inserted insns.
14514         (pad_bb): Likewise.
14515         (spu_emit_branch_hint): Likewise.
14516         (insert_hbrp_for_ilb_runout): Likewise.
14517         (spu_machine_dependent_reorg): Call df_finish_pass after
14518         schedule_insns returns.
14519
14520 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14521
14522         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14523
14524 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14525
14526         PR tree-optimization/47005
14527         * tree-sra.c (struct access): Add 'non_addressable' bit.
14528         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14529         (decide_one_param_reduction): Return 0 if the parameter is passed by
14530         reference and one of the accesses in the group is non_addressable.
14531
14532 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14533
14534         PR tree-optimization/47056
14535         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14536         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14537         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14538
14539 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14540
14541         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14542         initializer.  Skip view conversions from aggregate types.
14543
14544 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14545
14546         PR bootstrap/47055
14547         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14548
14549 2011-01-04  Philipp Thomas  <pth@suse.de>
14550
14551         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14552         obvious typo.
14553
14554 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14555
14556         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14557         on empty epilogue sequences.
14558
14559 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14560
14561         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14562         non-static): New Driver options.
14563
14564 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14565
14566         PR driver/47137
14567         * gcc.c (default_compilers[]): Set combinable field to 0
14568         for all assembly languages.
14569
14570 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14571
14572         * config/mips/loongson3a.md: New file.
14573         * config/mips/mips.md: Include loongson3a.md.
14574         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14575         TUNE_LOONGSON_3A.
14576
14577 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14578
14579         PR middle-end/47017
14580         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14581         instead of convert_memory_address_addr_space on the base expression.
14582
14583 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14584
14585         * config/spu/spu.c (spu_option_override): Update error text
14586         for bad -march= / -mtune= values.
14587
14588 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14589
14590         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14591         if branch-hint optimization will be performed.
14592
14593 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14594
14595         PR tree-optimization/47148
14596         * ipa-split.c (split_function): Convert arguments to
14597         DECL_ARG_TYPE if possible.
14598
14599         PR tree-optimization/47155
14600         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14601         when computing uns.
14602
14603         PR rtl-optimization/47157
14604         * combine.c (try_combine): If undobuf.other_insn becomes
14605         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14606         and set *new_direct_jump_p too.
14607
14608 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14609
14610         PR tree-optimization/47021
14611         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14612
14613 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14614
14615         * gcc.c (process_command): Update copyright notice dates.
14616         * gcov.c (print_version): Likewise.
14617         * gcov-dump.c (print_version): Likewise.
14618         * mips-tfile.c (main): Likewise.
14619         * mips-tdump.c (main): Likewise.
14620
14621 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14622
14623         PR tree-optimization/46801
14624         * tree-sra.c (type_internals_preclude_sra_p): Check whether
14625         aggregate fields start at byte boundary instead of the bit-field flag.
14626
14627 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14628
14629         PR driver/47137
14630         * gcc.c (main): Revert revision 168407.
14631
14632 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14633
14634         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14635
14636 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14637
14638         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14639         vector optab to expand vector/scalar shift, update gimple to vector.
14640
14641 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14642
14643         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14644         a thunk.
14645
14646 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14647
14648         PR tree-optimization/46984
14649         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14650         HOST_WIDE_INT.
14651         (cgraph_create_indirect_edge): Fixed line length.
14652         (cgraph_indirect_call_info): Declare.
14653         (cgraph_make_edge_direct) Update declaration.
14654         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14655         (cgraph_create_indirect_edge): Use it.
14656         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
14657         callees.
14658         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14659         the new thunk_delta representation.
14660         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14661         HOST_WIDE_INT.
14662         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14663         (ipa_read_indirect_edge_info): Likewise.
14664         * lto-cgraph.c (output_edge_opt_summary): New function.
14665         (output_node_opt_summary): Call it on all outgoing edges.
14666         (input_edge_opt_summary): New function.
14667         (input_node_opt_summary): Call it on all outgoing edges.
14668
14669 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
14670
14671         PR driver/47137
14672         * gcc.c (main): Don't check have_o when settting combine_inputs.
14673
14674 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14675
14676         * regrename.c: Add general comment describing the pass.
14677         (struct du_head): Remove 'length' field.
14678         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14679         (regrename_optimize): Do not sort chains.  Rework comments, add others.
14680         Force renaming to the preferred class (if any) in the first pass and do
14681         not consider registers that belong to it in the second pass.
14682         (create_new_chain): Do not set 'length' field.
14683         (scan_rtx_reg): Likewise.
14684
14685 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
14686
14687         PR tree-optimization/47140
14688         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14689         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14690         to bit_value_binop.
14691
14692         PR rtl-optimization/47028
14693         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14694         parm_birth_insn instead of at the beginning of first bb.
14695
14696 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
14697
14698         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14699         Remove the word "see" before "@pxref".
14700         * doc/rtl.texi: Remove the word "see" before "@pxref".
14701
14702 2011-01-01  Jan Hubicka  <jh@suse.cz>
14703
14704         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14705         memory.
14706
14707 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
14708
14709         PR target/38662
14710         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
14711
14712 \f
14713 Copyright (C) 2011 Free Software Foundation, Inc.
14714
14715 Copying and distribution of this file, with or without modification,
14716 are permitted in any medium without royalty provided the copyright
14717 notice and this notice are preserved.