OSDN Git Service

2011-05-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-18  Richard Guenther  <rguenther@suse.de>
2
3         PR middle-end/48989
4         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
5         operand verification.
6         (verify_gimple_assign_binary): Likewise.
7         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8         to non-1-precision BOOLEAN_TYPEs.
9
10 2011-05-18  Tom de Vries  <tom@codesourcery.com>
11
12         PR target/45098
13         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
14
15 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16
17         PR tree-optimization/49000
18         * tree-ssa.c (execute_update_addresses_taken): Call
19         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
20         be rewritten and decl has been marked for renaming, reset
21         the debug stmt.
22
23 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
24
25         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
26         enum_opts_set when testing if attributes have set -mfpmath=.
27
28 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
29
30         * config/mips/mips.c (mips_handle_option): Remove unused variable.
31
32 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
33
34         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
35         info->entry with 0
36         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
37         id.transform_lang_insert_block with NULL.
38
39 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
40
41         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
42         (output_fp_compare): Change args 3 and 4 to bool.
43         (ix86_expand_call): Change arg 6 to bool.
44         (ix86_attr_length_immediate_default): Change arg 2 to bool.
45         (ix86_attr_length_vex_default): Change arg 3 to bool.
46         * config/i386/i386.md: Update all uses.
47         * config/i386/i386.c: Ditto.
48         (ix86_flags_dependent): Change return type to bool.
49
50 2011-05-17  Richard Guenther  <rguenther@suse.de>
51
52         * gimple.c (type_hash_pair_compare): Fix comparison.
53
54 2011-05-17  Richard Guenther  <rguenther@suse.de>
55
56         * gimple.c (iterative_hash_gimple_type): Simplify singleton
57         case some more, fix final hash value of the non-singleton case.
58
59 2011-05-17  Richard Guenther  <rguenther@suse.de>
60
61         PR bootstrap/49013
62         Revert
63         2011-05-16  Richard Guenther  <rguenther@suse.de>
64
65         * gimple.c (gimple_types_compatible_p_1): Use names of the
66         type itself, not its main variant.
67         (iterative_hash_gimple_type): Likewise.
68
69 2011-05-17  Richard Guenther  <rguenther@suse.de>
70
71         * gimple.c (gimple_register_canonical_type): Use the main-variant
72         leader for computing the canonical type.
73
74 2011-05-17  Nick Clifton  <nickc@redhat.com>
75
76         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
77         moves.
78
79         * config/rx/rx.md: Add peephole to remove redundant extensions
80         after loads.
81         (bitset_in_memory): Use rx_restricted_mem_operand.
82         (bitinvert_in_memory): Likewise.
83         (bitclr_in_memory): Likewise.
84
85 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
86             Nick Clifton  <nickc@redhat.com>
87
88         * config/rx/rx.md: Add peepholes to match a register move followed
89         by a comparison of the moved register.  Replace these with an
90         addition of zero that does both actions in one instruction.
91
92 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
93
94         PR target/48986
95         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
96         predicate to allow CONST_INT.
97         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
98
99 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
100
101         * opts-common.c (opt_enum_arg_to_value): New.
102         * opts.h (opt_enum_arg_to_value): Declare.
103         * config/i386/i386.opt (fpmath): Remove.
104         (mfpmath=): Use Enum, Init and Save.
105         (fpmath_unit): New Enum and EnumValue entries.
106         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
107         name for function fpmath state.
108         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
109         * config/i386/i386.c: Include diagnostic.h.
110         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
111         (ix86_target_string): Take enum fpmath_unit value instead of string.
112         (ix86_debug_options): Update call to ix86_target_string.
113         (ix86_option_override_internal): Don't process fpmath strings here.
114         (x86_function_specific_save, ix86_function_specific_restore):
115         Don't handle fpmath state specially.
116         (ix86_function_specific_print): Pass fpmath state to
117         ix86_target_string instead of printing in this function.
118         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
119         Handle enum attributes.
120         (IX86_ATTR_ENUM, ix86_opt_enum): New.
121         (ix86_valid_target_attribute_tree): Update option_strings
122         handling.  Handle fpmath as enum option.
123         (ix86_can_inline_p): Update field names for function fpmath state.
124         (ix86_expand_builtin): Update call to ix86_target_string.
125         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
126         (ix86_fpmath): Remove.
127         * config/i386/t-i386 (i386.o): Update dependencies.
128
129 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
130
131         PR preprocessor/48677
132         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
133         from decoded_options[0], not from itself.
134
135 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
136
137         * config/i386/constraints.md (z): New constraint.
138         * config/i386/i386.c (c): New mode attribute.
139         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
140         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
141         constraint for operand 0.
142         (*call_vzeroupper): Ditto.
143         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
144         (*call_rex64_ms_sysv_vzeroupper): Ditto.
145         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
146         Use "lzm" constraint for operand 0.
147         (*call_pop_vzeroupper): Ditto.
148         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
149         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
150         constraint for operand 0.
151         (*sibcall_vzeroupper): Ditto.
152         (*sibcall_rex64_ms_sysv): Ditto.
153         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
154         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
155         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
156         (*sibcall_pop_vzeroupper): Ditto.
157         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
158         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
159         mode iterator.  Use "<c>zm" constraint for operand 1.
160         (*call_value_vzeroupper): Ditto.
161         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
162         for operand 1.
163         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
164         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
165         *call_value_pop_1.  Use "lzm" constraint for operand 1.
166         (*call_value_pop_vzeroupper): Ditto.
167         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
168         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
169         mode iterator.  Use "Uz" constraint for operand 1.
170         (*sibcall_value_vzeroupper): Ditto.
171         (*sibcall_value_rex64_ms_sysv): Ditto.
172         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
173         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
174         constraint for operand 1.
175         (*sibcall_value_pop_vzeroupper): Ditto.
176         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
177         and "z" constraint for operand 2.
178         (*tls_global_dynamic_32_gnu): Ditto.
179         (*tls_local_dynamic_base_32_gnu): Ditto.
180         (*tls_local_dynamic_base_64): Ditto.
181         (*tls_local_dynamic_32_once): Ditto.
182         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
183         Update all callers.
184         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
185
186 2011-05-16  Richard Guenther  <rguenther@suse.de>
187
188         * gimple.c (gimple_types_compatible_p_1): Use names of the
189         type itself, not its main variant.
190         (iterative_hash_gimple_type): Likewise.
191
192 2011-05-16  Richard Guenther  <rguenther@suse.de>
193
194         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
195         always visit pointer target and function result and argument types.
196
197 2011-05-16  Jason Merrill  <jason@redhat.com>
198
199         PR c++/48999
200         * tree-inline.c (copy_statement_list): Put back recursion.
201
202 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
203
204         PR target/27663
205         PR target/41076
206         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
207         * config/avr/avr.md ("*ior<mode>qi.byte0",
208         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
209
210 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
211
212         PR target/45099
213         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
214         register is needed for a function argument.
215
216 2011-05-16  Richard Guenther  <rguenther@suse.de>
217
218         * gimple.c (struct type_hash_pair): New type.
219         (type_hash_pair_compare): New function.
220         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
221
222 2011-05-16  Revital Eres  <revital.eres@linaro.org>
223
224         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
225
226 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
227
228         * config/i386/i386.md (floating point move splitters): Fix
229         usage of standard_80387_constant_p.
230         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
231
232 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
233
234         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
235
236 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
237
238         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
239         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
240         (tree_ssa_lim_finalize): Likewise.
241
242 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
243
244         * config/i386/constraint.md (Yd, Yx): New register constraints.
245         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
246         Yd conditional register constraint.
247         (*movtf_internal): Use standard_sse_constant_opcode.
248         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
249         Yx conditional register constraint.
250         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
251         Yd conditional register constraint.  Use standard_sse_constant_p to
252         check for valid SSE constants and call standard_sse_constant_opcode to
253         output SSE insn.
254         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
255         constants and call standard_sse_constant_opcode to output SSE insn.
256         * config/i386/i386.c (ix86_option_ovverride_internal): Set
257         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
258         optimize_size is set.
259         (standard_sse_constant_opcode): Output conditional AVX insn templates.
260
261 2011-05-14  Tobias Burnus  <burnus@net-b.de>
262
263         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
264
265 2011-05-13  Martin Jambor  <mjambor@suse.cz>
266
267         * ipa-prop.c (ipa_cst_from_jfunc): New function.
268         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
269         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
270         (evaluate_conditions_for_ipcp_clone): Removed.
271         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
272         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
273         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
274
275 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
276
277         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
278         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
279         lieu of MAY_HAVE_DEBUG_STMTS.
280         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
281         debug statements if !MAY_HAVE_DEBUG_STMTS.
282
283 2011-05-13  Martin Thuresson  <martint@google.com>
284
285         PR gcov-profile/47793
286         * libgcov.c (gcov_exit): Support relative profile paths.
287         * doc/invoke.texi (-fprofile-dir): Update for above change.
288
289 2011-05-13  Richard Guenther  <rguenther@suse.de>
290
291         * gimple.c (gimple_canonical_types_compatible_p): Do not use
292         type-pair caching, do not compare hashes.
293
294 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
295
296         PR middle-end/48965
297         * tree-cfg.c (edge_to_cases_cleanup): Return true.
298         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
299
300 2011-05-13  Kai Tietz  <ktietz@redhat.com>
301
302         * gimplify.c (gimplify_expr): Make sure operand is boolified.
303         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
304         compatible type for TRUTH_NOT_EXPR.
305
306 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
307
308         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
309         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
310         can_create_pseudo_p ().
311
312 2011-05-13  Richard Guenther  <rguenther@suse.de>
313
314         PR lto/48978
315         * gimple.c (iterative_hash_gimple_type): Revert change in
316         pointer target and function result and argument hashing.
317
318 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
319
320         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
321         (*movxf_internal_nointeger): Ditto.
322         (*movdf_internal_rex64): Ditto.
323         (*movdf_internal): Ditto.
324         (*movdf_internal_nointeger): Ditto.
325         (*movsf_internal): Ditto.
326         (sincos splitters): Use can_create_pseudo ().
327
328 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
329
330         * config/i386/i386-opts.h: New.
331         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
332         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
333         ix86_section_threshold): Remove.
334         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
335         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
336         OPT_mbranch_cost_.
337         (ix86_option_override_internal): Don't decode strings for options
338         other than -march=, -mtune= and -mfpmath=.  Don't allow for
339         __attribute__ uses in remaining diagnostics for options with
340         string arguments.  Don't check for integer arguments being negative.
341         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
342         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
343         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
344         ix86_branch_cost, ix86_section_threshold): Remove.
345         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
346         HeaderInclude.
347         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
348         but not Var.
349         (masm=): Use Enum and Init.
350         (asm_dialect): New Enum and EnumValue entries.
351         (mbranch-cost=): Use UInteger.
352         (mlarge-data-threshold=): Use UInteger and Init.
353         (mcmodel=): Use Enum and Init.
354         (cmodel): New Enum and EnumValue entries.
355         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
356         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
357         mregparm=): Use UInteger.
358         (mstringop-strategy=): Use Enum and Init.
359         (stringop_alg): New Enum and EnumValue entries.
360         (mtls-dialect=): Use Enum and Init.
361         (tls_dialect): New Enum and EnumValue entries.
362         (mabi=): Use Enum and Init.
363         (calling_abi): New Enum and EnumValue entries.
364         (mveclibabi=): Use Enum and Init.
365         (ix86_veclibabi): New Enum and EnumValue entries.
366
367 2011-05-13  Nick Clifton  <nickc@redhat.com>
368
369         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
370         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
371
372 2011-05-13  Kai Tietz  <ktietz@redhat.com>
373
374         PR middle-end/48984
375         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
376         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
377         (gimple_boolify): Check for cast for boolean_type_node instead for
378         BOOLEAN_TYPE.
379
380 2011-05-13  Richard Guenther  <rguenther@suse.de>
381
382         PR tree-optimization/48172
383         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
384         multiplying by number of iterations for equal step.
385         (vect_create_cond_for_alias_checks): Likewise.
386
387 2011-05-13  Andreas Schwab  <schwab@redhat.com>
388
389         * configure.ac: Use AS_HELP_STRING throughout.
390         * configure: Regenerate.
391
392 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
393
394         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
395         (ix86_emit_restore_regs_using_mov): Likewise.
396         (ix86_emit_restore_sse_regs_using_mov): Likewise.
397
398 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
399
400         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
401         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
402         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
403         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
404         RTX_OK_FOR_OLO10_P): ...here.
405         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
406         SYMBOLIC_CONST.
407
408 2011-05-12  Kai Tietz  <ktietz@redhat.com>
409
410         * gimplify.c (gimple_boolify): Re-boolify expression
411         arguments even if expression type is of kind BOOLEAN_TYPE.
412         (gimplify_boolean_expr): Removed.
413         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
414         and XOR. Additional take care that we keep expression's type.
415         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
416         of TRUTH_AND|OR|XOR_EXPR.
417
418 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
419
420         PR tree-optimization/48975
421         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
422         on all bbs here and free and clear ifc_bbs at the end.
423
424 2011-05-12  Richard Guenther  <rguenther@suse.de>
425
426         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
427         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
428         until after simple checks.
429         (gimple_types_compatible_p): Likewise.
430         (iterative_hash_gimple_type): Always hash pointer targets
431         and function return and argument types.
432         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
433         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
434         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
435         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
436         completely in the simple compare section.
437         (gimple_register_canonical_type): Query the cache again after
438         registering.
439
440 2011-05-12  Richard Guenther  <rguenther@suse.de>
441
442         PR tree-optimization/48172
443         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
444         the number of iterations from the segment size calculation.
445         (vect_create_cond_for_alias_checks): Adjust.
446
447 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
448
449         PR debug/48967
450         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
451         if validate_subreg fails.
452
453 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
454
455         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
456         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
457         early.
458
459 2011-05-12  DJ Delorie  <dj@redhat.com>
460
461         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
462         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
463         created builtin into rx_builtins array.
464         (rx_builtin_decl): New function.
465         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
466
467 2011-05-12  DJ Delorie  <dj@redhat.com>
468             Nick Clifton  <nickc@redhat.com>
469
470         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
471         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
472         (rx_is_legitimate_address): Add pre-decrement and post-increment
473         addressing in HImode and QImode.  Fix test for out of range
474         REG+INT addressing.
475         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
476         (rx_align_for_label): Test label before extracting its usage count.
477         (rx_adjust_insn_lengths): Fix selection of insn codes.
478         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
479
480 2011-05-11  Jason Merrill  <jason@redhat.com>
481
482         * tree.c (type_hash_canon): Use struct tree_type_non_common.
483
484 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
485
486         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
487         reindent the subsequent block.
488
489 2011-05-11  Satoru Takabayashi  <satorux@google.com>
490             Paul Pluzhnikov  <ppluzhnikov@google.com>
491
492         * doc/install.texi (Configuration): Document --with-linker-hash-style.
493         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
494         * config.in: Add LINKER_HASH_STYLE.
495         * configure.ac: Add --with-linker-hash-style.
496         * configure: Regenerate.
497
498 2011-05-11  Richard Guenther  <rguenther@suse.de>
499
500         PR middle-end/48964
501         * gimple.c (iterative_hash_canonical_type): Fix typo.
502
503 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
504
505         * config/i386/i386.c (legitimize_tls_address)
506         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
507         expanders directly for TARGET_GNU2_TLS.  Determine pic and
508         __tls_get_addr symbol reference here.  Update call to
509         gen_tls_global_dynamic_{32,64} for added arguments.
510         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
511         expanders directly for TARGET_GNU2_TLS.  Determine
512         __tls_get_addr symbol reference here.  Update call to
513         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
514         unique UNSPEC REG_EQUIV to libcall block.
515         (ix86_tls_get_addr): Declare static.
516         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
517         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
518         Do not determine pic and __tls_get_addr symbol reference here. Do not
519         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
520         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
521         (tls_global_dynamic_64): Add operand 2.  Do not determine
522         __tls_get_addr symbol reference here.  Do not call
523         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
524         (tls_local_dynamic_base64): Ditto for operand 1.
525
526 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
527
528         * function.c (expand_function_start): Initialize stack_check_probe_note
529         only if the generic stack checking mechanism is used.
530
531 2011-05-11  Richard Guenther  <rguenther@suse.de>
532
533         PR tree-optimization/15256
534         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
535         (A & B) | C, combine (A op CST1) op CST2.
536         (tree_ssa_forward_propagate_single_use_vars): Only bother to
537         visit assigns that have uses.
538
539 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
540
541         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
542         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
543         (unpack_ts_type_common_value_fields): ...this.  Update comment.
544         (unpack_value_fields): Adjust for renaming.
545         (lto_input_ts_type_tree_pointers): Split into...
546         (lto_input_ts_type_common_tree_pointer): ...this and...
547         (lto_input_ts_type_non_common_tree_pointers): ...this.
548         (lto_input_tree_pointers): Adjust for above split.
549         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
550         (pack_ts_type_common_value_fields): ...this.  Update comment.
551         (lto_output_ts_type_tree_pointers): Split into...
552         (lto_output_ts_type_common_tree_pointers): ...this and...
553         (lto_output_ts_type_non_common_tree_pointers): ...this.
554         (lto_output_tree_pointers): Adjust for above split.
555         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
556         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
557         * stor-layout.c (vector_type_mode): Adjust location of mode field.
558         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
559         Define.
560         (struct tree_type): Split into...
561         (struct tree_type_common: ...this and...
562         (struct tree_type_with_lang_specific): ...this and...
563         (struct tree_type_non_common): ...this.  Adjust accessor macros
564         accordingly.
565         (TYPE_VALUES_RAW): Define.
566         (union tree_node): Update for above changes.
567         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
568         TS_TYPE_NON_COMMON.
569         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
570         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
571         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
572         * treestructu.def (TS_TYPE): Remove.
573         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
574         Define.
575
576 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
577
578         PR debug/48159
579         * tree-ssa.c (reset_debug_uses): New function.
580         * tree-flow.h (reset_debug_uses): New prototype.
581         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
582         * tree-loop-distribution.c (generate_loops_for_partition): Call
583         reset_debug_uses on the stmts that will be removed.  Keep around
584         all debug stmts, don't count them as bits in partition bitmap.
585         (generate_builtin): Don't count debug stmts or labels as bits in
586         partition bitmap.
587
588 2011-05-11  Richard Guenther  <rguenther@suse.de>
589
590         * gimple.c (gimple_type_hash_1): Merge with ...
591         (gimple_type_hash): ... this.
592         (gtc_visit): Remove mode parameter and simplify accordingly.
593         (gimple_types_compatible_p_1): Likewise.
594         (gimple_types_compatible_p): Likewise.
595         (iterative_hash_gimple_type): Likewise.
596         (visit): Likewise.
597         (gimple_type_eq): Adjust.
598
599 2011-05-11  Revital Eres  <revital.eres@linaro.org>
600
601         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
602         enters the branch create an anti edge in the opposite direction
603         to prevent the creation of reg-moves.
604         * modulo-sched.c: Adjust comment to reflect the fact we are
605         scheduling closing branch.
606         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
607         (stage_count): New field in struct partial_schedule.
608         (calculate_stage_count): New function.
609         (normalize_sched_times): Rename to reset_sched_times and handle
610         incrementing the sched time of the nodes by a constant value
611         passed as parameter.
612         (duplicate_insns_of_cycles): Skip closing branch.
613         (sms_schedule_by_order): Schedule closing branch.
614         (ps_insn_find_column): Handle closing branch.
615         (sms_schedule): Call reset_sched_times and adjust the code to
616         support scheduling of the closing branch.
617         (ps_insert_empty_row): Update calls to normalize_sched_times
618         and rotate_partial_schedule functions.
619
620 2011-05-11  Richard Guenther  <rguenther@suse.de>
621
622         PR middle-end/48953
623         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
624
625 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
626
627         * opts.c (finish_options): Move warning settings from process_options.
628         * toplev.c (process_options): Move warning settings to finish_options.
629
630 2011-05-11  Richard Guenther  <rguenther@suse.de>
631
632         PR tree-optimization/18041
633         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
634         (simplify_bitwise_binary): ... this.  Handle operand conversions
635         by applying them to the result instead.
636         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
637
638 2011-05-11  Richard Guenther  <rguenther@suse.de>
639
640         * gimple.c (gimple_canonical_types_compatible_p): Split out
641         from gimple_types_compatible_p and friends.  Do not recurse
642         to pointed-to types.
643         (gimple_canonical_type_eq): Use it.
644         (iterative_hash_canonical_type): Split out from
645         iterative_hash_gimple_type and friends.  Do not recurse
646         to pointed-to types.
647         (gimple_canonical_type_hash): Use it, allocate the hash here.
648
649 2011-05-11  Revital Eres  <revital.eres@linaro.org>
650
651         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
652         recognizing doloop.
653
654 2011-05-11  Revital Eres  <revital.eres@linaro.org>
655
656         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
657         instead of PREV_INSN.
658
659 2011-05-11  Revital Eres  <revital.eres@linaro.org>
660
661         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
662         * loop-doloop.c (doloop_condition_get): Likewise.
663         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
664         (doloop_end): New.
665         * config/arm/arm.md (*addsi3_compare0): Remove "*".
666
667 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
668
669         * tree.def (CASE_LABEL_EXPR): Add an operand.
670         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
671
672 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
673
674         * c-decl.c (c_override_global_bindings_to_false): Remove.
675         (global_bindings_p): Don't check
676         c_override_global_bindings_to_false.
677         * c-tree.h (c_override_global_bindings_to_false): Remove.
678         * c-typeck.c (composite_type): Don't set
679         c_override_global_bindings_to_false.
680
681 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
682
683         PR target/48857, 48495
684         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
685         (VSX_MODE): Ditto.
686         (VSX_MOVE_MODE): Ditto.
687         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
688         VSX vector types.  Add V2DImode.
689         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
690         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
691         (MODES_TIEABLE_P): Ditto.
692
693         * config/rs6000/rs6000.c (rs6000_emit_move): Use
694         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
695         VSX_VECTOR_MODE.
696         (init_cumulative_args): Ditto.
697         (rs6000_function_arg_boundary): Ditto.
698         (rs6000_function_arg_advance_1): Ditto.
699         (rs6000_function_arg): Ditto.
700         (rs6000_function_ok_for_sibcall): Ditto.
701         (emit_frame_save): Ditto.
702         (rs6000_function_value): Ditto.
703         (rs6000_libcall_value): Ditto.
704
705 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
706
707         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
708         i386/darwin-lib.h to $libgcc_tm_file.
709         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
710
711 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
712
713         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
714
715 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
716
717         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
718         * config/rs6000/rs6000-tables.opt: New file (generated).
719         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
720         rs6000/rs6000-tables.opt to extra_options.
721         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
722         * config/rs6000/rs6000.c (rs6000_select): Remove.
723         (processor_target_table): Move contents to rs6000-cpus.def.
724         (darwin_rs6000_override_options): Check
725         global_options_set.x_rs6000_cpu_index instead of
726         rs6000_select[1].string.
727         (rs6000_option_override_internal): Likewise.
728         (rs6000_handle_option): Don't assert that global structures are in
729         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
730         (rs6000_default_cpu): New variable.
731         (rs6000_file_start): Set it instead of local default_cpu.  Check
732         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
733         global_options_set.x_rs6000_tune_index instead of rs6000_select.
734         (rs6000_darwin_file_start): Check rs6000_default_cpu and
735         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
736         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
737         rs6000_select): Remove.
738         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
739         Remove.
740         (mcpu=, mtune=): Use Var, Init, Enum and Save.
741         * config/rs6000/t-rs6000
742         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
743         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
744         global_options_set.x_rs6000_cpu_index instead of
745         rs6000_select[1].string.
746         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
747         global_options_set.x_rs6000_cpu_index instead of
748         rs6000_select[1].string.
749
750 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
751
752         * config.gcc (libgcc_tm_file): Define instead of including files
753         from ../../libgcc/config/ in tm_file.
754         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
755         * configure: Regenerate.
756         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
757         libgcc_tm.h, cs-libgcc_tm.h): New.
758         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
759         (clean): Remove libgcc_tm.h.
760         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
761         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
762         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
763
764 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
765
766         PR target/48896
767         * config/avr/avr.c (avr_ret_register): Return unsigned int
768         instead of int.
769         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
770         it to avr_libcall_value.
771         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
772         expand_expr.
773         (avr_expand_binop_builtin): Ditto.
774         (avr_expand_unop_builtin): Ditto.
775
776 2011-05-10  DJ Delorie  <dj@redhat.com>
777
778         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
779         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
780         * config/rx/rx.c (rx_align_for_label): Add label and
781         uses_threshold parameters.  Do not align when the label is not
782         used enough.
783         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
784
785 2011-05-10  Richard Guenther  <rguenther@suse.de>
786
787         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
788         a series of conversions and apply foldings similar to what
789         fold-const does.
790         (tree_ssa_forward_propagate_single_use_vars): Call it.
791
792 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
793
794         PR tree-optimization/48611
795         PR tree-optimization/48794
796         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
797         referenced from RESX or EH_DISPATCH arguments.
798
799         PR debug/48928
800         * dfp.c (decimal_to_decnumber): Handle conversion from
801         dconst{1,2,m1,half}.
802
803 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
804
805         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
806         for !flag_prefer_avx128.
807         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
808
809 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
810
811         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
812         (fold_ternary_loc): Use expr_location_or.
813
814 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
815
816         PR debug/48853
817         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
818         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
819         Pmode and mem_mode is not VOIDmode.
820
821 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
822
823         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
824         TYPE_QUAL_RESTRICT): Convert to enum.
825
826 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
827
828         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
829         (const_pow2_1_to_8_operand): Ditto.
830         (const_pow2_1_to_128_operand): Ditto.
831         (const_pow2_1_to_32768_operand): Ditto.
832         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
833         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
834         in insn constraint to check integer value of operand 3.
835         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
836
837         (PINSR_MODE): New mode iterator.
838         (sse2p4_1): New mode attribute.
839         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
840         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
841         iterator.  Use const_int_operand instead of
842         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
843         exact_log2 in insn constraint to check integer value of operand 3.
844
845 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
846
847         * config/i386/sse.md (blendbits): Remove mode attribute.
848         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
849         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
850         Check integer value of operand 3 in insn constraint.
851
852 2011-05-09  Richard Guenther  <rguenther@suse.de>
853
854         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
855         for diagnostics.
856         (lto_symtab_merge): Likewise.  Do not register types here.
857         (lto_symtab_merge_decls_2): Likewise.
858         (lto_symtab_merge_decls_1): Likewise.
859         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
860         * gimple.c (enum gtc_mode): Declare.
861         (gimple_types_compatible_p): Make static.
862
863 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
864
865         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
866         temporary register to match Pmode.
867
868 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
869
870         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
871         and *vec_concatv4si_1_avx.
872
873 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
874
875         PR rtl-optimization/48927
876         * ira-conflicts.c (commutative_constraint_p): Use
877         recog_data.alternative_enabled_p to disable alternatives where
878         "enabled" attribute is false.
879         (get_dup_num): Ditto.
880         * ira-lives.c (single_reg_class): Ditto.
881         (ira_implicitly_set_insn_hard_regs): Ditto.
882
883 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
884
885         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
886         (dataflow_set_preserve_mem_locs): Likewise.
887
888 2011-05-09  Philipp Thomas  <pth@suse.de>
889
890         * config/mep/mep.c (mep_validate_vliw): Syntax description
891         should not be translated.
892
893 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
894
895         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
896         * config/mips/mips-tables.opt: New file (generated).
897         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
898         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
899         MIPS_ARCH_OPTION_NATIVE): Define.
900         * config/mips/mips.c (mips_cpu_info_table): Move contents to
901         mips-cpus.def.
902         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
903         mips_parse_cpu): Remove.
904         (mips_cpu_info_from_opt, mips_default_arch): New.
905         (mips_handle_option): Don't assert that global structures are in
906         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
907         (mips_option_override): Use new variables and functions to set
908         state of these options.  Use strcmp to check for individual CPU names.
909         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
910         definition.
911         * config/mips/mips.opt (march=): Use ToLower and Enum.
912         (mips): Use ToLower, Enum and Var.
913         (mtune=): Use ToLower and Enum.
914         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
915
916 2011-05-08  Jan Hubicka  <jh@suse.cz>
917
918         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
919         Arrange type pairs to be UID ordered.
920         (gimple_lookup_type_leader): Make inline.
921
922 2011-05-09  Nick Clifton  <nickc@redhat.com>
923
924         PR target/48899
925         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
926         PROCESSOR_DEFAULT.
927
928         PR target/48897
929         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
930         variable 's'.
931
932 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
933
934         * combine.c (simplify_comparison): Abstract out parts into...
935         (simplify_compare_const): ... new function.
936         (try_combine): Generalize parallel arithmetic/compare combining
937         to call simplify_compare_const() and CANONICALIZE_COMPARE().
938
939 2011-05-08  Jan Hubicka  <jh@suse.cz>
940
941         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
942         (cgraph_create_virtual_clone): Call hooks once virtual clone
943         is finished.
944         * cgraph.h (cgraph_clone_node): Update prototype.
945         * ipa-cp.c (ipcp_estimate_growth): Use
946         estimate_ipcp_clone_size_and_time.
947         * ipa-inline-transform.c (clone_inlined_nodes): Update.
948         * lto-cgraph.c (input_node): Update.
949         * ipa-inline.c (recursive_inlining): Update.
950         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
951         (evaluate_conditions_for_known_args): Break out from ...
952         (evaluate_conditions_for_edge): ... here.
953         (evaluate_conditions_for_ipcp_clone): New function.
954         (inline_node_duplication_hook): Update clone summary based
955         on parameter map.
956         (estimate_callee_size_and_time): Rename to ...
957         (estimate_node_size_and_time): take NODE instead of EDGE;
958         take POSSIBLE_TRUTHS as argument.
959         (estimate_callee_size_and_time): Update.
960         (estimate_ipcp_clone_size_and_time): New function.
961         (do_estimate_edge_time): Update.
962
963 2011-05-08  Richard Guenther  <rguenther@suse.de>
964
965         PR middle-end/48908
966         PR middle-end/48905
967         * expmed.c (expand_shift_1): Compute adjusted constant shift
968         amount manually.
969
970 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
971
972         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
973
974 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
975
976         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
977
978 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
979
980         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
981
982 2011-05-07  Jan Hubicka  <jh@suse.cz>
983
984         * ipa-inline-transform.c (inline_call): Account when program size
985         decreases.
986         * ipa-inline.c (relative_time_benefit): New function.
987         (edge_badness): Reorganize to be power 2 based; fix thinko when
988         computing badness for negative growth; update comments to match
989         reality; better dumps.
990
991 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
992
993         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
994         type to bool and adjust comment.
995         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
996         (fold_mathfn_compare): Remove calls to global_bindings_p.
997         (fold_inf_compare): Likewise.
998         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
999         * c-tree.h (global_bindings_p): Adjust prototype.
1000         * c-decl.c (global_bindings_p): Return bool and simplify.
1001
1002 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1003
1004         PR tree-optimization/48837
1005         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1006         when accumulator transformation is performed.
1007
1008 2011-05-06  Jan Hubicka  <jh@suse.cz>
1009
1010         * i386.h (ix86_tune_indices): Add
1011         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1012         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1013         * i386.c (initial_ix86_tune_features): Add
1014         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1015         (software_prefetching_beneficial_p): Remove predicate.
1016         (ix86_option_override_internal): Use new macro.
1017
1018 2011-05-06  Jan Hubicka  <jh@suse.cz>
1019
1020         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1021
1022 2011-05-06  Jan Hubicka  <jh@suse.cz>
1023
1024         * cgraph.c (cgraph_add_thunk): Create real function node instead
1025         of alias node; finalize it and mark needed/reachale; arrange visibility
1026         to be right and add it into the corresponding same comdat group list.
1027         (dump_cgraph_node): Dump thunks.
1028         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1029         cgraph_function_with_gimple_body_p,
1030         cgraph_first_function_with_gimple_body,
1031         cgraph_next_function_with_gimple_body): New functions.
1032         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1033         New macros.
1034         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1035         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1036         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1037         devirtualization when optimizing.
1038         (verify_cgraph_node): Verify thunks.
1039         (cgraph_analyze_function): Analyze thunks.
1040         (cgraph_mark_functions_to_output): Output thunks only in combination
1041         with function they are assigned to.
1042         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1043         alias into normal node.
1044         (assemble_thunks): New functoin.
1045         (cgraph_expand_function): Use it.
1046         * lto-cgraph.c (lto_output_node): Stream thunks.
1047         (input_overwrite_node): Stream in thunks.
1048         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1049         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1050         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1051         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1052         (inline_analyze_function): Do not care about thunk jump functions.
1053         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1054         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1055         cgraph_function_with_gimple_body_p.
1056         * passes.c (do_per_function_toporder): Use
1057         cgraph_function_with_gimple_body_p.
1058         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1059         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1060         (function_called_by_processed_nodes_p): Likewise.
1061
1062 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1063
1064         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1065         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1066         entries.
1067         (mabi=): Replace with separate entries for mabi=altivec,
1068         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1069         mabi=ieeelongdouble and mabi=ibmlongdouble.
1070         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1071         check for -mabi=spe without SPE ABI support here.
1072         (rs6000_handle_option): Replace OPT_mabi_ handling with
1073         OPT_mabi_altivec and OPT_mabi_spe handling.
1074
1075 2011-05-06  Cary Coutant  <ccoutant@google.com>
1076
1077         * dwarf2out.c (contains_subprogram_definition): New function.
1078         (should_move_die_to_comdat): Call it.
1079
1080 2011-05-06  Jeff Law  <law@redhat.com>
1081
1082         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1083         remove_ctrl_stmt_and_useless_edges.
1084         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1085         (fixup_template_block, thread_single_edge): Likewise.
1086         (mark_threaded_blocks): Use THREAD_TARGET.
1087
1088 2011-05-06  Alan Modra  <amodra@gmail.com>
1089
1090         PR target/48900
1091         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1092         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1093
1094 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1097         constraint modifier to "r".
1098
1099 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1100
1101         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1102         fall through for OPT_mcmodel_.
1103
1104 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1105
1106         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1107         instruction sizes.
1108         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1109
1110 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1111
1112         PR target/47930
1113         * config/arm/arm.opt (marm): Document it.
1114         (mthumb): Reject negative variant.
1115
1116 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1117
1118         PR target/48898
1119         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1120         Fix typo in "ccvt" variable name.
1121
1122 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1123
1124         PR target/48895
1125         * config/vms/vms-ar.c (main): Remove cwd variable.
1126
1127 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1128
1129         PR debug/48902
1130         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1131
1132 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1133
1134         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1135         * gimplify.c (gimplify_switch_expr): Likewise.
1136         * omp-low.c (expand_omp_sections): Likewise.
1137         * tree-eh.c (lower_try_finally_switch): Likewise.
1138         (lower_eh_dispatch): Likewise.
1139         * tree.h (build_case_label): Declare.
1140         * tree.c (build_case_label): Define.
1141
1142 2011-05-05  Jason Merrill  <jason@redhat.com>
1143
1144         PR c++/40975
1145         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1146         (copy_statement_list): Don't recurse.
1147         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1148         STATEMENT_LIST.
1149
1150 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1153         through from -mfpu= handling.
1154         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1155
1156 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1157
1158         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1159         POST_MODIFY.
1160
1161 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1162
1163         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1164         for 11.31.
1165         (hppa[12]*-*-hpux11*): Ditto.
1166         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1167         * config/ia64/hpux-unix2003.h: New.
1168         * config/pa/pa-hpux1131.opt: New.
1169         * config/pa/pa-hpux1131.h: New.
1170         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1171         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1172         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1173
1174 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1175
1176         PR debug/48853
1177         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1178         instead of mode as 3rd argument to recursive call.
1179         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1180         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1181         VOIDmode.
1182         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1183         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1184         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1185         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1186
1187 2011-05-05  Julian Brown  <julian@codesourcery.com>
1188
1189         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1190         parenthesis in D-register case.
1191
1192 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1193
1194         * opt-functions.awk (var_type_struct): Handle Enum options.
1195         * optc-gen.awk: Don't check range of variables of character type.
1196         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1197         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1198         rs6000_sdata_name, rs6000_explicit_options): Remove.
1199         (rs6000_option_override_internal): Check for -malign-power here.
1200         Use global_options_set instead of rs6000_explicit_options.
1201         (rs6000_parse_fpu_option): Remove.
1202         (rs6000_handle_option): Access variables via opts and opts_set
1203         pointers.  Use error_at and warning_at.  Add fall-through
1204         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1205         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1206         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1207         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1208         here.  Don't use rs6000_parse_fpu_option.
1209         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1210         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1211         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1212         (mrecip=): Use Var.
1213         (mspe): Use Var and Save.
1214         (mtraceback=): Use Enum and Var.
1215         (rs6000_traceback_type): New Enum and EnumValue entries.
1216         (mfloat-gprs=): Use Enum, Var and Save.
1217         (rs6000_float_gprs): New Enum and EnumValue entries.
1218         (mlong-double-): use Var and Save.
1219         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1220         (malign-): Use Enum and Var.
1221         (rs6000_alignment_flags): New Enum and EnumValue entries.
1222         (mfpu=): Use Enum.
1223         (fpu_type_t): New Enum and EnumValue entries.
1224         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1225         global_options_set instead of rs6000_explicit_options.
1226         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1227         global_options_set instead of rs6000_explicit_options.
1228         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1229         global_options_set instead of rs6000_explicit_options.
1230         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1231         global_options_set instead of rs6000_explicit_options.
1232         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1233         global_options_set instead of rs6000_explicit_options.
1234         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1235         global_options_set instead of rs6000_explicit_options.
1236         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1237         definition.
1238         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1239         global_options_set instead of rs6000_explicit_options.
1240         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1241         (rs6000_cmodel): New Enum and EnumValue entries.
1242         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1243         global_options_set instead of rs6000_explicit_options.
1244         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1245         (mtls-size=): Use Enum and Var.
1246         (rs6000_tls_size): New Enum and EnumValue entries.
1247
1248 2011-05-05  Michael Matz  <matz@suse.de>
1249
1250         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1251         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1252         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1253         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1254         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1255         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1256         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1257         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1258         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1259         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1260         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1261         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1262         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1263         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1264         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1265         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1266
1267 2011-05-05  Richard Guenther  <rguenther@suse.de>
1268
1269         * expmed.c (expand_variable_shift): Rename to ...
1270         (expand_shift_1): ... this.  Take an expanded shift amount.
1271         For rotates recurse directly not building trees for the shift amount.
1272         (expand_variable_shift): Wrap around expand_shift_1.
1273         (expand_shift): Adjust.
1274
1275 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1276
1277         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1278
1279 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1280
1281         * tree.h (get_pending_sizes): Remove prototype.
1282         (put_pending_size): Likewise.
1283         (put_pending_sizes): Likewise.
1284         * stor-layout.c (pending_sizes): Delete.
1285         (get_pending_sizes): Likewise.
1286         (put_pending_size): Likewise.
1287         (put_pending_sizes): Likewise.
1288         (variable_size): Do not call put_pending_size and tidy up.
1289         * function.h (struct function): Remove dont_save_pending_sizes_p.
1290         * lto-streamer-in.c (input_function): Do not stream it.
1291         * lto-streamer-out.c (output_function): Likewise.
1292         * tree-inline.c (initialize_cfun): Do not copy it.
1293         * c-decl.c (store_parm_decls): Do not set it.
1294         * omp-low.c (create_task_copyfn): Likewise.
1295         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1296
1297 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1298
1299         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1300         conditions.
1301         (*movdf_internal): Ditto.
1302         (*movdf_internal_nointeger): Ditto.
1303         (*movsf_internal): Ditto.
1304
1305 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1306
1307         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1308         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1309         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1310         (c_variable_size): Remove.
1311         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1312         call put_pending_sizes.
1313         (get_parm_info): Add parameter expr.  Use it to set
1314         arg_info->pending_sizes.
1315         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1316         get_pending_sizes.
1317         * c-parser.c (c_parser_parms_declarator): Update call to
1318         c_parser_parms_list_declarator.
1319         (c_parser_parms_list_declarator): Take parameter expr.  Update
1320         call to push_parm_decl.  Update recursive call.  Don't call
1321         get_pending_sizes.  Update calls to get_parm_info.
1322         (c_parser_objc_method_definition): Update calls to
1323         c_parser_objc_method_decl and objc_start_method_definition.
1324         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1325         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1326         grokparm.
1327         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1328         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1329         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1330
1331 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1332
1333         PR pch/45979
1334         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1335         __ARM_EABI__ hosts.
1336
1337 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1338
1339         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1340         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1341         (spu_output_mi_thunk): New function.
1342
1343 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1344
1345         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1346         targetm.asm_out.print_operand.
1347         * config/sol2.c: Include target.h.
1348
1349 2011-05-04  Jan Hubicka  <jh@suse.cz>
1350
1351         * ipa-inline.c (reset_edge_caches): New function.
1352         (update_caller_keys): Add check_inlinablity_for; do not
1353         reset edge caches; remove now unnecesary loop.
1354         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1355         (update_all_callee_keys): Likewise.
1356         (inline_small_functions): Sanity check cache; update code
1357         recomputing it.
1358
1359 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1360
1361         PR rtl-optimization/47612
1362         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1363         as the last insn of the sequence to be moved.
1364
1365 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1366
1367         PR fortran/48864
1368         * doc/invoke.texi (Ofast): Document that it
1369         enables Fortran's -fno-protect-parens.
1370
1371 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1372
1373         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1374
1375 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1376
1377         * stor-layout.c (variable_size): Do not issue errors.
1378
1379 2011-05-04  Richard Guenther  <rguenther@suse.de>
1380
1381         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1382         for array-ref indices.
1383         (tree_coverage_counter_addr): Likewise.
1384         (build_fn_info_type): Use size_int for index types.
1385         (build_gcov_info): Likewise.
1386
1387 2011-05-04  Richard Guenther  <rguenther@suse.de>
1388
1389         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1390         to build_int_cst.
1391         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1392         for constructor indices.
1393         (push_init_level): Likewise.
1394
1395 2011-05-04  Richard Guenther  <rguenther@suse.de>
1396
1397         * explow.c (promote_mode): Move variable declarations before code.
1398
1399 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1400
1401         * tree.h (build_function_type_array): Declare.
1402         (build_varargs_function_type_array): Declare.
1403         (build_function_type_vec, build_varargs_function_type_vec): Define.
1404         * tree.c (build_function_type_array_1): New function.
1405         (build_function_type_array): New function.
1406         (build_varargs_function_type_array): New function.
1407
1408 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1409
1410         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1411         before setting STMT_VINFO_TYPE.
1412
1413 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1414
1415         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1416         instead of spu_pass_by_reference.
1417
1418 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1419
1420         * calls.c (emit_library_call_value_1): Invoke
1421         promote_function_mode hook on libcall arguments.
1422         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1423         argument being NULL.
1424         * targhooks.c (default_promote_function_mode): Lisewise.
1425         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1426         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1427
1428         * doc/tm.texi: Document that TYPE argument might be NULL.
1429
1430 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1431
1432         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1433
1434 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1435
1436         From Bernd Schmidt
1437         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1438
1439 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1440
1441         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1442         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1443         Move ...
1444         * mips-tfile.c: ... here.
1445         Don't include coretypes.h, tm.h, filenames.h.
1446         (saber_stop): Remove definition and all calls.
1447         [__SABER__]: Remove.
1448         (__LINE__): Remove default.
1449         (Size_t, Ptrdiff_t): Remove definitions.
1450         Replace by size_t, ptrdiff_t.
1451         [!MIPS_DEBUGGING_INFO]: Remove.
1452         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1453         (progname): Add const.
1454         (STATIC): Remove.
1455         Replace all uses by static.
1456         (ALIGN_SYMTABLE_OFFSET): Remove default.
1457         * mips-tdump.c: Don't include coretypes.h, tm.h.
1458         Remove !MIPS_IS_STAB guard.
1459         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1460         $(TM_H), filenames.h dependencies.
1461         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1462
1463 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1464
1465         From Jie Zhang
1466         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1467         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1468
1469 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1470
1471         From Bernd Schmidt
1472         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1473         account and save/restore RETS.
1474         (PROFILE_BEFORE_PROLOGUE): Define.
1475         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1476         the push insn to use predecrement.
1477
1478 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1479
1480         From Jie Zhang
1481         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1482
1483 2011-05-04  Nick Clifton  <nickc@redhat.com>
1484
1485         * config/mn10300/mn10300.c: Include cfgloop.h.
1486         (DUMP): New macro.
1487         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1488         Lcc or a FLcc insn into the instruction stream.
1489         (mn10300_block_contains_call): New function.  Returns true if the
1490         given basic block contains a CALL insn.
1491         (mn10300_loop_contains_call_insn): New function.  Returns true if
1492         the given loop contains a CALL insn.
1493         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1494         to use the SETLB and Lcc or FLcc insns.
1495         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1496         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1497         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1498         disable the SETLB optimization.
1499         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1500         __SETLB__ or __NO_SETLB__.
1501         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1502         (movsf_internal): Handle MDR register.
1503         (cmpsi): Make visible.
1504         (setlb): New pattern.
1505         (Lcc): New pattern.
1506         (FLcc): New pattern.
1507
1508 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1509
1510         PR target/48860
1511         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1512         for reg<->xmm moves.
1513         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1514         (vec_concatv2di_rex64_sse): Ditto.
1515         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1516         (*vec_extractv2di_1_rex64): Ditto.
1517
1518         Revert:
1519         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1520
1521         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1522         reg<->xmm moves.
1523         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1524
1525 2011-05-04  Richard Guenther  <rguenther@suse.de>
1526
1527         * tree.h (int_const_binop): Remove notrunc argument.
1528         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1529         create integer constants that are properly truncated.
1530         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1531         (const_binop): Remove zero notrunc argument to int_const_binop.
1532         (size_binop_loc): Likewise.
1533         (fold_div_compare): Likewise.
1534         (maybe_canonicalize_comparison_1): Likewise.
1535         (fold_comparison): Likewise.
1536         (fold_binary_loc): Likewise.
1537         (multiple_of_p): Likewise.
1538         * expr.c (store_constructor): Likewise.
1539         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1540         (maybe_fold_stmt_addition): Likewise.
1541         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1542         * stor-layout.c (layout_type): Likewise.
1543         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1544         * tree-sra.c (build_ref_for_offset): Likewise.
1545         (build_user_friendly_ref_for_offset): Likewise.
1546         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1547         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1548         * tree-ssa-loop-niter.c (inverse): Likewise.
1549         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1550         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1551         * tree-switch-conversion.c (check_range): Likewise.
1552         (build_constructors): Likewise.
1553         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1554         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1555         (extract_range_from_assert): Likewise.
1556         (vrp_int_const_binop): Likewise.
1557         (extract_range_from_binary_expr): Likewise.
1558         (extract_range_from_unary_expr): Likewise.
1559         (check_array_ref): Likewise.
1560         (find_case_label_range): Likewise.
1561         (simplify_div_or_mod_using_ranges): Likewise.
1562         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1563         comparing case labels for merging.
1564
1565 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1566
1567         * dwarf2out.c (debug_str_hash_forced): Removed.
1568         (gen_label_for_indirect_string): Removed.
1569         (get_debug_string_label): Removed.
1570         (AT_string_form): Generate label directly.
1571         (output_indirect_string): Test indirect_string_node for
1572         DW_FORM_strp instead of checking label and refcount.
1573         (prune_indirect_string): Removed.
1574         (prune_unused_types): Don't check debug_str_hash_forced or
1575         call prune_indirect_string.
1576
1577 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1578
1579         PR other/48093
1580         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1581
1582 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1583
1584         PR debug/47994
1585         PR debug/47919
1586         * combine.c (try_combine): Skip debug insns at m_split tests.
1587
1588 2011-04-26  Mark Wielaard  <mjw@redhat.com>
1589
1590         PR42288
1591         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1592         when info_section_emitted.
1593
1594 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
1595
1596         * config/mips/mips-opts.h: New.
1597         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1598         to mips-opts.h.
1599         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1600         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1601         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
1602         via opts pointer.
1603         * config/mips/mips.h (enum mips_code_readable_setting): Move to
1604         mips-opts.h.
1605         (mips_abi, mips_code_readable): Don't declare.
1606         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
1607         (mabi=): Use Enum and Var.
1608         (mips_abi): New Enum and EnumValue entries.
1609         (mcode-readable=): Use Enum and Var.
1610         (mips_code_readable_setting): New Enum and EnumValue entries.
1611         (mr10k-cache-barrier=): Use Enum and Var.
1612         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1613
1614 2011-05-03  Jan Hubicka  <jh@suse.cz>
1615
1616         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1617         replace hash by pointer map.
1618         (cgraph_node_set_element_def, cgraph_node_set_element,
1619         const_cgraph_node_set_element, varpool_node_set_element_def,
1620         varpool_node_set_element, const_varpool_node_set_element): Remove.
1621         (free_cgraph_node_set, free_varpool_node_set): New function.
1622         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1623         * tree-emutls.c: Free varpool node set.
1624         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1625         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1626         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1627         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1628         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1629         Move here from ipa.c; implement using pointer_map
1630         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1631         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1632         debug_cgraph_node_set, varpool_node_set_new,
1633         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1634         dump_varpool_node_set, debug_varpool_node_set):
1635         Move to ipa-uitls.c.
1636         * passes.c (ipa_write_summaries): Update.
1637
1638 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1639
1640         From Mike Frysinger:
1641         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1642         bf542/bf544/bf547/bf548/bf549.
1643
1644 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1645
1646         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1647
1648 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1649
1650         From Bernd Schmidt:
1651         * config/bfin/bfin.md (MOVCC): New mode_macro.
1652         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1653         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
1654         comments from generated assembly.
1655
1656 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1657
1658         From Bernd Schmidt
1659         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1660         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1661         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1662         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1663         * config/bfin/lib1funcs.asm (___muldi3): New function.
1664
1665 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1666
1667         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1668         build_function_type_list instead of build_function_type.
1669         Rearrange initialization of `args' to do so.
1670
1671 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1672
1673         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1674         instead of build_function_type.
1675
1676 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1677
1678         * config/rs6000/rs6000.c (spe_init_builtins): Call
1679         build_function_type_list instead of build_function_type.
1680         (paired_init_builtins, altivec_init_builtins): Likewise.
1681         (builtin_function_type): Likewise.
1682
1683 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1684
1685         * config/sh/sh.c (sh_media_init_builtins): Call
1686         build_function_type_list instead of build_function_type.
1687
1688 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1689
1690         * config/sparc/sparc.c (sparc_file_end): Call
1691         build_function_type_list instead of build_function_type.
1692
1693 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1694
1695         * config/alpha/alpha.c (alpha_init_builtins): Call
1696         build_function_type_list instead of build_function_type.
1697
1698 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1699
1700         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1701         build_function_type_list instead of build_function_type.
1702
1703 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1704
1705         * config/iq2000/i2000.c (iq2000_init_builtins): Call
1706         build_function_type_list instead of build_function_type.
1707         Delete `endlink' variable.
1708
1709 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1710
1711         * config/avr/avr.c (avr_init_builtins): Call
1712         build_function_type_list instead of build_function_type.
1713
1714 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1715
1716         * config/picochip/picochip.c (picochip_init_builtins): Call
1717         build_function_type_list instead of build_function_type.
1718         Delete `endlink' variable.
1719
1720 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1721
1722         * config/bfin/bfin.c (bfin_init_builtins): Call
1723         build_function_type_list instead of build_function_type.
1724
1725 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1726
1727         From Bernd Schmidt
1728         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1729         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
1730
1731 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1732
1733         From Jie Zhang:
1734         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1735         libbffastfp overrides libgcc when -mfast-fp.
1736
1737 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1738
1739         Originally from Bernd Schmidt
1740         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1741         * config/bfin/bfin.c (override_options): Test it and error if
1742         TARGET_FDPIC.
1743
1744 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1745
1746         Originally From Bernd Schmidt
1747         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1748         FD-PIC.
1749
1750 2011-05-03  Jeff Law  <law@redhat.com>
1751
1752         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1753         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1754         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
1755         than accessing AUX field directly.  Free the AUX field before
1756         clearing it.
1757         (thread_block, thread_through_loop_header): Likewise.
1758         (thread_single_edge, mark_threaded_blocks): Likewise.
1759         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
1760         (register_jump_thread): Do not attempt to thread to a NULL edge.
1761
1762 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1763
1764         * function.c (init_function_start): Call decide_function_section.
1765         * varasm.c (decide_function_section): New function.
1766         (assemble_start_function): When not using
1767         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1768         or first_function_block_is_cold.
1769         * rtl.h (decide_function_section): Declare.
1770
1771 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1772             Jakub Jelinek  <jakub@redhat.com>
1773
1774         PR target/48774
1775         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1776         only succeed if req_mode is the same as set_mode.
1777
1778 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1779
1780         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1781         * genemit.c (gen_exp): Handle RETURN.
1782         * emit-rtl.c (verify_rtx_sharing): Likewise.
1783         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1784         * rtl.c (copy_rtx): RETURN is shared.
1785         * rtl.h (enum global_rtl_index): Add GR_RETURN.
1786         (ret_rtx): New.
1787         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1788         * config/s390/s390.c (s390_emit_epilogue): Likewise.
1789         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1790         * config/cris/cris.c (cris_expand_return): Likewise.
1791         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1792         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1793         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1794         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1795         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1796         Likewise.
1797         * config/v850/v850.c (expand_epilogue): Likewise.
1798         * config/bfin/bfin.c (bfin_expand_call): Likewise.
1799         * config/arm/arm.md (epilogue): Likewise.
1800         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1801         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1802         variable to ret_reg.
1803
1804 2011-05-03  Richard Guenther  <rguenther@suse.de>
1805
1806         PR lto/48846
1807         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1808         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1809         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1810
1811 2011-05-03  Richard Guenther  <rguenther@suse.de>
1812
1813         * c-decl.c (grokdeclarator): Instead of looking at
1814         TREE_OVERFLOW check if the constant fits in the index type.
1815
1816 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1817
1818         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1819         (vec_store_lanes<mode><mode>): Likewise.
1820
1821 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1822
1823         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1824         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1825         convert_optab_index values.
1826         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1827         * genopinit.c (optabs): Initialize the new optabs.
1828         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1829         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1830         (expand_STORE_LANES): New functions.
1831         * tree.h (build_array_type_nelts): Declare.
1832         * tree.c (build_array_type_nelts): New function.
1833         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1834         (vect_model_load_cost): Likewise.
1835         (vect_store_lanes_supported, vect_load_lanes_supported)
1836         (vect_record_strided_load_vectors): Declare.
1837         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1838         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1839         (vect_transform_strided_load): Split out statement recording into...
1840         (vect_record_strided_load_vectors): ...this new function.
1841         * tree-vect-stmts.c (create_vector_array, read_vector_array)
1842         (write_vector_array, create_array_ref): New functions.
1843         (vect_model_store_cost): Add store_lanes_p argument.
1844         (vect_model_load_cost): Add load_lanes_p argument.
1845         (vectorizable_store): Try to use store-lanes functions for
1846         interleaved stores.
1847         (vectorizable_load): Likewise load-lanes and loads.
1848         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1849         to vect_model_store_cost.
1850         (vect_build_slp_tree): Likewise vect_model_load_cost.
1851
1852 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1853
1854         * hooks.h (hook_bool_mode_uhwi_false): Declare.
1855         * hooks.c (hook_bool_mode_uhwi_false): New function.
1856         * target.def (array_mode_supported_p): New hook.
1857         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1858         * doc/tm.texi: Regenerate.
1859         * stor-layout.c (mode_for_array): New function.
1860         (layout_type): Use it.
1861         * config/arm/arm.c (arm_array_mode_supported_p): New function.
1862         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1863
1864 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1865
1866         PR target/48723
1867         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1868         for -fstack-check if the size to allocate is negative.
1869
1870 2011-05-02  Lawrence Crowl  <crowl@google.com>
1871
1872         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1873         (timevar_cond_start): New for starting a timer only when it is not
1874         already running.
1875         (timevar_cond_stop): New for stopping a timer when it was not already
1876         running.
1877
1878         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1879         (timevar_cond_start): New as above.
1880         (timevar_cond_stop): New as above.
1881
1882         * timevar.def: Add start/stop timers for compiler phases,
1883         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1884         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1885         and TV_PHASE_FINALIZE.
1886         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1887         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1888         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1889         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1890         Make unused TV_OVERLOAD into a start/stop timer.
1891
1892         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1893         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1894         to indicate that they are start/stop timers.
1895
1896         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1897         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1898         Move initialization to do_compile.
1899         (do_compile): Add initialization from above.
1900         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1901
1902         * c-decl.c (c_write_global_declarations): Add start/stop of
1903         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1904
1905         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1906         or TV_PARSE_INLINE, as appropriate.
1907         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1908         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1909
1910 2011-05-02  Jason Merrill  <jason@redhat.com>
1911
1912         PR c++/40975
1913         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
1914
1915 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
1916
1917         PR c/35445
1918         * c-decl.c (finish_decl): Only create a composite if the types are
1919         compatible.
1920
1921 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1922
1923         * config/fr30/fr30-protos.h (Mmode): Don't define.
1924         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
1925         definition where used.
1926         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
1927         define.  Expand definitions where used.
1928         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
1929         Expand definitions where used.
1930         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
1931         rx_function_arg, rx_function_arg_advance,
1932         rx_function_arg_boundary): Expand definitions of those macros.
1933         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
1934         definition where used.
1935
1936 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1937
1938         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1939         reg<->xmm moves.
1940         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
1941         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
1942         with *movv2sf_internal_rex64_avx.
1943         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
1944         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
1945         Use %v prefix in insn mnemonic to handle TARGET_AVX.
1946         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
1947         "vex" in "prefix" attribute calculation.
1948         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
1949
1950 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
1951
1952         PR target/47951
1953         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
1954         inputs match the output.
1955
1956 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
1957
1958         PR target/47955
1959         * config/m68k/m68k.c (m68k_expand_prologue): Set
1960         current_function_static_stack_size.
1961
1962 2011-05-02   Jan Hubicka  <jh@suse.cz>
1963
1964         * lto-streamer.c (lto_streamer_cache_insert_1,
1965         lto_streamer_cache_lookup, lto_streamer_cache_create,
1966         lto_streamer_cache_delete): Use pointer map instead of hashtable.
1967         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
1968
1969 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1970
1971         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
1972         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
1973         config/m68k/t-opts: New files.
1974         * config/m68k/m68k-tables.opt: New file (generated).
1975         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
1976         extra_options and m68k/t-opts to tmake_file.
1977         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
1978         (all_isas): Initialize using m68k-isas.def.
1979         (all_microarchs): Initialize using m68k-microarchs.def.
1980         (m68k_find_selection): Remove.
1981         (m68k_handle_option): Don't assert that global structures are in
1982         use.  Use error_at.  Access variables via opts pointer.  Don't
1983         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
1984         directly for -m68020-40 and -m68020-60.
1985         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
1986         m68k_tune_entry here.
1987         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1988         to m68k-opts.h.
1989         (m68k_library_id_string): Remove declaration.
1990         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
1991         (m68k_library_id_string): New Variable.
1992         (march=, mcpu=, mtune=): Use Enum and Var.
1993
1994 2011-05-02  Richard Guenther  <rguenther@suse.de>
1995
1996         * varasm.c (output_constructor_regular_field): Compute zero-based
1997         index with double-ints.  Make sure to ICE instead of producing
1998         wrong code.
1999         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2000         in asserts.  Properly use a signed type.
2001
2002 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2003
2004         * config/i386/sse.md (V): New mode iterator.
2005         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2006         TARGET_SSE2.
2007         (V_256): Rename from AVX256MODE.
2008         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2009         condition to all users.
2010         (VF1): Ditto.
2011         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2012         condition to all users.
2013         (VF_128): Make V4SF mode unconditional.
2014         (VF_256): Rename from AVX256MODEF2P.
2015         (VI4F_128): Rename from SSEMODE4S.
2016         (VI8F_128): Rename from SSEMODE2D.
2017         (VI4F_256): Rename from AVX256MODE8P.
2018         (VI8F_256): Rename from AVX256MODE4P.
2019         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2020         (ssescalarmodesuffix): Remove SF and DF modes.
2021         (SSEMODE124): Remove.
2022         (SSEMODE1248): Ditto.
2023         (SSEMODEF2P): Ditto.
2024         (AVXMODEF2P): Ditto.
2025         (AVXMODEFDP): Ditto.
2026         (AVXMODEFSP): Ditto.
2027         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2028         unconditional.
2029         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2030         unconditional.
2031         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2032         xop_pcmov_<mode>256.  Use V mode iterator.
2033
2034         Adjust RTX patterns globally for renamed mode attributes.
2035
2036 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2037
2038         * haifa-sched.c (sched_emit_insn): Emit insn before first
2039         non-scheduled insn.  Inform back-end about new insn.  Add
2040         new insn to scheduled_insns list.
2041
2042 2011-05-02  Richard Guenther  <rguenther@suse.de>
2043
2044         PR tree-optimization/48822
2045         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2046         (process_scc): Indicate which iteration we start.
2047
2048 2011-05-02  Jan Hubicka  <jh@suse.cz>
2049
2050         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2051         (lto_section_overrun): New.
2052         * lto-section-out.c (append_block): Rename to ...
2053         (lto_append_block): ... this one; export.
2054         (lto_output_1_stream): Move lto lto-streamer.h
2055         (lto_output_data_stream): Update.
2056         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2057         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2058         functions.
2059
2060 2011-05-02  Richard Guenther  <rguenther@suse.de>
2061
2062         * tree.c (tree_code_counts): New global array.
2063         (record_node_allocation_statistics): Count individual tree codes.
2064         (dump_tree_statistics): Dump individual code stats.
2065
2066 2011-05-01  Jan Hubicka  <jh@suse.cz>
2067
2068         * ipa-inline.c (caller_growth_limits): Fix thinko when
2069         looking for largest stack frame.
2070         * ipa-inline.h (dump_inline_summary): Declare.
2071         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2072         on stack usage.
2073         (dump_inline_summary): Export.
2074         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2075
2076 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2077
2078         * reginfo.c (memory_move_cost): Change rclass argument type form
2079         'enum reg_class' to reg_class_t.
2080         * reload.h (memory_move_cost): Update prototype.
2081         * postreload.c reload_cse_simplify_set): Change type dclass var to
2082         reg_class_t.
2083         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2084         Update prototype.
2085         (ira_allocate_and_set_costs): Change aclass argument type form
2086         'enum reg_class' to reg_class_t.
2087         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2088         Change aclass argument type to reg_class_t.
2089         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2090         to reg_class_t.
2091         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2092         memory_move_cost call.
2093
2094         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2095         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2096         Change type tmp var to reg_class_t.
2097
2098 2011-04-30  Jan Hubicka  <jh@suse.cz>
2099
2100         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2101         inlining into function with flatten attribute.
2102         (want_inline_small_function_p): Be more realistic about inlining
2103         cold calls where callee size grows.
2104
2105 2011-04-30  Jan Hubicka  <jh@suse.cz>
2106
2107         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2108         flags.
2109
2110 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2111
2112         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2113         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2114         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2115         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2116         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2117         (print_operand): Rename to...
2118         (sparc_print_operand): ...this. Make static. Adjust
2119         sparc_print_operand function call.
2120         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2121         functions.
2122
2123 2011-04-30  Jan Hubicka  <jh@suse.cz>
2124
2125         PR middle-end/48752
2126         * ipa-inline.c (early_inliner): Disable when doing late
2127         addition of function.
2128
2129 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2130
2131         * dwarf2out.c (get_address_mode): New inline.
2132         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2133         if not dwarf_strict emit
2134         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2135         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2136         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2137         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2138         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2139         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2140         mem_loc_descriptor callers.
2141         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2142         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2143         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2144         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2145         (base_types): New variable.
2146         (get_base_type_offset, calc_base_type_die_sizes,
2147         base_type_for_mode, mark_base_types, base_type_cmp,
2148         move_marked_base_types): New functions.
2149         (calc_die_sizes): Assert that die_offset is 0 or equal to
2150         next_die_offset.
2151         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2152         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2153         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2154         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2155         (gen_subprogram_die): Don't give up on call site parameters
2156         with non-integral or large integral modes.  Adjust
2157         mem_loc_descriptor callers.
2158         (prune_unused_types): Call prune_unused_types_mark on base_types
2159         vector entries.
2160         (resolve_addr): Call mark_base_types.
2161         (dwarf2out_finish): Call move_marked_base_types.
2162
2163         PR tree-optimization/48809
2164         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2165         type.
2166         (gen_inbound_check): Don't compute index_expr - range_min in utype
2167         again, instead reuse SSA_NAME initialized in build_arrays.
2168         Remove two useless gsi_for_stmt calls.
2169
2170 2011-04-29  Jeff Law  <law@redhat.com>
2171
2172         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2173
2174 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2175
2176         * cgraph.h (cgraph_postorder): Remove declaration.
2177         * ipa-utils.h (ipa_free_postorder_info): Declare.
2178         (ipa_reverse_postorder): Likewise.
2179         * cgraphunit.c: Include ipa-utils.h.
2180         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2181         * ipa-inline.c: Include ipa-utils.h.
2182         (ipa_inline): Update call to ipa_reverse_postorder.
2183         * ipa-pure-const.c (propagate_pure_const): Update call to
2184         ipa_reduced_postorder and ipa_print_order.  Call
2185         ipa_free_postorder_info to clean up.
2186         (propagate_nothrow): Likewise.
2187         * ipa-reference.c (propagate): Removed a useless call to
2188         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2189         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2190         * ipa.c: Include ipa-utils.h.
2191         (ipa_profile): Update call to ipa_reverse_postorder.
2192         (cgraph_postorder): Moved to...
2193         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2194         (ipa_utils_print_order): Renamed to ipa_print_order.
2195         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2196         comments.
2197         (ipa_free_postorder_info): New function.
2198         * passes.c: Include ipa-utils.h.
2199         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2200         (ipa_write_summaries): Likewise.
2201         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2202         (cgraphunit.o): Likewise.
2203         (ipa.o): Likewise.
2204         (ipa-inline.o): Likewise.
2205
2206 2011-04-29  Jan Hubicka  <jh@suse.cz>
2207
2208         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2209         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2210         * ipa-inline.h (clause_t): Turn into unsigned int.
2211         * ipa-inline-analysis.c (add_clause): Do more simplification.
2212         (and_predicates): Shortcut more cases.
2213         (predicates_equal_p): Move forward; check that clauses are properly
2214         ordered.
2215         (or_predicates): Shortcut more cases.
2216         (edge_execution_predicate): Rewrite as...
2217         (set_cond_stmt_execution_predicate): ... this function; handle
2218         __builtin_constant_p.
2219         (set_switch_stmt_execution_predicate): New .
2220         (compute_bb_predicates): New.
2221         (will_be_nonconstant_predicate): Update TODO.
2222         (estimate_function_body_sizes): Use compute_bb_predicates
2223         and free them later, always try to estimate if stmt is constant.
2224         (estimate_time_after_inlining, estimate_size_after_inlining):
2225         Gracefully handle optimized out edges.
2226         (read_predicate): Fix off by one error.
2227
2228 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2229
2230         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2231
2232 2011-04-27  Xinliang David Li  <davidxl@google.com>
2233
2234         * tree-profile.c (init_ic_make_global_vars): Set
2235         tls attribute on ic vars.
2236         * coverage.c (coverage_end_function): Initialize
2237         function_list with zero.
2238
2239 2011-04-29  Richard Guenther  <rguenther@suse.de>
2240
2241         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2242         for the type of the result.
2243         (fold_builtin_isascii): Likewise.
2244         (fold_builtin_toascii): Use integer_type_node where appropriate.
2245         (fold_builtin_logb): Likewise.
2246         (fold_builtin_frexp): Likewise.
2247         (fold_builtin_strstr): Likewise.
2248         (fold_builtin_strpbrk): Likewise.
2249         (fold_builtin_fputs): Likewise.
2250         (fold_builtin_sprintf): Likewise.
2251         (fold_builtin_snprintf): Likewise.
2252         (fold_builtin_printf): Likewise.
2253         (do_mpfr_remquo): Use a proper type for the assigned constant.
2254         (do_mpfr_lgamma_r): Likewise.
2255         * dwarf2out.c (resolve_one_addr): Use size_int.
2256         * except.c (init_eh): Likewise.
2257         (assign_filter_values): Use integer_type_node for filter values.
2258         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2259         indices.
2260         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2261         for EH region numbers.
2262         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2263         for the shift amount.
2264
2265 2011-04-29  Richard Guenther  <rguenther@suse.de>
2266
2267         * expr.h (expand_shift): Rename to ...
2268         (expand_variable_shift): ... this.
2269         (expand_shift): Take a constant shift amount.
2270         * expmed.c (expand_shift): Rename to ...
2271         (expand_variable_shift): ... this.
2272         (expand_shift): New wrapper around expand_variable_shift.
2273         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2274         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2275         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2276         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2277         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2278         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2279         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2280         emit_store_flag_1, emit_store_flag): Likewise.
2281         * builtins.c (expand_builtin_signbit): Likewise.
2282         * calls.c (load_register_parameters): Likewise.
2283         * function.c (assign_parm_setup_block): Likewise.
2284         * lower-subreg.c (resolve_shift_zext): Likewise.
2285         * optabs.c (widen_bswap, expand_abs_nojump,
2286         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2287         * spu/spu.c (spu_expand_extv): Likewise.
2288         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2289
2290 2011-04-29  Richard Guenther  <rguenther@suse.de>
2291
2292         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2293         for the remapped region number.
2294         * predict.c (build_predict_expr): Use integer_type_node for the
2295         predict kind.
2296         * fold-const.c (fold_binary_loc): Use integer_type_node for
2297         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2298
2299 2011-04-29  Michael Matz  <matz@suse.de>
2300
2301         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2302         other trees that just builtins.
2303         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2304
2305 2011-04-29  Richard Guenther  <rguenther@suse.de>
2306
2307         * tree-nested.c (get_trampoline_type): Use size_int.
2308         (get_nl_goto_field): Likewise.
2309         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2310         for all indexes.
2311         (lower_eh_constructs_2): Likewise.
2312         (lower_resx): Likewise.
2313         (lower_eh_dispatch): Likewise.
2314         * tree-mudflap.c (mf_build_string): Use size_int.
2315         (mudflap_register_call): Use integer_type_node for the flag.
2316         (mudflap_enqueue_constant): Use size_int.
2317         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2318         instead of rebuilding it.
2319
2320 2011-04-29  Richard Guenther  <rguenther@suse.de>
2321
2322         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2323         Handle OBJ_TYPE_REF.
2324         (find_func_aliases_for_call): Use it more consistently.
2325
2326 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2327
2328         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2329         (rank_for_schedule): Use it.
2330         (schedule_block): Set it.
2331
2332 2011-04-28  David Li  <davidxl@google.com>
2333
2334         * tree.c (crc32_string): Use crc32_byte.
2335         (crc32_byte): New function.
2336         * tree.h (crc32_byte): New function.
2337         * gcov.c (read_graph_file): Handle new cfg_cksum.
2338         (read_count_file): Ditto.
2339         * profile.c (instrument_values): Ditto.
2340         (get_exec_counts): Ditto.
2341         (read_profile_edge_counts): Ditto.
2342         (compute_branch_probabilities): Ditto.
2343         (compute_value_histograms): Ditto.
2344         (branch_prob): Ditto.
2345         (end_branch_prob): Ditto.
2346         * coverage.c (read_counts_file): Ditto.
2347         (get_coverage_counts): Ditto.
2348         (tree_coverage_counter_addr): Ditto.
2349         (coverage_checksum_string): Ditto.
2350         (coverage_begin_output): Ditto.
2351         (coverage_end_function): Ditto.
2352         (build_fn_info_type): Ditto.
2353         (build_fn_info_value): Ditto.
2354         * libgcov.c (gcov_exit): Ditto.
2355         * gcov-dump.c (tag_function): Ditto.
2356         (compute_checksum): Remove.
2357
2358 2011-04-29  Alan Modra  <amodra@gmail.com>
2359
2360         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2361         unspec plus offset.  Tidy macho code.
2362
2363 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2364
2365         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2366         node instead of a decl.  Update all callers.
2367         * cgraph.h: Update declaration.
2368
2369 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2370
2371         PR tree-optimization/48765
2372         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2373         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2374         to indicate if loop aware SLP is being used.  Scan the statements
2375         and update the vectorization factor according to the type of
2376         vectorization before statement analysis.
2377         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2378         pass it to vect_analyze_loop_operations.
2379         (vectorizable_reduction): Set number of copies to 1 in case of pure
2380         SLP statement.
2381         * tree-vect-stmts.c (vectorizable_conversion,
2382         vectorizable_assignment, vectorizable_shift,
2383         vectorizable_operation, vectorizable_type_demotion,
2384         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2385         Likewise.
2386         (vectorizable_condition): Move the check that it is not SLP
2387         vectorization before the number of copies check.
2388         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2389         to vectorize the loop using SLP.
2390
2391 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2392
2393         PR middle-end/48597
2394         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2395         inline asm.
2396
2397 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2398
2399         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2400         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2401         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2402         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2403         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2404         linux*.h headers.
2405         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2406         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2407         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2408         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2409         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2410         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2411         REG_NAME.
2412         * config/i386/linux.h (REG_NAME): Don't define.
2413         * config/i386/linux64.h (REG_NAME): Don't define.
2414         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2415         Undefine before defining.
2416
2417 2011-04-28  Jan Hubicka  <jh@suse.cz>
2418
2419         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2420         nonconstant_names array.
2421         (estimate_function_body_sizes): Build nonconstant_names array; handle
2422         BUILT_IN_CONSTANT_P.
2423
2424 2011-04-28  Richard Guenther  <rguenther@suse.de>
2425
2426         PR bootstrap/48804
2427         Revert
2428         2011-04-28  Richard Guenther  <rguenther@suse.de>
2429
2430         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2431         as late as possible.
2432
2433 2011-04-28  Richard Guenther  <rguenther@suse.de>
2434
2435         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2436         (debug_constraint): Do it here.
2437         (dump_constraints): And here.
2438         (rewrite_constraints): And here.
2439         (dump_constraint_edge): Remove.
2440         (dump_constraint_graph): Rewrite to produce DOT output.
2441         (solve_constraints): Build succ graph as late as possible.
2442         Dump constraint graphs before and after solving.
2443
2444 2011-04-28  Richard Guenther  <rguenther@suse.de>
2445
2446         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2447         New function split out from ...
2448         (find_func_aliases): ... here.  Call it.
2449         (find_func_aliases_for_call): Likewise.
2450
2451 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2452
2453         * internal-fn.h (internal_fn_name_array): Declare.
2454         (internal_fn_flags_array): Likewise.
2455
2456 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2457
2458         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2459         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2460         Move from sse.md.
2461         (ssemodefsuffix): Remove.
2462         (ssevecmodesuffix): New mode attribute.
2463         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2464         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2465         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2466         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2467         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2468         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2469         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2470         ssemodesuffix mode attribute.
2471         (float splitters): Use ssevecmodesuffix mode attribute.
2472         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2473         (sseinsmode): Rename from avxvecmode.
2474         (avxsizesuffix): Rename from avxmodesuffix.
2475         (sseintvecmode): Rename from avxpermvecmode.
2476         (ssedoublevecmode): Rename from ssedoublesizemode.
2477         (ssehalfvecmode): Rename from avxhalfvecmode.
2478         (ssescalarmode): Rename from avxscalarmode.
2479         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2480         templates for ssemodesuffix mode attribute.
2481         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2482         mode attribute.
2483
2484         Adjust RTX patterns globally for renamed mode attributes.
2485
2486 2011-04-27  Jan Hubcika  <jh@suse.cz>
2487
2488         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2489         * ipa-inline-analysis.c: Include alloc-pool.h.
2490         (edge_predicate_pool): New.
2491         (trye_predicate_p): New function
2492         (false_predicate_p): New function.
2493         (add_clause): Sanity check that false clauses are "optimized";
2494         never add clauses to predicate that is already known to be false.
2495         (and_predicate): Use flase_predicate_p.
2496         (evaulate_predicate): Rename to ...
2497         (evaluate_predicate): ... this one; update all callers; assert
2498         that false is not listed among possible truths.
2499         (dump_predicate): Use true_predicate_p.
2500         (account_size_time): Use false_predicate_p.
2501         (evaulate_conditions_for_edge): Rename to ...
2502         (evaluate_conditions_for_edge) ... this one.
2503         (edge_set_predicate): New function.
2504         (inline_edge_duplication_hook): Duplicate edge predicates.
2505         (inline_edge_removal_hook): Free edge predicates.
2506         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2507         (dump_inline_summary): Update.
2508         (estimate_function_body_sizes): Set edge predicates.
2509         (estimate_calls_size_and_time): Handle predicates.
2510         (estimate_callee_size_and_time): Update.
2511         (remap_predicate): Add toplev_predicate; update comment.
2512         (remap_edge_predicates): New function.
2513         (inline_merge_summary): Compute toplev predicate; update.
2514         (read_predicate): New function.
2515         (read_inline_edge_summary): Use it.
2516         (inline_read_section): Likewise.
2517         (write_predicate): New function.
2518         (write_inline_edge_summary): Use it.
2519         (inline_write_summary): Likewise.
2520         (inline_free_summary): Free alloc pool and edge summary vec.
2521
2522 2011-04-27  Richard Guenther  <rguenther@suse.de>
2523
2524         * tree-ssa-structalias.c (changed_count): Remove.
2525         (changed): Use a bitmap.
2526         (unify_nodes): Adjust.
2527         (do_sd_constraint): Likewise.
2528         (do_ds_constraint): Likewise.
2529         (do_complex_constraint): Likewise.
2530         (solve_graph): Likewise.
2531
2532 2011-04-27  Jan Hubicka  <jh@suse.cz>
2533
2534         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2535
2536 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2537
2538         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2539         (avx_vperm2f128_*_operand): Ditto.
2540         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2541         Use avx_vpermilp_parallel in insn condition.
2542         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2543         Use avx_vperm2f128_parallel in insn condition.
2544
2545 2011-04-27  Richard Guenther  <rguenther@suse.de>
2546
2547         * Makefile.in (tree-ssa-structalias.o): Remove
2548         gt-tree-ssa-structalias.h dependency.
2549         (GTFILES): Remove tree-ssa-structalias.c.
2550         * tree.c (allocate_decl_uid): New function.
2551         (make_node_stat): Use it.
2552         (copy_node_stat): Likewise.
2553         * tree.h (allocate_decl_uid): Declare.
2554         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2555         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2556         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2557         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2558         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2559         (struct heapvar_map): Likewise.
2560         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2561         heapvar_insert): Likewise.
2562         (make_heapvar_for): Rename to ...
2563         (make_heapvar): ... this.  Simplify.
2564         (fake_var_decl_obstack): New global var.
2565         (build_fake_var_decl): New function.
2566         (make_constraint_from_heapvar): Adjust.
2567         (handle_lhs_call): Likewise.
2568         (create_function_info_for): Likewise.
2569         (intra_create_variable_infos): Likewise.
2570         (init_alias_vars): Allocate fake_var_decl_obstack.
2571         (init_alias_heapvars, delete_alias_heapvars): Remove.
2572         (compute_points_to_sets): Do not call init_alias_heapvars.
2573         (ipa_pta_execute): Likewise.
2574         (delete_points_to_sets): Free fake_var_decl_obstack.
2575
2576 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2577
2578         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2579         (si_from_UTItype, si_to_UTItype): New functions.
2580         (__udivmodti4): Use them to implement type-punning.
2581         * config/spu/multi3.c (union qword_TItype): New data type.
2582         (si_from_TItype, si_to_TItype): New functions.
2583         (__multi3): Use them to implement type-punning.
2584
2585 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2586
2587         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2588
2589 2011-04-27  Jan Hubicka  <jh@suse.cz>
2590
2591         * ipa-prop.c (function_insertion_hook_holder): New holder.
2592         (ipa_add_new_function): New function.
2593         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2594         Register/deregister holder.
2595
2596 2011-04-27  Richard Guenther  <rguenther@suse.de>
2597
2598         PR tree-optimization/48772
2599         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
2600
2601 2011-04-27  Richard Guenther  <rguenther@suse.de>
2602
2603         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2604         TARGET_MEM_REF handling.
2605
2606 2011-04-27  Nick Clifton  <nickc@redhat.com>
2607
2608         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2609         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2610         (REG_CLASS_NAMES): Likewise.
2611         (REG_CLASS_CONTENTS): Likewise.
2612         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2613         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2614         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2615         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2616         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2617         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2618         duplicate register classes.
2619         (frv_class_likely_spilled_p): Likewise.
2620         (frv_register_move_cost): Likewise.
2621
2622         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2623         end of the regno_reg_class array.
2624
2625 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2626
2627         PR c/48742
2628         * c-typeck.c (build_binary_op): Don't wrap arguments if
2629         int_operands is true.
2630
2631 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2632
2633         PR target/48767
2634         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2635         targetm.calls.must_pass_in_stack for void type.
2636
2637 2011-04-26  Jan Hubicka  <jh@suse.cz>
2638
2639         * cgraphbuild.c (build_cgraph_edges): Update call
2640         of cgraph_create_edge and cgraph_create_indirect_edge.
2641         * cgraph.c (cgraph_create_edge_including_clones,
2642         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2643         cgraph_update_edges_for_call_stmt_node): Do not take nest
2644         argument; do not initialize call_stmt_size/time.
2645         (dump_cgraph_node): Do not dump nest.
2646         (cgraph_clone_edge): Do not take loop_nest argument;
2647         do not propagate it; do not clone call_stmt_size/time.
2648         (cgraph_clone_node): Likewise.
2649         (cgraph_create_virtual_clone): Update.
2650         * cgraph.h (struct cgraph_edge): Remove
2651         call_stmt_size/call_stmt_time/loop_nest.
2652         (cgraph_create_edge, cgraph_create_indirect_edge,
2653         cgraph_create_edge_including_clones, cgraph_clone_node): Update
2654         prototype.
2655         * tree-emutls.c (gen_emutls_addr): Update.
2656         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2657         loop_nest; handle indirect calls, too.
2658         (clone_inlined_nodes): Do not care about updating inline summaries.
2659         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2660         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2661         stream call_stmt_size/call_stmt_time/loop_nest.
2662         * ipa-inline.c (edge_badness): Update.
2663         (ipa_inline): dump summaries after inlining.
2664         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
2665         New.
2666         (inline_edge_summary): New function.
2667         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2668         (inline_edge_removal_hook): Handle edge summaries.
2669         (inline_edge_duplication_hook): New hook.
2670         (inline_summary_alloc): Alloc hooks.
2671         (initialize_growth_caches): Do not register removal hooks.
2672         (free_growth_caches); Do not free removal hook.
2673         (dump_inline_edge_summary): New function.
2674         (dump_inline_summary): Use it.
2675         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2676         (inline_update_callee_summaries): New function.
2677         (inline_merge_summary): Use it.
2678         (do_estimate_edge_time, do_estimate_edge_growth): Update.
2679         (read_inline_edge_summary): New function.
2680         (inline_read_section): Use it.
2681         (write_inline_edge_summary): New function.
2682         (inline_write_summary): Use it.
2683         (inline_free_summary): Free edge new holders.
2684         * tree-inline.c (copy_bb): Update.
2685
2686 2011-04-26  Jason Merrill  <jason@redhat.com>
2687
2688         * tree-eh.c (lower_try_finally_switch): Create the label along with
2689         the CASE_LABEL_EXPR.
2690
2691 2011-04-26  David S. Miller  <davem@davemloft.net>
2692             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2693
2694         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2695         * configure: Regenerate.
2696
2697 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2698
2699         PR target/48258
2700         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2701         reduction.
2702         (VEC_reduc): New code iterator and splitters for vector reduction.
2703         (VEC_reduc_name): Ditto.
2704         (VEC_reduc_rtx): Ditto.
2705         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2706         (reduc_<VEC_reduc_name>_v4sf): Ditto.
2707
2708         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2709         support for extracting SF on VSX.
2710
2711         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2712         generating xscvspdp.
2713         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2714         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2715         double add, minimum, maximum vector reduction.
2716         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2717         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2718         optimize double vector reduction.
2719         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2720
2721 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
2722
2723         * config/fr30/fr30.h (inhibit_libc): Don't define.
2724         * config/m32r/m32r-protos.h: Correct comment.
2725         * config/v850/v850.h (GHS_default_section_names,
2726         GHS_current_section_names): Use tree, not union tree_node *.
2727
2728 2011-04-26  Xinliang David Li  <davidxl@google.com>
2729
2730         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2731         * c-family/c-opts.c (c_common_handle_option): Set
2732         warn_maybe_uninitialized.
2733         * opts.c (common_handle_option): Ditto.
2734         * common.opt:  New option.
2735         * tree-ssa.c (warn_uninit): Add one more parameter.
2736         (warn_uninitialized_var): Pass warning code.
2737         * tree-flow.h: Interface change.
2738
2739
2740 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2741
2742         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2743         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2744         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2745
2746 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2747
2748         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2749         * config/mips/mips.opt (mmips-tfile): Remove.
2750
2751         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2752         mips-tdump reference to ...
2753         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
2754         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2755         reference by Tru64 UNIX.
2756
2757 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
2758
2759         PR debug/48768
2760         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2761         is error_mark_node, set value to NULL.
2762
2763         PR tree-optimization/48734
2764         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2765         if return value from maybe_fold_*_comparsions isn't something
2766         the code is prepared to handle.
2767
2768 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
2769
2770         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2771         mode check.
2772         (ext_QIreg_nomode_operands): Remove.
2773         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2774         (*andsi_1): Ditto.
2775         (*andhi_1): Ditto.
2776
2777 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
2778
2779         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2780
2781 2011-04-26  Richard Guenther  <rguenther@suse.de>
2782
2783         * c-typeck.c (build_unary_op): Do not expand array-refs via
2784         pointer arithmetic.  Only adjust qualifiers for function types.
2785
2786 2011-04-26  Richard Guenther  <rguenther@suse.de>
2787
2788         PR middle-end/48694
2789         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2790         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
2791         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
2792         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2793
2794 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
2795
2796         * doc/extend.texi: Document __underlying_type.
2797
2798 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
2799
2800         * config/rs6000/titan.md (automata_option "progress"): Remove.
2801
2802 2011-04-25  Jeff Law  <law@redhat.com>
2803
2804         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2805
2806 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2807
2808         * system.h (ENUM_BITFIELD): Remove.
2809
2810 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
2811             Eric Botcazou  <ebotcazou@adacore.com>
2812
2813         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2814         for STORE_FLAG_VALUE==-1 case.
2815
2816 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
2817
2818         PR target/43804
2819         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2820         LEGITIMATE_PIC_OPERAND_P.
2821
2822 2011-04-24  Jan Hubicka  <jh@suse.cz>
2823
2824         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2825         WPA hack.
2826         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2827         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2828         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
2829         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2830         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2831         Sanity check predicate length.
2832         (remap_predicate): Likewise; sanity check jump functions.
2833         (inline_read_section, inline_write_summary): Sanity check
2834         predicate length.
2835
2836 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
2837
2838         PR other/48748
2839         * doc/extend.texi (Type Traits): Document __is_standard_layout,
2840         __is_literal_type, and __is_trivial; update throughout about
2841         possibly cv-qualified void types.
2842
2843 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2844
2845         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2846         testsuite and make it version agnostic.
2847
2848 2011-04-22  Jan Hubicka  <jh@suse.cz>
2849
2850         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2851
2852 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
2853
2854         PR c/48685
2855         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2856         to VOID_TYPE even around MODIFY_EXPR.
2857
2858 2011-04-22  Mike Stump  <mikestump@comcast.net>
2859
2860         * gensupport.c (read_md_rtx): Fix typo in comment.
2861         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2862         comment.
2863
2864 2011-04-22  Jan Hubicka  <jh@suse.cz>
2865
2866         * gengtype.c (open_base_files): Add ipa-inline.h include.
2867         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2868         ipa-prop.c; update all uses.
2869         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
2870         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2871         merge summary of inlined function into former caller.
2872         * ipa-inline.c (max_benefit): Remove.
2873         (edge_badness): Compensate for removal of benefits.
2874         (update_caller_keys): Use
2875         reset_node_growth_cache/reset_edge_growth_cache.
2876         (update_callee_keys): Likewise.
2877         (update_all_callee_keys): Likewise.
2878         (inline_small_functions): Do not collect max_benefit; do not reset
2879         estimated_growth; call free_growth_caches and initialize_growth_caches.
2880         * ipa-inline.h (struct condition, type clause_t, struct predicate,
2881         struct size_time_entry): New structures.
2882         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
2883         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2884         and estimated_growth.
2885         (edge_growth_cache_entry): New structure.
2886         (node_growth_cache, edge_growth_cache): New global vars.
2887         (estimate_growth): Turn into inline.
2888         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2889         initialize_growth_caches, free_growth_caches): Declare.
2890         (estimate_edge_growth): Rewrite.
2891         (estimate_edge_time): Implement as inline cache lookup.
2892         (reset_node_growth_cache, reset_edge_growth_cache): New inline
2893         functions.
2894         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2895         (NUM_CONDITIONS): New constant.
2896         (predicate_conditions): New enum.
2897         (IS_NOT_CONSTANT): New constant.
2898         (edge_removal_hook_holder): New var.
2899         (node_growth_cache, edge_growth_cache): New global vars.
2900         (true_predicate, single_cond_predicate, false_predicate,
2901         not_inlined_predicate, add_condition, add_clause, and_predicates,
2902         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2903         dump_clause, dump_predicate, account_size_time,
2904         evaulate_conditions_for_edge): New functions.
2905         (inline_summary_alloc): Move to heap.
2906         (inline_node_removal_hook): Clear condition and entry vectors.
2907         (inline_edge_removal_hook): New function.
2908         (initialize_growth_caches, free_growth_caches): New function.
2909         (dump_inline_summary): Update.
2910         (edge_execution_predicate): New function.
2911         (will_be_nonconstant_predicate): New function.
2912         (estimate_function_body_sizes): Compute BB and constantness predicates.
2913         (compute_inline_parameters): Do not clear estimated_growth.
2914         (estimate_edge_size_and_time): New function.
2915         (estimate_calls_size_and_time): New function.
2916         (estimate_callee_size_and_time): New function.
2917         (remap_predicate): New function.
2918         (inline_merge_summary): New function.
2919         (do_estimate_edge_time): New function based on...
2920         (estimate_edge_time): ... this one.
2921         (do_estimate_edge_growth): New function.
2922         (do_estimate_growth): New function based on....
2923         (estimate_growth): ... this one.
2924         (inline_analyze_function): Analyze after deciding on jump functions.
2925         (inline_read_section): New function.
2926         (inline_read_summary): Use it.
2927         (inline_write_summary): Write all the new data.
2928         * ipa-prop.c (ipa_get_param_decl_index): Export.
2929         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
2930         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
2931         Declare.
2932         (ipa_get_lattice): Move here from ipa-cp.c
2933         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
2934         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
2935         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
2936         cgraph_edge_inlinable_p): Remove.
2937         * cgraphunit.c: Include ipainline.h
2938         (cgraph_process_new_functions): Update call of
2939         compute_inline_parameters.
2940
2941 2011-04-22  Richard Guenther  <rguenther@suse.de>
2942
2943         * tree.c (build_int_cst): Properly create canonicalized integer
2944         constants.
2945         (build_int_cst_type): Remove scary comments.
2946
2947 2011-04-22  Xinliang David Li  <davidxl@google.com>
2948
2949         * toplev.c (process_options): Enable -Werror=coverage-mismatch
2950         by default when -Wno-error is not specified.
2951         * opts-global.c (decode_options): Remove call to
2952         control_warning_options.
2953
2954 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2955
2956         PR tree-optimization/48717
2957         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
2958         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
2959
2960 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
2961
2962         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
2963         definition where used.
2964
2965 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2966
2967         PR c/48716
2968         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
2969         TREE_STATIC variables declared inside of some OpenMP construct.
2970
2971 2011-04-22  Martin Jambor  <mjambor@suse.cz>
2972
2973         PR middle-end/48585
2974         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
2975
2976 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
2977
2978         PR c/36750
2979         * c-typeck.c (pop_init_level): Do not warn about initializing
2980         with ` = {0}'.
2981
2982 2011-04-22  Alan Modra  <amodra@gmail.com>
2983
2984         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2985         when returning call_cookie.
2986         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2987         pointers, to functions with no more vector args than the current
2988         function, and some non-local calls for ABI_V4.
2989         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2990         sibcall_nonlocal_aix64): Combine to ..
2991         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
2992         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2993         (sibcall_value_nonlocal_aix<mode>): ..likewise.
2994         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2995         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
2996         operand.
2997         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2998         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2999         sibcall_value_symbolic_64): Delete.
3000
3001 2011-04-21  Xinliang David Li  <davidxl@google.com>
3002
3003         * cgraph.h: Remove pid.
3004         * cgraph.c: Remove pid.
3005         * value-prof.c (init_node_map): New function.
3006         (del_node_map): New function.
3007         (find_func_by_funcdef_no): New function.
3008         (gimple_ic_transform): Call new function.
3009         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3010         * function.c (get_last_funcdef_no): New function.
3011         * function.h (get_last_funcdef_no): New function.
3012         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3013         to libgcov function.
3014         (tree-profiling): Call node map init and delete function.
3015
3016 2011-04-21  Ian Lance Taylor  <iant@google.com>
3017
3018         * godump.c (go_format_type): Use exported Go name for anonymous
3019         field name.
3020
3021 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3022
3023         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3024         Call builtin_function_type_list instead of builtin_function_type.
3025         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3026
3027 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3028
3029         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3030         build_function_type_list instead of build_function_type.
3031         Delete variable `endlink'.
3032
3033 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3034
3035         * config/s390/s390.c (s390_init_builtins): Call
3036         build_function_type_list instead of build_function_type.
3037
3038 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3039
3040         * config/ia64/ia64.c (ia64_init_builtins): Call
3041         build_function_type_list instead of builtin_function_type.
3042
3043 2011-04-21  Easwaran Raman  <eraman@google.com>
3044
3045         * cfgexpand.c (stack_var): Remove OFFSET...
3046         (add_stack_var): ...and its reference here...
3047         (expand_stack_vars): ...and here.
3048         (stack_var_cmp): Sort by descending order of size.
3049         (partition_stack_vars): Change heuristic.
3050         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3051         (dump_stack_var_partition): Add newline after each partition.
3052
3053 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3054             Jeff Law  <law@redhat.com>
3055
3056         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3057         * gengtype.c (matching_file_name_substitute): Likewise.
3058
3059 2011-04-21  Richard Guenther  <rguenther@suse.de>
3060
3061         PR lto/48703
3062         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3063
3064 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3065
3066         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3067
3068 2011-04-21  Richard Guenther  <rguenther@suse.de>
3069
3070         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3071         file name.
3072
3073 2011-04-21  Richard Guenther  <rguenther@suse.de>
3074
3075         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3076         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3077         Use DECL_P, not SSA_VAR_P.
3078         (ptr_derefs_may_alias_p): Likewise.
3079         (ptr_deref_may_alias_ref_p_1): Likewise.
3080         (decl_refs_may_alias_p): Likewise.
3081         (refs_may_alias_p_1): Likewise.
3082         (ref_maybe_used_by_call_p_1): Likewise.
3083         (call_may_clobber_ref_p_1): Likewise.
3084         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3085         are either MEM_REF or TARGET_MEM_REF.
3086         (indirect_refs_may_alias_p): Likewise.
3087         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3088         for MEM_EXPR of indirect calls.
3089
3090 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3091
3092         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3093         (dst_file_info_struct): Remove flen field.
3094         (lookup_filename): Remove code that set flen field.
3095
3096 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3097
3098         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3099
3100 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3101
3102         PR target/48708
3103         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3104         vec_extract and vec_concat for non-SSE4_1 targets.
3105
3106 2011-04-21  Richard Guenther  <rguenther@suse.de>
3107
3108         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3109         return statements.
3110
3111 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3112
3113         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3114         undefine.
3115         (FILE): Don't undefine.
3116
3117 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3118
3119         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3120         struct rtx_def *.
3121         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3122         struct rtx_def *.
3123         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3124         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3125         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3126         rtx_def *.
3127         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3128         definitions where used.
3129         * config/microblaze/microblaze.h (struct microblaze_args): Use
3130         rtx, not struct rtx_def *.
3131         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3132         rtx_def *.
3133         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3134         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3135         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3136         not struct rtx_def *.
3137         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3138         struct rtx_def *.
3139         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3140         rtx_def *.
3141         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3142
3143 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3144
3145         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3146         operand_equal_p to compare DR_BASE_ADDRESSes.
3147         (vect_check_interleaving): Likewise.
3148
3149 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3150
3151         PR target/46329
3152         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3153         for all Neon struct constants.
3154
3155 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3156
3157         * target.def (legitimate_constant_p): New hook.
3158         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3159         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3160         * doc/tm.texi: Regenerate.
3161         * hooks.h (hook_bool_mode_rtx_true): Declare.
3162         * hooks.c (hook_bool_mode_rtx_true): Define.
3163         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3164         * calls.c (precompute_register_parameters): Replace uses of
3165         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3166         (emit_library_call_value_1): Likewise.
3167         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3168         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3169         * ira-costs.c (scan_one_insn): Likewise.
3170         * recog.c (general_operand, immediate_operand): Likewise.
3171         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3172         * reload1.c (init_eliminable_invariants): Likewise.
3173
3174         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3175         mode argument.
3176         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3177         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3178         argument.
3179         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3180         * config/alpha/predicates.md (input_operand): Update call to
3181         alpha_legitimate_constant_p.
3182
3183         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3184         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3185         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3186         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3187         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3188         (arm_legitimate_constant_p): New functions.
3189         (arm_cannot_force_const_mem): Make static.
3190
3191         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3192
3193         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3194         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3195         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3196         instead of bfin_legitimate_constant_p.
3197         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3198         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3199
3200         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3201
3202         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3203
3204         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3205         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3206         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3207         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3208
3209         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3210         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3211         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3212
3213         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3214         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3215         * config/i386/i386.c (legitimate_constant_p): Rename to...
3216         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3217         argument.
3218         (ix86_cannot_force_const_mem): Update accordingly.
3219         (ix86_legitimate_address_p): Likewise.
3220         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3221         * config/i386/i386.md: Update commentary.
3222
3223         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3224         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3225         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3226         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3227
3228         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3229
3230         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3231         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3232         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3233         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3234
3235         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3236         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3237         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3238
3239         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3240         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3241         (m32r_legitimate_constant_p): New function.
3242
3243         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3244         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3245         LEGITIMATE_CONSTANT_P.
3246         (LEGITIMATE_CONSTANT_P): Delete.
3247         * config/m68k/m68k.c (m68k_expand_prologue): Call
3248         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3249         (m68k_legitimate_constant_p): New function.
3250         * config/m68k/m68k.md: Update comments.
3251
3252         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3253         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3254         (mcore_legitimate_constant_p): New function.
3255
3256         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3257         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3258         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3259         Add a mode argument.
3260         (mep_legitimate_address): Update accordingly.
3261         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3262
3263         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3264         Delete.
3265         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3266         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3267         static.  Check OP's mode for VOIDmode.
3268         (microblaze_legitimate_constant_p): New function.
3269         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3270
3271         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3272         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3273         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3274         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3275         * config/mips/predicates.md: Update comments.
3276
3277         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3278         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3279         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3280         (mmix_legitimate_constant_p): Make static, return a bool, and take
3281         a mode argument.
3282         (mmix_print_operand_address): Update accordingly.
3283
3284         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3285         Delete.
3286         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3287         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3288         static.  Add a mode argument.
3289         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3290
3291         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3292
3293         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3294         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3295         (pa_legitimate_constant_p): New function.
3296
3297         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3298
3299         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3300         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3301         (pdp11_legitimate_constant_p): New function.
3302
3303         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3304         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3305         (rs6000_legitimate_constant_p): New function.
3306
3307         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3308         (rx_legitimate_constant_p): ...this.
3309         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3310         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3311         (rx_legitimate_constant_p): ...this.
3312         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3313         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3314
3315         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3316         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3317         * config/s390/s390.c (legitimate_constant_p): Rename to...
3318         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3319         and add a mode argument.
3320         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3321
3322         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3323
3324         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3325         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3326         (sh_legitimate_constant_p): New function.
3327
3328         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3329         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3330         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3331         (legitimate_constant_p): Rename to...
3332         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3333         argument.
3334         (constant_address_p): Update accordingly.
3335
3336         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3337         argument and return a bool.
3338         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3339         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3340         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3341         (spu_rtx_costs): Update accordingly.
3342         * config/spu/predicates.md (vec_imm_operand): Likewise.
3343
3344         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3345
3346         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3347         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3348         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3349
3350         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3351         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3352         * config/vax/vax.c (legitimate_constant_p): Likewise.
3353
3354         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3355         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3356         (xtensa_legitimate_constant_p): New function.
3357
3358 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3359
3360         * target.def (cannot_force_const_mem): Add a mode argument.
3361         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3362         * doc/tm.texi: Regenerate.
3363         * hooks.h (hook_bool_mode_rtx_false): Declare.
3364         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3365         (hook_bool_mode_const_rtx_true): Likewise.
3366         (hook_bool_mode_rtx_false): New function.
3367         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3368         to be non-VOID.  Update call to cannot_force_const_mem.
3369         (find_reloads): Update accordingly.
3370         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3371         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3372         argument.
3373         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3374         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3375         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3376         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3377         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3378         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3379         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3380         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3381         (m68k_cannot_force_const_mem): ...this new function.
3382         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3383         argument.
3384         (mips_const_insns, mips_legitimize_const_move): Update calls.
3385         (mips_secondary_reload_class): Likewise.
3386         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3387         (pa_cannot_force_const_mem): ...this new function.
3388         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3389         (rs6000_cannot_force_const_mem): ...this new function.
3390         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3391         argument.
3392         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3393         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3394         to...
3395         (xtensa_cannot_force_const_mem): ...this new function.
3396
3397 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3398
3399         * config/mips/mips.c (mips16_build_function_stub): Call
3400         build_function_type_list instead of build_function_type.
3401         (mips16_build_call_stub): Likewise.
3402
3403 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3404
3405         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3406         instead of build_function_type.
3407
3408 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3409
3410         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3411         instead of build_function_type.
3412
3413 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3414
3415         PR target/48678
3416         * config/i386/i386.md (insv): Change operand 0 constraint to
3417         "register_operand".  Change operand 1 and 2 constraint to
3418         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3419         * config/i386/sse.md (sse4_1_pinsrb): Export.
3420         (sse2_pinsrw): Ditto.
3421         (sse4_1_pinsrd): Ditto.
3422         (sse4_1_pinsrq): Ditto.
3423         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3424         * config/i386/i386.c (ix86_expand_pinsr): New.
3425
3426 2011-04-20  Easwaran Raman  <eraman@google.com>
3427
3428         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3429         containing union type only with -fstrict-aliasing.
3430
3431 2011-04-20  Jim Meyering  <meyering@redhat.com>
3432
3433         Remove useless if-before-free tests.
3434         * calls.c (expand_call, save_area): Likewise.
3435         * cfgcleanup.c (try_forward_edges): Likewise.
3436         * collect2.c (collect_execute): Likewise.
3437         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3438         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3439         * coverage.c (coverage_checksum_string): Likewise.
3440         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3441         * cselib.c (cselib_init): Likewise.
3442         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3443         (df_set_clean_cfg): Likewise.
3444         * function.c (free_after_compilation): Likewise.
3445         * gcc.c (do_spec_1, main): Likewise.
3446         * gcov.c (create_file_names): Likewise.
3447         * gensupport.c (identify_predicable_attribute): Likewise.
3448         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3449         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3450         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3451         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3452         * ipa-pure-const.c (local_pure_const): Likewise.
3453         * ipa-reference.c (propagate): Likewise.
3454         * ira-costs.c (free_ira_costs): Likewise.
3455         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3456         * matrix-reorg.c (mat_free): Likewise.
3457         * prefix.c (get_key_value): Likewise.
3458         * profile.c (compute_value_histograms): Likewise.
3459         * reload1.c (free_reg_equiv): Likewise.
3460         * sched-deps.c (free_deps): Likewise.
3461         * sel-sched-ir.c (fence_clear): Likewise.
3462         * sese.c (set_rename, if_region_set_false_region): Likewise.
3463         * tree-data-ref.c (free_rdg): Likewise.
3464         * tree-eh.c (lower_try_finally): Likewise.
3465         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3466         * tree-ssa-live.c (delete_var_map): Likewise.
3467         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3468         * tree-ssa-pre.c (phi_trans_add): Likewise.
3469
3470 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3471
3472         PR tree-optimization/48611
3473         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3474         beyond ERT_MUST_NOT_THROW region.
3475
3476 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3477
3478         * config/mips/mips.opt (mfix-24k): New.
3479         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3480         * config/mips/mips.md (length): Increase by 4 for stores if
3481         fixing 24K errata.
3482         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3483         all noreorder if fixing 24K errata.
3484         * doc/invoke.texi: Document mfix-24k.
3485
3486 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3487
3488         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3489         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3490
3491 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3492
3493         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3494         (const_ok_for_op): ... to here.
3495
3496 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3497
3498         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3499         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3500
3501 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3502
3503         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3504
3505 2011-04-20  Richard Guenther  <rguenther@suse.de>
3506
3507         PR tree-optimization/47892
3508         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3509         are if-convertible.
3510
3511 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3512
3513         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3514
3515 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3516
3517         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3518
3519 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3520
3521         PR target/18145
3522
3523         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3524         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3525         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3526         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3527         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3528
3529         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3530         New prototype.
3531
3532         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3533         (avr_asm_named_section, avr_asm_output_aligned_common,
3534         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3535         New functions to update...
3536         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3537         (avr_asm_init_sections): Overwrite section callbacks for
3538         data_section, bss_section.
3539         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3540         from here to...
3541         (avr_file_end): ...here.
3542
3543 2011-04-20  Richard Guenther  <rguenther@suse.de>
3544
3545         PR middle-end/48695
3546         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3547         objects and types here.  Adjust for their offset before comparing.
3548
3549 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3550
3551         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3552         statement per copy.
3553
3554 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3555
3556         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3557         (GIMPLE_H): Include $(INTERNAL_FN_H).
3558         (OBJS-common): Add internal-fn.o.
3559         (internal-fn.o): New rule.
3560         * internal-fn.def: New file.
3561         * internal-fn.h: Likewise.
3562         * internal-fn.c: Likewise.
3563         * gimple.h: Include internal-fn.h.
3564         (GF_CALL_INTERNAL): New gf_mask.
3565         (gimple_statement_call): Put fntype into a union with a new
3566         internal_fn field.
3567         (gimple_build_call_internal): Declare.
3568         (gimple_build_call_internal_vec): Likewise.
3569         (gimple_call_same_target_p): Likewise.
3570         (gimple_call_internal_p): New function.
3571         (gimple_call_internal_fn): Likewise.
3572         (gimple_call_fntype): Return null for internal calls.
3573         (gimple_call_set_fntype): Assert that the function is not internal.
3574         (gimple_call_set_fn): Likewise.
3575         (gimple_call_set_fndecl): Likewise.
3576         (gimple_call_set_internal_fn): New function.
3577         (gimple_call_addr_fndecl): Handle null functions.
3578         (gimple_call_return_type): Likewise null types.
3579         * gimple.c (gimple_build_call_internal_1): New function.
3580         (gimple_build_call_internal): Likewise.
3581         (gimple_build_call_internal_vec): Likewise.
3582         (gimple_call_same_target_p): Likewise.
3583         (gimple_call_flags): Handle calls to internal functions.
3584         (gimple_call_fnspec): New function.
3585         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3586         (gimple_has_side_effects): Handle null functions.
3587         (gimple_rhs_has_side_effects): Likewise.
3588         (gimple_call_copy_skip_args): Handle calls to internal functions.
3589         * cfgexpand.c (expand_call_stmt): Likewise.
3590         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3591         * gimple-fold.c (gimple_fold_call): Handle null functions.
3592         (gimple_fold_stmt_to_constant_1): Don't fold
3593         calls to internal functions.
3594         * gimple-low.c (gimple_check_call_args): Handle calls to internal
3595         functions.
3596         * gimple-pretty-print.c (dump_gimple_call): Likewise.
3597         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3598         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3599         (do_warn_unused_result): Likewise.
3600         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3601         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3602         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3603         the target of a call.
3604         (initialize_hash_element): Update accordingly.
3605         (hashable_expr_equal_p): Use gimple_call_same_target_p.
3606         (iterative_hash_hashable_expr): Handle calls to internal functions.
3607         (print_expr_hash_elt): Likewise.
3608         * tree-ssa-pre.c (can_value_number_call): Likewise.
3609         (eliminate): Handle null functions.
3610         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3611         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3612         (find_func_aliases): Likewise.
3613         * value-prof.c (gimple_ic_transform): Likewise.
3614         (gimple_indirect_call_to_profile): Likewise.
3615         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3616         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3617
3618 2011-04-19  Jan Hubicka  <jh@suse.cz>
3619
3620         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3621         * ipa-inline.c (inline_small_functions): Compute summaries first,
3622         populate heap later.
3623
3624 2011-04-19  Jan Hubicka  <jh@suse.cz>
3625
3626         * cgraph.h (save_inline_function_body): Remove.
3627         * ipa-inline-transform.c: New file, broke out of...
3628         * ipa-inline.c: ... this one; Update toplevel comment.
3629         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3630         make global.
3631         (update_noncloned_frequencies): Move to ipa-inline-transform.c
3632         (cgraph_mark_inline_edge): Rename to inline_call; move to
3633         ipa-inline-transform.c.
3634         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3635         move to ipa-inline-transform.c
3636         (recursive_inlining, inline_small_functions, flatten_function,
3637         ipa_inline, inline_always_inline_functions,
3638         early_inline_small_functions): Update.
3639         (inline_transform): Move to ipa-inline-transform.c.
3640         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3641         Declare.
3642         * Makefile.in (ipa-inline-transform.o): New file.
3643         * cgraphunit.c (save_inline_function_body): Move to
3644         ipa-inline-transform.c
3645
3646 2011-04-19  DJ Delorie  <dj@redhat.com>
3647
3648         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3649         registers if we already know there aren't any.
3650         (m32c_emit_epilogue): Don't emit a barrier here.
3651         (m32c_emit_eh_epilogue): Likewise.
3652         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3653         operands at expand time.
3654         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3655         int" wchar type.
3656         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3657         duplicates.  Provide aliases instead.
3658         * config/m32c/prologue.md (eh_return): Emit a barrier here.
3659         (eh_epilogue): Add a "(return)" here as a hint to other parts of
3660         the compiler.
3661
3662 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
3663
3664         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3665         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3666         (general_or_i64_p, sparc_register_move_cost): New function.
3667
3668 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3669
3670         * doc/install.texi (Configuration, --enable-threads): Remove mach.
3671         Add lynx, mipssde.  Sort table.
3672
3673 2011-04-19  Xinliang David Li  <davidxl@google.com>
3674
3675         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3676         not negative.
3677
3678 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
3679
3680         PR target/48678
3681         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3682         is a SUBREG with non-MODE_INT mode inside of it.
3683
3684 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3685
3686         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3687         also according to actual contants.
3688         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3689         (gimple_fold_call): Use it.
3690         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3691
3692 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3693
3694         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3695         non-pointer assignments.
3696
3697 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3698
3699         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3700         account anc_offset and otr_type from the indirect edge info.
3701         * ipa-prop.c (get_ancestor_addr_info): New function.
3702         (compute_complex_ancestor_jump_func): Assignment analysis moved to
3703         get_ancestor_addr_info, call it.
3704         (ipa_note_param_call): Do not initialize information about polymorphic
3705         calls, return the indirect call graph edge.  Remove the last
3706         parameter, adjust all callers.
3707         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3708         parameters.  Initialize polymorphic information in the indirect edge.
3709
3710 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3711
3712         PR lto/48148
3713         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3714         the types if they have different enumeration identifiers.
3715
3716 2011-04-19  Jan Hubicka  <jh@suse.cz>
3717
3718         * cgraph.h (cgraph_optimize_for_size_p): Declare.
3719         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3720         * predict.c (cgraph_optimize_for_size_p): Break out from ...
3721         (optimize_function_for_size_p) ... here.
3722
3723 2011-04-19  Richard Guenther  <rguenther@suse.de>
3724
3725         PR lto/48207
3726         * tree.c (free_lang_data): Do not reset the decl-assembler-name
3727         langhook.
3728
3729 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3730
3731         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3732         if DECL_NO_INLINE_WARNING_P is set on the function.
3733
3734 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
3735
3736         PR fortran/47976
3737         * reload1.c (inc_for_reload): Return void. All callers changed.
3738         (emit_input_reload_insns): Don't try to delete previous output
3739         reloads to a register, or record spill_reg_store for autoincs.
3740
3741 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
3742
3743         * gengtype.h: Updated copyright year.
3744         (struct input_file_st): Add inpisplugin field.
3745         (type_fileloc): New function.
3746         * gengtype.c
3747         (write_typed_struct_alloc_def): Add gcc_assert.
3748         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3749         (write_typed_alloc_defns): Don't output for plugin files.
3750         (input_file_by_name): Clear inpisplugin field.
3751         (main): Set inpisplugin field for plugin files.
3752
3753 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3754
3755         * gengtype-state.c (string_eq): New.
3756         (read_state): Use string_eq instead of strcmp when creating the
3757         state_ident_tab.
3758
3759 2011-04-19  Wei Guozhi  <carrot@google.com>
3760
3761         PR target/47855
3762         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3763         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3764         linkage.
3765         * config/arm/constraints.md (Uu): New constraint.
3766         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3767
3768 2011-04-19  Tristan Gingold  <gingold@adacore.com>
3769
3770         * config.gcc (-*-*-*vms): Added.
3771         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3772         definitions moved.
3773         * config/vms/vms-ld.c: New file.
3774         * config/vms/vms-ar.c: New file.
3775         * config/vms/t-vmsnative: New file.
3776
3777 2011-04-18  Xinliang David Li  <davidxl@google.com>
3778
3779         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3780
3781 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3782
3783         PR middle-end/48661
3784         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3785         if TREE_TYPE (v) is non-NULL.
3786
3787         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3788         gimple_get_virt_mehtod_for_binfo.
3789         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3790         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3791         callers.
3792         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3793
3794 2011-04-18  Michael Matz  <matz@suse.de>
3795             Steve Ellcey  <sje@cup.hp.com>
3796
3797         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3798         use its mode as source mode if it isn't VOIDmode.
3799
3800 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
3801
3802         * doc/passes.texi: Fill crossref nodes.
3803
3804 2011-04-18  Jim Meyering  <meyering@redhat.com>
3805
3806         Fix doubled-word typos in comments and strings
3807         * config/alpha/vms-unwind.h: s/for for/for/
3808         * config/arm/unwind-arm.h: Likewise.
3809         * config/microblaze/microblaze.c: Likewise.
3810         * config/sh/constraints.md: s/in in/in/
3811         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3812
3813 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
3814
3815         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3816         (AVX_FLOAT_MODE_P): Ditto.
3817         (AVX128_VEC_FLOAT_MODE_P): Ditto.
3818         (AVX256_VEC_FLOAT_MODE_P): Ditto.
3819         (AVX_VEC_FLOAT_MODE_P): Ditto.
3820         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3821         (UNSPEC_MASKSTORE): Ditto.
3822         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3823         Merge from <sse>_movmsk<ssemodesuffix> and
3824         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
3825         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
3826         iterator.
3827         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3828         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3829         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3830
3831 2011-04-18  Jan Hubicka  <jh@suse.cz>
3832
3833         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3834
3835         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3836         (want_inline_function_called_once_p): Break out the logic from
3837         ipa_inline.
3838         (edge_badness): Ensure that profile is not misupdated.
3839         (lookup_recursive_calls): Prioritize by call frequencies.
3840         (inline_small_functions): Move program size estimates here;
3841         actually process whole queue even when unit growth has been
3842         met. (to properly compute inline_failed reasons and for the
3843         case unit size decrease.) Revisit comments on recursive inlining.
3844         (ipa_inline): Remove unit summary code; first inline hot calls
3845         of functions called once, cold calls next.
3846         (order, nnodes): Remove unused variables.
3847         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3848         (GTFILES): Remove ipa-inline.c
3849         * sel-sched.c (fill_insns): Silence uninitialized var warning.
3850
3851 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3852
3853         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3854
3855 2011-04-18  Jie Zhang  <jie@codesourcery.com>
3856             Richard Earnshaw  <rearnsha@arm.com>
3857
3858         * arm.c (neon_builtin_type_bits): Remove.
3859         (typedef enum neon_builtin_mode): New.
3860         (T_MAX): Don't define.
3861         (typedef enum neon_builtin_datum): Remove bits, codes[],
3862         num_vars and base_fcode.  Add mode, code and fcode.
3863         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3864         VAR10): Change accordingly.
3865         (neon_builtin_data[]): Change accordingly
3866         (arm_init_neon_builtins): Change accordingly.
3867         (neon_builtin_compare): Remove.
3868         (locate_neon_builtin_icode): Remove.
3869         (arm_expand_neon_builtin): Change accordingly.
3870
3871         * arm.h (enum arm_builtins): Move to ...
3872         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3873
3874         * arm.c (arm_builtin_decl): Declare.
3875         (TARGET_BUILTIN_DECL): Define.
3876         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3877         (arm_builtin_decls[]): New.
3878         (arm_init_neon_builtins): Store builtin declarations in
3879         arm_builtin_decls[].
3880         (arm_init_tls_builtins): Likewise.
3881         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
3882         (arm_builtin_decl): New.
3883
3884 2011-04-18  Richard Guenther  <rguenther@suse.de>
3885
3886         * tree.c (upper_bound_in_type): Build properly canonicalized
3887         INTEGER_CSTs.
3888         (lower_bound_in_type): Likewise.
3889
3890 2011-04-18  Richard Guenther  <rguenther@suse.de>
3891
3892         * gimple.h (gimple_call_addr_fndecl): New function.
3893         (gimple_call_fndecl): Use it.
3894         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3895         for direct calls.
3896         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3897         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3898
3899 2011-04-18  Richard Guenther  <rguenther@suse.de>
3900
3901         PR middle-end/48650
3902         * tree.c (build_string): STRING_CST is now derived from tree_typed.
3903
3904 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3905
3906         PR lto/48492
3907         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3908         DECL_IN_CONSTANT_POOL without RTL.
3909
3910 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
3911             Ira Rosen  <ira.rosen@linaro.org>
3912
3913         PR target/48252
3914         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
3915         to match neon_vzip/vuzp/vtrn_internal.
3916         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
3917         outputs explicitly dependent on both inputs.
3918         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
3919
3920 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3921
3922         PR tree-optimization/48616
3923         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
3924         whether the shift is by scalar or vector based on whether all SLP
3925         scalar stmts have the same rhs.
3926
3927 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
3928
3929         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
3930         memory operands.
3931
3932 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
3933
3934         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
3935         registers.
3936
3937 2011-04-17  Jan Hubicka  <jh@suse.cz>
3938
3939         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
3940         * cgrpahunit.c (cgraph_finalize_function): Do not set
3941         finalized_by_frontend.
3942         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3943         finalized_by_frontend.
3944
3945 2011-04-17  Jan Hubicka  <jh@suse.cz>
3946
3947         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
3948         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
3949         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
3950         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
3951         method.
3952         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
3953         gimple-fold.c
3954         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
3955
3956 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3957
3958         PR lto/48538
3959         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
3960         is non-null before accessing it.
3961         (input_cgraph): Remove trailing spaces.
3962
3963 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3964
3965         * params.def (sms-min-sc): New param flag.
3966         * modulo-sched.c (sms_schedule): Use it.
3967         * doc/invoke.texi (sms-min-sc): Document it.
3968
3969 2011-04-17  Jan Hubicka  <jh@suse.cz>
3970
3971         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
3972         present, also set gimple_call_set_cannot_inline.
3973         * ipa-inline.c: Update toplevel comment.
3974         (MAX_TIME): Remove.
3975         (cgraph_clone_inlined_nodes): Fix linebreaks.
3976         (cgraph_check_inline_limits): Restructure to ...
3977         (caller_growth_limits): ... this one; be more tolerant
3978         on growth in nested inline chains; add explanatory comment;
3979         fix stack accounting thinko introduced by previous patch.
3980         (cgraph_default_inline_p): Remove.
3981         (report_inline_failed_reason): New function.
3982         (can_inline_edge_p): New function.
3983         (can_early_inline_edge_p): New function.
3984         (leaf_node_p): Move upwards in file.
3985         (want_early_inline_function_p): New function.
3986         (want_inline_small_function_p): New function.
3987         (want_inline_self_recursive_call_p): New function.
3988         (cgraph_edge_badness): Rename to ...
3989         (edge_badness) ... this one; fix linebreaks.
3990         (update_edge_key): Update call of edge_baddness; add
3991         detailed dump about queue updates.
3992         (update_caller_keys): Use can_inline_edge_p and
3993         want_inline_small_function_p.
3994         (cgraph_decide_recursive_inlining): Rename to...
3995         (recursive_inlining): Use can_inline_edge_p and
3996         want_inline_self_recursive_call_p; simplify and remove no longer
3997         valid FIXME.
3998         (cgraph_set_inline_failed): Remove.
3999         (add_new_edges_to_heap): Use can_inline_edge_p and
4000         want_inline_small_function_p.
4001         (cgraph_decide_inlining_of_small_functions): Rename to ...
4002         (inline_small_functions): ... this one; cleanup; use
4003         can/want predicates; cleanup debug ouput; work edges till fibheap
4004         is exhausted and do not stop once unit growth is reached; remove
4005         later loop processing remaining edges.
4006         (cgraph_flatten): Rename to ...
4007         (flatten_function): ... this one; use can_inline_edge_p
4008         and can_early_inline_edge_p predicates.
4009         (cgraph_decide_inlining): Rename to ...
4010         (ipa_inline): ... this one; remove unreachable nodes before
4011         inlining functions called once; simplify the pass.
4012         (cgraph_perform_always_inlining): Rename to ...
4013         (inline_always_inline_functions): ... this one; use
4014         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4015         (cgraph_decide_inlining_incrementally): Rename to ...
4016         (early_inline_small_functions): ... this one; simplify
4017         using new predicates; cleanup; make dumps prettier.
4018         (cgraph_early_inlining): Rename to ...
4019         (early_inliner): newer inline regular functions into always-inlines;
4020         fix updating of call stmt summaries.
4021         (pass_early_inline): Update for new names.
4022         (inline_transform): Fix formating.
4023         (gate_cgraph_decide_inlining): Rename to ...
4024         (pass_ipa_inline): ... this one.
4025         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4026         * ipa-inline-analysis.c (dump_inline_summary): Update.
4027         (compute_inline_parameters): Do not compute disregard_inline_limits;
4028         look for mismatching arguments.
4029         (estimate_growth): Fix handlig of non-trivial self recursion.
4030         (inline_read_summary): Do not read info->disregard_inline_limits.
4031         (inline_write_summary): Do not write info->disregard_inline_limits.
4032         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4033         and move all checks into can_inline_edge_p predicate; re-enable code
4034         comparing optimization levels.
4035         (expand_call_inline): Do not test inline_forbidden_into_p.
4036         * Makefile.in (ipa-inline.o): Update arguments.
4037
4038 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4039
4040         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4041
4042 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4043
4044         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4045
4046 2011-04-17  Michael Matz  <matz@suse.de>
4047
4048         PR tree-optimization/48622
4049         PR lto/48645
4050         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4051         in same order as they're written.
4052
4053 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4054
4055         * config/pa/predicates.md: Reorganize and simplify predicates.
4056         Eliminate duplicate code checks.
4057         (arith_operand): Rename to arith14_operand
4058         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4059         * config/pa/pa.md: Use renamed operands.
4060         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4061         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4062         arith11_operand, adddi3_operand, indexed_memory_operand,
4063         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4064         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4065         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4066         move_dest_operand, move_src_operand, prefetch_cc_operand,
4067         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4068         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4069         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4070         div_operand, int5_operand, movb_comparison_operator,
4071         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4072         arith_double_operand, ireg_operand, lhs_lshift_operand,
4073         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4074         integer_store_memory_operand): Likewise.
4075         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4076         (integer_store_memory_operand, read_only_operand,
4077         function_label_operand, borx_reg_operand,
4078         non_hard_reg_operand): Likewise.
4079         (eq_neq_comparison_operator): Delete unused operator.
4080         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4081         function_label_operand.
4082         (emit_move_sequence): Likewise.
4083
4084 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4085
4086         * config/i386/sse.md (sseunpackmode): New mode attribute.
4087         (ssepackmode): Ditto.
4088         (vec_pack_trunc_<mode>): Macroize expander from
4089         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4090         (vec_unpacks_lo_<mode>): Macroize expander from
4091         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4092         (vec_unpacks_hi_<mode>): Macroize expander from
4093         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4094         (vec_unpacku_lo_<mode>): Macroize expander from
4095         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4096         (vec_unpacku_hi_<mode>): Macroize expander from
4097         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4098         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4099         ix86_expand_sse4_unpack.
4100         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4101
4102 2011-04-16  Jan Hubicka  <jh@suse.cz>
4103
4104         * cgraphbuild.c: Include ipa-inline.h.
4105         (reset_inline_failed): Use initialize_inline_failed.
4106         * cgraph.c: Include ipa-inline.h.
4107         (cgraph_create_node_1): Do not initialize estimated_growth.
4108         (initialize_inline_failed): More to ipa-inline-analysis.c
4109         (dump_cgraph_node): Do not dump inline flags.
4110         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4111         and disregard_inline_limits flags.
4112         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4113         time, size, estimated_growth.
4114         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4115         Update.
4116         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4117         DECL_DISREGARD_INLINE_LIMITS.
4118         (cgraph_analyze_function): Do not initialize
4119         node->local.disregard_inline_limits.
4120         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4121         inlinable, versionable and disregard_inline_limits.
4122         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4123         cgraph_check_inline_limits, cgraph_default_inline_p,
4124         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4125         add_new_edges_to_heap): Update.
4126         (cgraph_decide_inlining_of_small_function): Update; set
4127         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4128         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4129         cgraph_decide_inlining_incrementally): Update.
4130         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4131         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4132         time, size and estimated_growth parameters.
4133         (estimate_edge_growth): Update.
4134         (initialize_inline_failed): Declare.
4135         * ipa-split.c: Include ipa-inline.h
4136         (execute_split_functions): Update.
4137         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4138         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4139         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4140         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4141         estimated_growth to INT_MIN.
4142         (inline_node_duplication_hook): Likewise.
4143         (dump_inline_summary): Dump new fields.
4144         (compute_inline_parameters): Update.
4145         (estimate_edge_time, estimate_time_after_inlining,
4146         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4147         inline_write_summary):
4148         (initialize_inline_failed): Move here from cgraph.c.
4149         * tree-sra.c: Include ipa-inline.h.
4150         (ipa_sra_preliminary_function_checks): Update.
4151         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4152         ipa-inline.h.
4153
4154 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4155
4156         * config/i386/sse.md (V16): New mode iterator.
4157         (VI1, VI8): Ditto.
4158         (AVXMODEQI, AVXMODEDI): Remove.
4159         (sse2, sse3): New mode attribute.
4160         (mov<mode>): Use V16 mode iterator.
4161         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4162         (push<mode>1): Use V16 mode iterator.
4163         (movmisalign<mode>): Ditto.
4164         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4165         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4166         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4167         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4168         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4169         avx_movdqu<avxmodesuffix>.
4170         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4171         *avx_movdqu<avxmodesuffix>.
4172         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4173         avx_lddqu<avxmodesuffix>.
4174         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4175         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4176         avx_movnt<AVXMODEDI:mode>.
4177         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4178         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4179
4180 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4181
4182         PR target/48629
4183         * haifa-sched.c (prune_ready_list, schedule_block): Use
4184         sched_pressure_p rather than flag_sched_pressure.
4185
4186 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4187
4188         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4189         cgraph_get_node instead of cgraph_get_create_node.
4190
4191 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4192
4193         * cfgexpand.c (expand_debug_expr): Use
4194         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4195
4196 2011-04-15  Michael Matz  <matz@suse.de>
4197
4198         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4199         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4200         * function.c (gimplify_parameters): Ditto.
4201         * gimplify.c (gimplify_vla_decl): Ditto.
4202
4203         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4204         (gimple_call_set_alloca_for_var): New inline function.
4205         (gimple_call_alloca_for_var_p): Ditto.
4206         * gimple.c (gimple_build_call_from_tree): Remember
4207         CALL_ALLOCA_FOR_VAR_P state.
4208         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4209
4210         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4211         calls if they were for VLA objects.
4212
4213 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4214
4215         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4216         of ADR_EXPRs.
4217
4218 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4219
4220         PR middle-end/48601
4221         * tree-emutls.c (lower_emutls_function_body): Call
4222         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4223         result is non-NULL.
4224
4225 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4226
4227         * c-decl.c (detect_field_duplicates): Call
4228         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4229
4230 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4231
4232         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4233         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4234         * ipa-pure-const.c (check_stmt): Call it.
4235         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4236
4237 2011-04-15  Richard Guenther  <rguenther@suse.de>
4238
4239         PR tree-optimization/48290
4240         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4241         Properly decide inhibiting propagation based on the valueized
4242         operand.  Do loop-closed SSA form preserving here ...
4243         (init_copy_prop): ... not here.
4244
4245 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4246
4247         PR target/48612
4248         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4249         (*ieee_smax<mode>3): Likewise.
4250
4251 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4252
4253         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4254         Replace match_operand with match_dup for the third operand in
4255         these expanders.
4256
4257 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4258
4259         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4260         to track processing of conditionals.  Update all callers.
4261         (try_combine, simplify_if_then_else): Update.
4262
4263 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4264
4265         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4266         -fsched-pressure.
4267
4268 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4269
4270         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4271         instead of match_operand for operand 3.
4272
4273 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4274
4275         * recog.h (insn_operand_data): Add an "allows_mem" field.
4276         * genoutput.c (output_operand_data): Initialize it.
4277         * optabs.c (maybe_legitimize_operand_same_code): New function.
4278         (maybe_legitimize_operand): Use it when matching the original
4279         op->value.
4280
4281 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4282
4283         * gimplify.c: Fix issues in comments throughout.
4284         (voidify_wrapper_expr): Fix long line.
4285         (build_stack_save_restore): Likewise.
4286         (gimplify_loop_expr): Likewise.
4287         (gimplify_compound_lval): Likewise.
4288         (gimplify_init_ctor_eval): Likewise.
4289         (gimplify_modify_expr_rhs): Likewise.
4290         (omp_notice_threadprivate_variable): Likewise.
4291
4292 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4293
4294         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4295         original one if this is not a builtin function.
4296
4297 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4298
4299         PR target/48605
4300         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4301         offset it as needed based on top 2 bits in operands[3], change
4302         MEM mode to SFmode and mask those 2 bits away from operands[3].
4303
4304 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4305
4306         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4307         change from objc_declare_protocols() to objc_declare_protocol().
4308
4309 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4310
4311         * config/i386/sse.md (sse4_1): New mode attribute.
4312         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4313         avx_blend<ssemodesuffix><avxmodesuffix> and
4314         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4315         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4316         avx_blendv<ssemodesuffix><avxmodesuffix> and
4317         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4318         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4319         avx_dp<ssemodesuffix><avxmodesuffix> and
4320         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4321         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4322         (sse4_1_packusdw): Merge with *avx_packusdw.
4323         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4324         (sse4_1_pblendw): Merge with *avx_pblendw.
4325         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4326         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4327         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4328         VF mode iterator.
4329         (sse4_1_round<ssescalarmodesuffix>): Merge with
4330         *avx_round<ssescalarmodesuffix>.
4331         (aesenc): Merge with *avx_aesenc.
4332         (aesenclast): Merge with *avx_aesenclast.
4333         (aesdec): Merge with *avx_aesdec.
4334         (aesdeclast): Merge with *avx_aesdeclast.
4335         (pclmulqdq): Merge with *pclmulqdq.
4336         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4337         New predicate.
4338         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4339
4340 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4341
4342         PR middle-end/48608
4343         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4344         (align_local_variable): This.  Update DECL_ALIGN.
4345         (add_stack_var): Updated.
4346         (expand_one_stack_var): Likewise.
4347
4348 2011-04-14  Richard Guenther  <rguenther@suse.de>
4349
4350         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4351         Remove.
4352         (dse_initialize_block_local_data, dse_leave_block,
4353         record_voperand_set, get_stmt_uid): Likewise.
4354         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4355         (dse_optimize_stmt): Remove voperand set handling code.
4356         Simplify and improve to handle any kind of killing stmt.
4357         (dse_record_phi): Remove.
4358         (dse_enter_block): Simplify.
4359         (tree_ssa_dse): Likewise.
4360         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4361
4362 2011-04-14  Jan Hubicka  <jh@suse.cz>
4363
4364         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4365         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4366         (cgraph_local_info): Remove inline_summary.
4367         * ipa-cp.c: Include ipa-inline.h.
4368         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4369         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4370         accesor.
4371         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4372         (input_overwrite_node): Do not set inline summary.
4373         (input_node): Do not stream inline summary.
4374         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4375         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4376         growth; we do not have inline parameters computed for that anyway.
4377         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4378         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4379         (inline_summary_t): New type and VECtor.
4380         (debug_inline_summary, dump_inline_summaries): Declare.
4381         (inline_summary): Use VOCtor.
4382         (estimate_edge_growth): Kill hack computing call stmt size directly.
4383         * lto-section-in.c (lto_section_name): Add inline section.
4384         * ipa-inline-analysis.c: Include lto-streamer.h
4385         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4386         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4387         (inline_summary_vec): Define.
4388         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4389         dump_inline_summaries): New functions.
4390         (estimate_function_body_sizes): Properly compute size/time of outgoing
4391         calls.
4392         (compute_inline_parameters): Alloc inline_summary; do not compute
4393         size/time of incomming calls.
4394         (estimate_edge_time): Avoid missing time summary hack.
4395         (inline_read_summary): Read inline summary info.
4396         (inline_write_summary): Write inline summary info.
4397         (inline_free_summary): Free all hooks and inline summary vector.
4398         * lto-streamer.h: Add LTO_section_inline_summary section.
4399         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4400         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4401
4402 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4403
4404         * tree-vectorizer.h (vect_strided_store_supported): Add a
4405         HOST_WIDE_INT argument.
4406         (vect_strided_load_supported): Likewise.
4407         (vect_permute_store_chain): Return void.
4408         (vect_transform_strided_load): Likewise.
4409         (vect_permute_load_chain): Delete.
4410         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4411         count argument.  Check that the count is a power of two.
4412         (vect_strided_load_supported): Likewise.
4413         (vect_permute_store_chain): Return void.  Update after above changes.
4414         Assert that the access is supported.
4415         (vect_permute_load_chain): Likewise.
4416         (vect_transform_strided_load): Return void.
4417         * tree-vect-stmts.c (vectorizable_store): Update calls after
4418         above interface changes.
4419         (vectorizable_load): Likewise.
4420         (vect_analyze_stmt): Don't check for strided powers of two here.
4421
4422 2011-04-14  Richard Guenther  <rguenther@suse.de>
4423
4424         PR tree-optimization/48590
4425         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4426         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4427         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4428         BUILT_IN_STACK_SAVE.
4429         * tree-ssa-dce.c (propagate_necessity): Handle
4430         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4431
4432 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4433
4434         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4435         objc_declare_class.
4436
4437 2011-04-14  Richard Guenther  <rguenther@suse.de>
4438
4439         * tree.h (get_object_alignment_1): Declare.
4440         * builtins.c (get_object_alignment_1): Split out worker from ...
4441         (get_object_alignment): ... here.
4442         * fold-const.c (get_pointer_modulus_and_residue): Use
4443         get_object_alignment_1.
4444
4445 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4446
4447         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4448         type parameter.
4449         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4450         parameter.  Generalise code to handle arrays as well as vectors.
4451         (vect_setup_realignment): Update accordingly.
4452         * tree-vect-stmts.c (vectorizable_store): Likewise.
4453         (vectorizable_load): Likewise.
4454
4455 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4456
4457         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4458         within the per-copy loop.
4459
4460 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4461
4462         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4463         in the dump file.
4464
4465 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4466
4467         * doc/options.texi (Negative): Explicitly mention that the
4468         Negative chain must be circular.
4469
4470 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4471
4472         * function.h (block_chainon): Declare.
4473         * function.c (block_chainon): Define.
4474
4475 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4476             Eric Weddington  <eric.weddington@atmel.com>
4477             Georg-Johann Lay  <avr@gjlay.de>
4478
4479         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4480         New Includes
4481         (avr_init_builtins, avr_expand_builtin,
4482         avr_expand_delay_cycles, avr_expand_unop_builtin,
4483         avr_expand_binop_builtin ): New functions.
4484         (avr_builtin_id): New enum
4485         (struct avr_builtin_description): New struct
4486         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4487         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4488
4489         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4490         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4491         UNSPECV_DELAY_CYCLES): new enumeration values
4492         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4493         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4494         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4495         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4496         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4497         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4498         "fmulsu"): New insns
4499
4500         * config/avr/avr-c.c: fix line endings
4501         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4502         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4503         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4504         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4505         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4506
4507         * doc/extend.texi (AVR Built-in Functions): New node
4508         (Target Builtins): Add documentation of AVR
4509         built-in functions.
4510
4511 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4512
4513         PR target/44643
4514         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4515         alone. Error if non-const data has attribute progmem.
4516
4517 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4518
4519         * tree.h (struct tree_constructor): Include tree_typed instead of
4520         tree_common.
4521         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4522         TS_TYPED instead of TS_COMMON.
4523
4524 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4525
4526         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4527         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4528         (sse2_psadbw): Merge with *avx_psadbw.
4529         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4530         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4531         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4532         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4533         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4534         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4535         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4536         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4537         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4538         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4539         (ssse3_palignrti): Merge with *avx_palignrti.
4540
4541 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4542
4543         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4544         * tree-ssanames.c (fini_ssanames): VEC_free it.
4545         (make_ssa_name_fn): Update for VECness of free_ssanames.
4546         (release_ssa_name, release_dead_ssa_names): Likewise.
4547         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4548         tree_common.
4549         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4550         TS_TYPED instead of TS_COMMON.
4551
4552 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4553
4554         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4555         statistics_counter_event.
4556         * tree-ssa-copyrename.c (stats): Define.
4557         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4558         statistics_counter_event.
4559         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4560         (bswap_stats, widen_mul_stats): Define.
4561         (insert_reciprocals): Increment rdivs_inserted.
4562         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4563         rfuncs_inserted.  Add calls to statistics_counter_event.
4564         (execute_cse_sincos_1): Increment inserted.
4565         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4566         statistics_counter_event.
4567         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4568         of bswap_stats.  Add calls to statistics_counter_event.
4569         (convert_mult_to_widen): Increment widen_mults_inserted.
4570         (convert_plusminus_to_widen): Increment maccs_inserted.
4571         (convert_mult_to_fma): Increment fmas_inserted.
4572         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4573         calls to statistics_counter_event.
4574
4575 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4576
4577         PR rtl-optimization/48455
4578         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4579         `temp_costs->mem_cost'.
4580
4581 2011-04-13  Jan Hubicka  <jh@suse.cz>
4582
4583         * ipa-inline.h: New file.
4584         * ipa-inline-analysis.c: New file. Broken out of ...
4585         * ipa-inline.c: ... this file; update toplevel comment;
4586         include ipa-inline.h
4587         (inline_summary): Move to ipa-inline.h
4588         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4589         ipa-inline-analysis.c.
4590         (cgraph_estimate_time_after_inlining): Rename to
4591         estiamte_time_after_inlining; move to ipa-inline-analysis.c
4592         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4593         to estimate_edge_growth.
4594         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4595         rename to estimate_size_after_inlining.
4596         (cgraph_mark_inline_edge): Update for new naming convention.
4597         (cgraph_check_inline_limits): Likewise.
4598         (cgraph_edge_badness): Likewise.
4599         (cgraph_decide_recursive_inlining): Likewise.
4600         (cgraph_decide_inlining_of_small_functions): Likewise.
4601         (cgraph_decide_inlining_incrementally): Likewise.
4602         (cgraph_estimate_growth): Rename to estimate_growth; move to
4603         ipa-inline-analysis.c.
4604         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4605         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4606         (compute_inline_parameters): Likewise.
4607         (compute_inline_parameters_for_current): Likewise.
4608         (pass_inline_parameters): Likewise.
4609         (inline_indirect_intraprocedural_analysis): Likewise.
4610         (analyze_function): Rename to inline_analyze_function; likewise.
4611         (add_new_function): Move to ipa-inline-analysis.c.
4612         (inline_generate_summary): Likewise.
4613         (inline_read_summary): Likewise.
4614         (inline_write_summary): Likewise.
4615         * Makefile.in (ipa-inline-analysis.c): New file.
4616
4617 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4618
4619         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4620         * configure: Regenerate.
4621
4622 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4623
4624         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4625         instead of tree_common.
4626         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4627         Likewise.
4628         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4629         TS_TYPED rather than TS_COMMON.
4630         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4631
4632 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
4633
4634         PR target/45263
4635         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4636         r20 around calls of __tablejump_elpm__
4637
4638 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
4639
4640         PR middle-end/48591
4641         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4642         NULL.
4643         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4644
4645 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
4646
4647         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4648         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4649         (cfi_vec): New typedef.
4650         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4651         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4652         (cie_cfi_vec): New static variable.
4653         (cie_cfi_head): Delete.
4654         (add_cfi): Accept a cfi_vec * as first argument. All callers and
4655         declaration changed. Use vector rather than list operations.
4656         (new_cfi): Don't initialize the dw_cfi_next field.
4657         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4658         rather than list operations.
4659         (lookup_cfa): Use vector rather than list operations.
4660         (output_cfis): New argument upto. Accept a cfi_vec rather than
4661         a dw_cfi_ref list head as argument. All callers changed.
4662         Iterate over the vector using upto as a maximum index.
4663         (output_all_cfis): New static function.
4664         (output_fde): Use vector rather than list operations. Use the
4665         new upto argument for output_cfis rather than manipulating a
4666         list.
4667         (dwarf2out_begin_prologue): Change initializations to match
4668         new struct members.
4669         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4670         from the vector length rather than searching for the end of a list.
4671         Use output_all_cfis.
4672         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4673
4674 2011-04-13  Nick Clifton  <nickc@redhat.com>
4675
4676         * config/rx/rx.md (movmemsi): Do not use this pattern when
4677         volatile pointers are involved.
4678
4679 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4680
4681         * config/i386/sse.md (pinsrbits): Remove.
4682         (sse2_packsswb): Merge with *avx_packsswb.
4683         (sse2_packssdw): Merge with *avx_packssdw.
4684         (sse2_packuswb): Merge with *avx_packuswb.
4685         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4686         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4687         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4688         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4689         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4690         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4691         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4692         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4693         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4694         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4695         (sse2_loadld): Merge with *avx_loadld.
4696         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4697         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4698         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4699         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4700         (vec_concatv2di): Merge with *vec_concatv2di_avx.
4701
4702 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
4703
4704         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4705         calling TREE_CHAIN.
4706         * print-tree.c (print_node): Likewise.
4707         * tree-inline.c (copy_tree_r): Likewise.
4708         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4709         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4710         instead of TS_COMMON.
4711         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4712         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4713         (copy_node_stat): Zero TREE_CHAIN only if necessary.
4714         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4715         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4716         ...and these...
4717         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4718         * tree.h: ...here.
4719         (TREE_CHAIN): Check for a TS_COMMON structure.
4720         (TREE_TYPE): Check for a TS_TYPED structure.
4721
4722 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
4723
4724         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4725         cgraph_get_create_node instead of cgraph_node.
4726
4727 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4728
4729         * c-parser.c (c_parser_initelt): Updated call to
4730         objc_build_message_expr.
4731         (c_parser_postfix_expression): Likewise.
4732
4733 2011-04-12  Kai Tietz  <ktietz@redhat.com>
4734
4735         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4736         MASK_MS_BITFIELD_LAYOUT bit.
4737
4738 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4739
4740         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4741         assert it is always true.
4742         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4743         moves.
4744
4745 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4746
4747         * c-parser.c (c_lex_one_token): Rewritten conditional used when
4748         compiling Objective-C to be more efficient.
4749
4750 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
4751
4752         * opts-common.c (decode_cmdline_options_to_array): Remove variable
4753         argv_copied.
4754
4755 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4756
4757         * recog.h, genoutput.c, optabs.c: Revert last patch.
4758
4759 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4760
4761         PR target/48090
4762         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
4763
4764 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4765
4766         * recog.h (insn_operand_data): Add an "allows_mem" field.
4767         * genoutput.c (output_operand_data): Initialize it.
4768         * optabs.c (maybe_legitimize_operand_same_code): New function.
4769         (maybe_legitimize_operand): Use it when matching the original
4770         op->value.
4771
4772 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4773
4774         * genpreds.c (process_define_predicate): Move most processing
4775         to gensupport.c.  Continue to validate the expression.
4776         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4777         (process_define_predicate): Move processing to gensupport.c.
4778         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4779         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4780         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
4781         argument.
4782         (valid_predicate_name_p): New function, split out from old
4783         genpreds.c:process_define_predicate.
4784         (process_define_predicate): New function, combining code from
4785         old genpreds.c and genrecog.c functions.
4786         (process_rtx): Call it for DEFINE_PREDICATE and
4787         DEFINE_SPECIAL_PREDICATE.
4788
4789 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4790
4791         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4792         size of a '%A' memory reference.
4793         (T_DREG, T_QREG): New neon_builtin_type_bits.
4794         (arm_init_neon_builtins): Assert that the load and store operands
4795         are neon_struct_operands.
4796         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4797         (NEON_ARG_MEMORY): New builtin_arg.
4798         (neon_dereference_pointer): New function.
4799         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4800         Handle NEON_ARG_MEMORY.
4801         (arm_expand_neon_builtin): Update after above interface changes.
4802         Use NEON_ARG_MEMORY for loads and stores.
4803         * config/arm/predicates.md (neon_struct_operand): New predicate.
4804         * config/arm/iterators.md (V_two_elem): Tweak formatting.
4805         (V_three_elem): Use BLKmode for accesses that have no associated mode.
4806         (V_four_elem): Tweak formatting.
4807         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4808         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4809         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4810         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4811         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4812         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4813         (neon_vst4<mode>): Replace pointer operand with a memory operand.
4814         Use %A in the output template.
4815         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4816         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4817         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4818         the width of the memory access.  Remove post-increment.
4819         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4820
4821 2011-04-12  Nick Clifton  <nickc@redhat.com>
4822
4823         * config/v850/v850.c (expand_prologue): Do not use the CALLT
4824         instruction for interrupt handlers if the target is the basic V850
4825         architecture.
4826         (expand_epilogue): Likewise.
4827
4828 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4829
4830         PR rtl-optimization/48549
4831         * combine.c (propagate_for_debug): Also stop after BB_END of
4832         this_basic_block.  Process LAST and just stop processing after it.
4833         (combine_instructions): If last_combined_insn has been deleted,
4834         set last_combined_insn to its PREV_INSN.
4835
4836 2011-04-12  Richard Guenther  <rguenther@suse.de>
4837
4838         PR tree-optimization/46076
4839         * gimple.h (struct gimple_statement_call): Add fntype field.
4840         (gimple_call_fntype): Adjust.
4841         (gimple_call_set_fntype): New function.
4842         * gimple.c (gimple_build_call_1): Set the call function type.
4843         * gimplify.c (gimplify_call_expr): Preserve the function
4844         type the frontend used for the call.
4845         (gimplify_modify_expr): Likewise.
4846         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4847         function type.
4848         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4849         function type.
4850         * tree-ssa.c (useless_type_conversion_p): Function pointer
4851         conversions are useless.
4852
4853 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4854
4855         * cgraph.h (cgraph_node): Remove function declaration.
4856         (cgraph_create_node): Declare.
4857         (cgraph_get_create_node): Likewise.
4858         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4859         Updated all callers.
4860         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4861         the decl does not already exist.  Call cgraph_get_create_node instead
4862         of cgraph_node.
4863         (cgraph_get_create_node): New function.
4864         (cgraph_same_body_alias): Update comment.
4865         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4866         assert it does not return NULL.
4867         (cgraph_update_edges_for_call_stmt): Likewise.
4868         (cgraph_clone_edge): Likewise.
4869         (cgraph_create_virtual_clone): Likewise.
4870         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4871         instead of cgraph_node.
4872         (cgraph_add_new_function): Call cgraph_create_node or
4873         cgraph_get_create_node instead of cgraph_node.
4874         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4875         instead of cgraph_node.
4876         (record_eh_tables): Likewise.
4877         (mark_address): Likewise.
4878         (mark_load): Likewise.
4879         (build_cgraph_edges): Call cgraph_get_create_node instead
4880         of cgraph_node.
4881         (rebuild_cgraph_edges): Likewise.
4882         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4883         instead of cgraph_node.
4884         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4885         cgraph_node.
4886         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4887         cgraph_create_node instead of cgraph_node.
4888         * c-decl.c (finish_function): Call cgraph_get_create_node instead
4889         of cgraph_node.
4890         * lto-cgraph.c (input_node): Likewise.
4891         * lto-streamer-in.c (input_function): Likewise.
4892         * varasm.c (mark_decl_referenced): Likewise.
4893         (assemble_alias): Likewise.
4894
4895 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4896
4897         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4898         instead of cgraph_node and assert it does not return NULL.
4899         * lto-streamer-in.c (lto_read_body): Likewise.
4900         * omp-low.c (new_omp_context): Likewise.
4901         (create_task_copyfn): Likewise.
4902         * tree-emutls.c (lower_emutls_function_body): Likewise.
4903         * matrix-reorg.c (transform_allocation_sites): Likewise.
4904
4905 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4906
4907         PR c/48552
4908         * c-typeck.c (build_asm_expr): Error out on attempts to use
4909         void type outputs or inputs for constraints that allow reg or
4910         don't allow memory.
4911
4912 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
4913             Richard Earnshaw  <rearnsha@arm.com>
4914
4915         PR target/48250
4916         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
4917         to use sign-magnitude offsets. Reject unsupported unaligned
4918         cases. Add detailed description in comments.
4919         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
4920         condition from TARGET_32BIT to TARGET_ARM.
4921
4922 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
4923
4924         * tree.h (struct typed_tree): New.
4925         (struct tree_common): Include it instead of tree_base.
4926         (TREE_TYPE): Update for new location of type field.
4927         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
4928         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
4929         (union tree_node): Add typed field.
4930         * treestruct.def (TS_TYPED): New.
4931         * lto-streamer.c (check_handled_ts_structures): Handle it.
4932         * tree.c (MARK_TS_TYPED): New macro.
4933         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
4934
4935 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
4936
4937         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
4938         (force_nonfallthru): Do not alter the loop nest if no basic block
4939         was created.
4940
4941 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4942
4943         * config/i386/sse.md (VI): New mode iterator.
4944         (SSEMODEI): Remove.
4945         (AVX256MODEI): Ditto.
4946         (AVXMODEF4P): Ditto.
4947         (avxvecpsmode): Ditto.
4948         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
4949         (sse2_andnot<mode>3): New expander.
4950         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
4951         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
4952         (<any_logic:code><mode>3): Use VI mode iterator.
4953         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
4954         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
4955         (*andnottf3): Handle AVX three-operand constraints.
4956         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
4957
4958 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4959             Robert Millan  <rmh@gnu.org>
4960
4961         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
4962         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
4963         GNU_USER_DYNAMIC_LINKER64): Define.
4964         (REG_NAME): Don't undefine.
4965         (MD_UNWIND_SUPPORT): Undefine.
4966         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
4967         (REG_NAME): Don't undefine.
4968         (MD_UNWIND_SUPPORT): Undefine.
4969         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
4970
4971 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4972
4973         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
4974         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
4975
4976 2011-04-11  Xinliang David Li  <davidxl@google.com>
4977
4978         * value-profile.c (check_ic_target): New function.
4979         (gimple_ic_transform): Sanity check indirect call target.
4980         * gimple-low.c (gimple_check_call_args): Interface change.
4981         (gimple_check_call_matching_types): New function.
4982         * tree-inline.c (tree_can_inline_p): Call new function.
4983
4984 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
4985
4986         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
4987         tree-pretty-print.h & realmpfr.h.
4988
4989 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4990
4991         PR middle-end/48464
4992         * ira.c (setup_pressure_classes): Fix typo in loop condition.
4993         (setup_allocno_and_important_classes): Ditto.
4994
4995 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4996
4997         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
4998         GNU_USER_DYNAMIC_LINKER.
4999         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5000         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5001         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5002         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5003         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5004         GNU_USER_TARGET_OS_CPP_BUILTINS.
5005         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5006         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5007         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5008         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5009         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5010         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5011         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5012         GNU_USER_TARGET_OS_CPP_BUILTINS.
5013         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5014         GNU_USER_DYNAMIC_LINKER.
5015         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5016         GNU_USER_TARGET_OS_CPP_BUILTINS.
5017         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5018         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5019         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5020         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5021         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5022         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5023         GNU_USER_DYNAMIC_LINKER64): Remove.
5024         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5025         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5026         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5027         GNU_USER_DYNAMIC_LINKER.
5028         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5029         GNU_USER_TARGET_OS_CPP_BUILTINS.
5030         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5031         GNU_USER_TARGET_OS_CPP_BUILTINS.
5032         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5033         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5034         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5035         GNU_USER_TARGET_OS_CPP_BUILTINS.
5036         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5037         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5038         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5039         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5040         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5041         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5042         GNU_USER_DYNAMIC_LINKER.
5043         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5044         GNU_USER_TARGET_OS_CPP_BUILTINS.
5045         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5046         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5047         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5048         GNU_USER_DYNAMIC_LINKER.
5049         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5050         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5051         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5052         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5053         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5054         GNU_USER_DYNAMIC_LINKER.
5055         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5056         GNU_USER_DYNAMIC_LINKERN32.
5057         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5058         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5059         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5060         GNU_USER_DYNAMIC_LINKER32.
5061         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5062         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5063         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5064         GNU_USER_DYNAMIC_LINKER.
5065         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5066         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5067         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5068         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5069         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5070         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5071         GNU_USER_DYNAMIC_LINKER32.
5072         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5073         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5074         GNU_USER_DYNAMIC_LINKER.
5075         * config/s390/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_LINKER32 to
5078         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5079         GNU_USER_DYNAMIC_LINKER64.
5080         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5081         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5082         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5083         GNU_USER_DYNAMIC_LINKER.
5084         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5085         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5086         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5087         GNU_USER_DYNAMIC_LINKER.
5088         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5089         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5090         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5091         GNU_USER_DYNAMIC_LINKER32.
5092         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5093         GNU_USER_DYNAMIC_LINKER64.
5094         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5095         GNU_USER_DYNAMIC_LINKER64.
5096         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5097         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5098         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5099         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5100         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5101
5102 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5103
5104         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5105         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5106         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5107         GNU_USER_DYNAMIC_LINKER.
5108         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5109         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5110         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5111         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5112         GNU_USER_DYNAMIC_LINKER64.
5113         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5114         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5115         GNU_USER_LINK_EMULATION.
5116         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5117         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5118         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5119         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5120         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5121         CPP_SPEC, CC1_SPEC): Remove.
5122         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5123         (GNU_USER_DYNAMIC_LINKER): Define.
5124         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5125         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5126         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5127         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5128         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5129         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5130         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5131         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5132         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5133         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5134         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5135         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5136         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5137         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5138         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5139         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5140         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5141         GNU_USER_DYNAMIC_LINKER.
5142         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5143         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5144         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5145         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5146         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5147         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5148         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5149         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5150         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5151         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5152
5153 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5154
5155         PR target/9601
5156         PR target/11772
5157         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5158         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5159         comment.
5160         (ix86_is_msabi_thiscall): Removed.
5161         (ix86_is_type_thiscall): Likewise.
5162         (ix86_get_callcvt): New function.
5163         (ix86_comp_type_attributes): Simplify check.
5164         (ix86_function_regparm): Use ix86_get_callcvt for calling
5165         convention attribute checks.
5166         (ix86_return_pops_args): Likewise.
5167         (ix86_static_chain): Likewise.
5168         (x86_this_parameter): Likewise.
5169         (x86_output_mi_thunk): Likewise.
5170         (ix86_function_type_abi): Optimize check for types without attributes.
5171         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5172         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5173         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5174         by flag-values.
5175         (IX86_BASE_CALLCVT): Helper macro.
5176         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5177         Use ix86_get_callcvt for calling convention attribute checks and avoid
5178         symbol-decoration for stdcall in TARGET_RTD case.
5179         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5180         Likewise.
5181         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5182         for declaration.
5183
5184 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5185
5186         * config/i386/sse.md (VI_128): New mode iterator.
5187         (VI12_128): Rename from SSEMODE12.
5188         (VI14_128): Rename from SSEMODE14.
5189         (VI124_128): New mode iterator.
5190         (VI24_128): Rename from SSEMODE248.
5191         (VI248_128): Rename from SSEMODE248.
5192         (SSEMODE124C8): Remove.
5193         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5194         (*sse2_<plusminus_insn><mode>3): Merge with
5195         *avx_<plusminus_insn><mode>3.
5196         (*mulv8hi3): Merge with *avx_mulv8hi3.
5197         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5198         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5199         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5200         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5201         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5202         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5203         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5204         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5205         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5206         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5207         (*<smaxmin:code>v8hi3): Ditto.
5208         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5209         (*<smaxmin:code>v16qi3): Ditto.
5210         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5211         (*sse2_eq<mode>3): Ditto.
5212         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5213         (*sse2_gt<mode>3): Ditto.
5214         (vcondv2di): Split out of vcond<mode>.
5215         (vconduv2di): Split out of vcondu<mode>.
5216
5217 2011-04-11  Richard Guenther  <rguenther@suse.de>
5218
5219         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5220         before calling tree_low_cst.
5221
5222 2011-04-11  Richard Guenther  <rguenther@suse.de>
5223
5224         * stor-layout.c (layout_type): Compute all array index size operations
5225         in the original type.
5226         (initialize_sizetypes): Add comment.
5227         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5228
5229 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5230
5231         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5232
5233 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5234
5235         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5236         of cgraph_node, handle NULL return value.
5237         (cgraph_global_info): Likewise.
5238         (cgraph_rtl_info): Likewise.
5239         * tree-inline.c (estimate_num_insns): Likewise.
5240         * gimplify.c (unshare_body): Likewise.
5241         (unvisit_body): Likewise.
5242         (gimplify_body): Likewise.
5243         * predict.c (optimize_function_for_size_p): Likewise.
5244         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5245         (call_may_clobber_ref_p_1): Likewise.
5246         * varasm.c (function_section_1): Likewise.
5247         (assemble_start_function): Likewise.
5248
5249 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5250
5251         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5252         of cgraph_node.
5253         * final.c (rest_of_clean_state): Likewise.
5254         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5255         * passes.c (pass_init_dump_file): Likewise.
5256         (execute_all_ipa_transforms): Likewise.
5257         (function_called_by_processed_nodes_p): Likewise.
5258         * predict.c (maybe_hot_frequency_p): Likewise.
5259         (probably_never_executed_bb_p): Likewise.
5260         (compute_function_frequency): Likewise.
5261         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5262         (unnest_nesting_tree_1): Likewise.
5263         (lower_nested_functions): Likewise.
5264         * tree-optimize.c (execute_fixup_cfg): Likewise.
5265         (tree_rest_of_compilation): Likewise.
5266         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5267         * tree-sra.c (ipa_early_sra): Likewise.
5268         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5269         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5270         * ipa.c (record_cdtor_fn): Likewise.
5271         * ipa-inline.c (cgraph_early_inlining): Likewise.
5272         (compute_inline_parameters_for_current): Likewise.
5273         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5274         * ipa-pure-const.c (local_pure_const): Likewise.
5275         * ipa-split.c (split_function): Likewise.
5276         (execute_split_functions): Likewise.
5277         * cgraphbuild.c (build_cgraph_edges): Likewise.
5278         (rebuild_cgraph_edges): Likewise.
5279         (cgraph_rebuild_references): Likewise.
5280         (remove_cgraph_callee_edges): Likewise.
5281         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5282         (verify_cgraph_node): Likewise.
5283         (cgraph_analyze_functions): Likewise.
5284         (cgraph_preserve_function_body_p): Likewise.
5285         (save_inline_function_body): Likewise.
5286         (save_inline_function_body): Likewise.
5287         * tree-inline.c (copy_bb): Likewise.
5288         (optimize_inline_calls): Likewise.
5289
5290 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5291
5292         PR tree-optimization/48195
5293         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5294         ipa_check_create_edge_args.
5295         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5296         ipa_check_create_edge_args.
5297         * ipa-inline.c (inline_generate_summary): Do not call
5298         ipa_check_create_node_params and ipa_check_create_edge_args.
5299         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5300         ipa_check_create_edge_args.
5301
5302 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5303
5304         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5305         instead of loop.
5306         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5307         * function.c (record_hard_reg_sets): Likewise.
5308         * ira.c (compute_regs_asm_clobbered): Likewise.
5309         * sched-deps.c (sched_analyze_1): Likewise.
5310         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5311
5312 2011-04-09  Xinliang David Li  <davidxl@google.com>
5313
5314         PR tree-optimization/PR48484
5315         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5316         has_valid_pred lazily
5317
5318 2011-04-09  Duncan Sands  <baldrick@free.fr>
5319
5320         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5321
5322 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5323
5324         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5325         cost of I0 to zero at the end, if any.
5326
5327 2011-04-08  Xinliang David Li  <davidxl@google.com>
5328
5329         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5330         to insane profile data.
5331
5332 2011-04-08  Xinliang David Li  <davidxl@google.com>
5333
5334         * ipa-cp.c (ipcp_update_profiling): Correct
5335          negative scale factor due to insane profile data.
5336
5337 2011-04-08  Xinliang David Li  <davidxl@google.com>
5338
5339         * final.c (dump_basic_block_info): New function.
5340         (final): Dump basic block.
5341         (final_scan_insn): Remove old dump.
5342
5343 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5344
5345         PR target/47829
5346         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5347         crtbegin/crtend.
5348
5349 2011-04-08  Michael Matz  <matz@suse.de>
5350
5351         PR middle-end/48389
5352         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5353         functions.
5354         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5355         * rtl.h (rebuild_jump_labels_chain): Declare.
5356         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5357         insns inserted on edges.
5358
5359 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5360
5361         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5362         * config/arm/arm-arches.def: New.
5363         * config/arm/arm-opts.h: New.
5364         * config/arm/genopt.sh: New.
5365         * config/arm/arm-tables.opt: New (generated).
5366         * config/arm/arm.c (arm_handle_option, arm_target_help,
5367         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5368         (all_architectures): Get most table contents from arm-arches.def.
5369         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5370         arm_selected_tune here.
5371         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5372         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5373         (march=, mcpu=, mtune=): Use Enum and Var.
5374         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5375         (arm.o): Update dependencies.
5376
5377 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5378
5379         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5380         of header_file.
5381         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5382         (write_typed_alloc_defns): Likewise.
5383         (main): Calls write_typed_alloc_defns with output_header.
5384
5385 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5386
5387         PR inline-asm/48435
5388         * ira-color.c (setup_profitable_hard_regs): Add comments.
5389         Don't take prohibited hard regs into account.
5390         (setup_conflict_profitable_regs): Rename to
5391         get_conflict_profitable_regs.
5392         (check_hard_reg_p): Check prohibited hard regs.
5393
5394 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5395
5396         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5397         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5398         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5399
5400 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5401
5402         PR target/48366
5403         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5404         move from floating point to shift amount register.
5405         (emit_move_sequence): Remove secondary reload support for floating
5406         point to shift amount amount register copies.
5407         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5408         amount register copies.
5409         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5410         register, return false if mode isn't a scalar integer mode.
5411         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5412
5413 2011-04-08  Richard Guenther  <rguenther@suse.de>
5414
5415         * gimple.c (gimple_call_flags): Remove kludge.
5416
5417 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5418
5419         * sel-sched.c (sel_region_init): Move call to
5420         sel_setup_region_sched_flags after setup_current_loop_nest.
5421
5422 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5423
5424         PR rtl-optimization/48272
5425         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5426         init_insn_reg_pressure_info.  Adjust a caller.
5427         * sched-int.h (init_insn_reg_pressure_info): Declare.
5428         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5429         when sched-pressure is enabled.
5430
5431 2011-04-08  Richard Guenther  <rguenther@suse.de>
5432
5433         * gimple.c (gimple_set_modified): Do not queue calls to
5434         MODIFIED_NORETURN_CALLS here ...
5435         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5436
5437 2011-04-08  Richard Guenther  <rguenther@suse.de>
5438
5439         PR lto/48467
5440         * toplev.c (lang_dependent_init): Do not open asm_out_file
5441         in WPA mode, nor perform debug machinery initialization.
5442         (finalize): Do not unlink asm_out_file in WPA mode.
5443
5444 2011-04-08  Richard Guenther  <rguenther@suse.de>
5445
5446         * gimple.h (gimple_call_fntype): New function.
5447         (gimple_call_return_type): Use it.
5448         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5449         * gimple-low.c (gimple_check_call_args): Likewise.
5450         * gimple.c (gimple_call_flags): Likewise.
5451         (gimple_call_arg_flags): Likewise.
5452         (gimple_call_return_flags): Likewise.
5453         * tree-cfg.c (verify_gimple_call): Likewise.
5454         (do_warn_unused_result): Likewise.
5455         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5456         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5457
5458 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5459
5460         PR rtl-optimization/48235
5461         * sel-sched.c (code_motion_process_successors): Recompute the last
5462         insn in basic block if control flow changed.
5463         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5464         Update condition for ilist_remove.
5465
5466 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5467
5468         PR rtl-optimization/48302
5469         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5470         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5471         it to record added preheader blocks.
5472         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5473         on to sel_add_loop_preheaders.
5474         (sel_region_init): Move call to setup_current_loop_nest after
5475         sel_init_bbs.
5476
5477 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5478
5479         PR target/48273
5480         * cfgloop.h (loop_has_exit_edges): New helper.
5481         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5482         non-clonable.
5483         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5484         that have no exit edges.
5485
5486 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5487
5488         PR rtl-optimization/48442
5489         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5490         all callers.  Adjust assert.
5491
5492 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5493
5494         PR tree-optimization/48377
5495         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5496         is_packed to true even for types with smaller TYPE_ALIGN than
5497         TYPE_SIZE.
5498
5499 2011-04-08  Richard Guenther  <rguenther@suse.de>
5500
5501         PR bootstrap/48513
5502         * doc/tm.texi: Re-generate.
5503
5504 2011-04-08  Wei Guozhi  <carrot@google.com>
5505
5506         PR target/47855
5507         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5508         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5509         * config/arm/arm.md (*push_multi): Change the length computation to
5510         call a C function.
5511
5512 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5513
5514         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5515         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5516         * doc/tm.texi: Regenerate.
5517         * system.h (ASM_OUTPUT_BSS): Poison.
5518         * varasm.c (asm_output_bss): Remove function.
5519         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5520
5521         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5522         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5523         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5524         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5525         Likewise.
5526         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5527         Likewise.
5528         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5529         Likewise.
5530         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5531
5532 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5533
5534         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5535         EnumValue lines.
5536
5537 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5538
5539         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5540         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5541         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5542         OPT_mcpu32.
5543         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5544         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5545         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5546         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5547         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5548         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5549         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5550         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5551         options.  Don't map other m68k options manually.  Don't handle
5552         old-style options as canonical.
5553         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5554         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5555
5556 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5557
5558         * basic-block.h (force_nonfallthru): Move to...
5559         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5560         (force_nonfallthru): ...here.
5561         * cfghooks.c (force_nonfallthru): New function.
5562         * cfgrtl.c (force_nonfallthru): Rename into...
5563         (rtl_force_nonfallthru): ...this.
5564         (commit_one_edge_insertion): Do not set AUX field.
5565         (commit_edge_insertions): Do not discover new basic blocks.
5566         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5567         (cfg_layout_rtl_cfg_hooks): Likewise.
5568         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5569         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5570         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5571
5572 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5573
5574         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5575         Remove macros.
5576
5577 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5578
5579         * config/i386/sse.md: Update copyright year.
5580         (avxcvtvecmode): Remove.
5581         (sse_movhlps): Merge with *avx_movhlps.
5582         (sse_movlhps): Merge with *avx_movlhps.
5583         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5584         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5585         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5586         (sse_loadhps): Merge with *avx_loadhps.
5587         (sse_storelps): Merge with *avx_storelps.
5588         (sse_loadlps): Merge with *avx_loadlps.
5589         (sse_movss): Merge with *avx_movss.
5590         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5591         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5592         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5593         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5594         (vec_set<mode>_0): Ditto.
5595         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5596         (sse4_1_insertps): Merge with *avx_insertps.
5597         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5598         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5599         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5600         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5601         (sse2_storehpd): Merge with *avx_storehpd.
5602         (sse2_loadhpd): Merge with *avx_loadhpd.
5603         (sse2_loadlpd): Merge with *avx_loadlpd.
5604         (sse2_movsd): Merge with *avx_movsd.
5605         (*vec_concatv2df): Merge with *vec_concatv2df.
5606
5607 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
5608
5609         PR debug/48343
5610         * combine.c (combine_instructions): Add last_combined_insn,
5611         update it if insn is after it, pass it to all try_combine calls.
5612         (try_combine): Add last_combined_insn parameter, pass it instead of
5613         i3 to propagate_for_debug.
5614
5615 2011-04-07  Nick Clifton  <nickc@redhat.com>
5616
5617         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5618         to handle MDR <-> data register transfers.
5619         (movhi_internal): Likewise.
5620
5621 2011-04-07  Alan Modra  <amodra@gmail.com>
5622
5623         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5624         previous stack info.
5625
5626 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5627
5628         PR target/43920
5629         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5630         flow_find_cross_jump.  Swap variables to implement backward replacement.
5631         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5632
5633 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5634
5635         PR target/43920
5636         * cfgcleanup.c (walk_to_nondebug_insn): New function.
5637         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
5638         and bb2.
5639         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5640         src1 or src2.  Redirect edges to the last basic block.  Update
5641         frequency and count on multiple basic blocks in case of fallthru.
5642
5643 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5644
5645         PR target/43920
5646         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5647         function.
5648         (old_insns_match_p): Change return type.  Replace return false/true
5649         with return dir_none/dir_both.  Use can_replace_by.
5650         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
5651         direction from dir_p.  Register replacement direction in dir, last_dir
5652         and afterlast_dir.  Handle new return type of old_insns_match_p using
5653         merge_dir.  Return replacement direction in dir_p.
5654         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5655         return type of old_insns_match_p.
5656         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5657         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5658         flow_find_cross_jump.
5659         * basic-block.h (enum replace_direction): New type.
5660         (flow_find_cross_jump): Add parameter to declaration.
5661
5662 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5663
5664         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5665         (AVXMODEDCVTPS2DQ): Ditto.
5666         (VEC_FLOAT_MODE): Ditto.
5667         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
5668         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5669         (<any_logic:code><mode>3): Use VF mode iterator.
5670         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5671         Use VF mode iterator.
5672         (copysign<mode>3): Use VF mode iterator.
5673         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
5674         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5675         (*<any_logic:code><MODEF:mode>3): Merge with
5676         *avx_<any_logic:code><MODEF:mode>3.
5677         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5678         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5679         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5680         (avx_cvtdq2ps<avxmodesuffix>): Remove.
5681         (sse2_cvtdq2ps): Use %v modifier.
5682         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5683         (avx_cvtps2dq<avxmodesuffix>): Remove.
5684         (sse2_cvtps2dq): Use %v modifier.
5685         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5686         (avx_cvttps2dq<avxmodesuffix>): Remove.
5687         (sse2_cvttps2dq): Use %v modifier.
5688         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5689         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5690         (sse2_cvtsd2siq): Fix insn template.
5691         (sse2_cvtsd2siq_2): Ditto.
5692         (sse2_cvttsd2siq): Ditto.
5693         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5694         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5695
5696 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5697
5698         * gcov-io.c: Use GCC Runtime Library Exception.
5699
5700 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
5701
5702         PR debug/48466
5703         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5704         as base_reg whatever register reg has been eliminated to, instead
5705         of hardcoding STACK_POINTER_REGNUM.
5706
5707 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5708
5709         * doc/tm.texi.in: Document C target hooks as separate from general
5710         target hooks.
5711         * doc/tm.texi: Regenerate.
5712         * genhooks.c (struct hook_desc): Add docname field.
5713         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
5714         docname field.
5715         (hook_array): Include c-target.def.
5716         (emit_documentation): Use docname field in output.
5717         (emit_init_macros): Take docname argument.  Only emit definitions
5718         for hooks matching docname.
5719         (main): Expect additional arguments in all cases.  Pass argument
5720         to emit_init_macros.
5721         * target.def: Move initial macro definitions and comments to
5722         target-hooks-macros.h.
5723         (gcc_targetcm): Move to c-family/c-target.def.
5724         * target.h (targetcm): Move declaration to c-family/c-target.h.
5725         * targhooks.c (default_handle_c_option): Move to
5726         c-family/c-opts.c.
5727         * targhooks.h (default_handle_c_option): Move declaration to
5728         c-family/c-common.h.
5729         * target-hooks-macros.h: New file.
5730         * config.gcc (target_has_targetcm): Define and use to add to
5731         c_target_objs and cxx_target_objs.
5732         * config/default-c.c: New file.
5733         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5734         of target.h and target-def.h.
5735         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5736         (darwin_objc_construct_string, darwin_cfstring_ref_p,
5737         darwin_check_cfstring_format_arg): Make static.
5738         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5739         TARGET_STRING_OBJECT_REF_TYPE_P,
5740         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5741         * config/darwin-protos.h (darwin_objc_construct_string,
5742         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5743         declare.
5744         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5745         TARGET_STRING_OBJECT_REF_TYPE_P,
5746         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
5747         * config/t-darwin (darwin-c.o): Update dependencies.
5748         * system.h (TARGET_HAS_TARGETCM): Poison.
5749         * Makefile.in (TARGET_H): Update.
5750         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5751         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5752         (default-c.o): New target.
5753         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
5754         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
5755         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
5756         c-target.def.
5757         (build/genhooks.o): Update dependencies.
5758
5759 2011-04-06  Richard Guenther  <rguenther@suse.de>
5760
5761         * ipa-inline.c (enum inlining_mode): Remove.
5762         (cgraph_flatten): Use some other token.
5763         (cgraph_edge_early_inlinable_p): New function, split out from ...
5764         (cgraph_perform_always_inlining): New function, split out from ...
5765         (cgraph_decide_inlining_incrementally): ... here.
5766         (cgraph_mark_inline_edge): Adjust.
5767         (cgraph_early_inlining): Re-structure.
5768         (pass_early_inline): Require SSA form.
5769
5770 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
5771             Julian Brown  <julian@codesourcery.com>
5772             Mark Shinwell  <shinwell@codesourcery.com>
5773
5774         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5775         LO_REGS only for Thumb-1.
5776         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5777         be used in short instructions when optimising for size on Thumb-2.
5778
5779 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5780
5781         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5782         associated with user returns to be preserved.
5783
5784 2011-04-06  Tristan Gingold  <gingold@adacore.com>
5785
5786         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5787         symbol_queue_size, DBXOUT_DECR_NESTING,
5788         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5789         if XCOFF_DEBUGGING_INFO.
5790
5791 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5792
5793         * config/i386/i386.md (attribute isa): New.
5794         (attribute enabled): New.
5795         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5796         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5797         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5798         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5799         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5800         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5801         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5802         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5803
5804         * config/i386/sse.md (VF): New mode iterator.
5805         (VF1): Ditto.
5806         (VF2): Ditto.
5807         (VF_128): Ditto.
5808         (SSEMODEF4): Remove.
5809         (attribute sse): Handle V8SF and V4DF modes.
5810         (<absneg:code><mode>2): Use VF mode iterator.
5811         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
5812         mode iterator.
5813         (<plusminus_insn><mode>3): Use VF mode iterator.
5814         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5815         Use VF mode iterator.
5816         (<sse>_vm<plusminus_insn><mode>3): Merge with
5817         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
5818         (mul<mode>3): Use VF mode iterator.
5819         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
5820         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
5821         mode iterator.
5822         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5823         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5824         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
5825         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
5826         mode iterator.
5827         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5828         Use VF1 mode iterator.
5829         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5830         (sqrt<VF2:mode>2): New expander.
5831         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5832         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5833         and sqrtv2df2.  Use VF mode iterator.
5834         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
5835         mode iterator.
5836         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5837         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5838         Use VF1 mode iterator.
5839         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5840         (<smaxmin:code><mode>3): Use VF mode iterator.
5841         (*<smaxmin:code><mode>3_finite): Merge with
5842         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
5843         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5844         (<sse>_vm<smaxmin:code><mode>2): Merge with
5845         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
5846         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
5847         mode iterator.
5848         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
5849         mode iterator.
5850         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5851         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5852         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5853         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5854         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
5855         VF mode iterator.
5856         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5857         Use VF_128 mode iterator.
5858         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
5859         mode iterator.
5860         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
5861         VF_128 mode iterator.
5862         (vcond<mode>): Use VF mode iterator.
5863         * config/i386/predicates.md (sse_comparison_operator): Merge with
5864         avx_comparison_float_operator.  Do not declare as special_predicate.
5865         * config/i386/i386.c (struct builtin_description): Update for renamed
5866         compare patterns.
5867         (ix86_expand_args_builtin): Ditto.
5868         (ix86_expand_sse_compare_mask): Ditto.
5869
5870 2011-04-06  Richard Guenther  <rguenther@suse.de>
5871
5872         * tree-inline.c (estimate_num_insns): For calls simply account
5873         for all passed arguments and a used return value.
5874
5875 2011-04-06  Richard Guenther  <rguenther@suse.de>
5876
5877         PR tree-optimization/47663
5878         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5879         call_stmt_time fields.
5880         (cgraph_edge_inlinable_p): Declare.
5881         (cgraph_edge_recursive_p): New inline function.
5882         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5883         (cgraph_clone_edge): Copy it.
5884         * ipa-inline.c (cgraph_estimate_edge_time): New function.
5885         Account for call stmt time.
5886         (cgraph_estimate_time_after_inlining): Take edge argument.
5887         (cgraph_estimate_edge_growth): Account call stmt size.
5888         (cgraph_estimate_size_after_inlining): Take edge argument.
5889         (cgraph_mark_inline_edge): Adjust.
5890         (cgraph_check_inline_limits): Likewise.
5891         (cgraph_recursive_inlining_p): Remove.
5892         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5893         (cgraph_decide_recursive_inlining): Take edge argument and
5894         adjust.
5895         (cgraph_decide_inlining_of_small_functions): Do not avoid
5896         diags for recursive inlining here.
5897         (cgraph_flatten): Adjust.
5898         (cgraph_decide_inlining_incrementally): Likewise.
5899         (estimate_function_body_sizes): Remove call cost handling.
5900         (compute_inline_parameters): Initialize caller edge call costs.
5901         (cgraph_estimate_edge_growth): New function.
5902         (cgraph_estimate_growth): Use it.
5903         (cgraph_edge_badness): Likewise.
5904         (cgraph_check_inline_limits): Take an edge argument.
5905         (cgraph_decide_inlining_of_small_functions): Adjust.
5906         (cgraph_decide_inlining): Likewise.
5907         * tree-inline.c (estimate_num_insns): Only account for call
5908         return value if it is used.
5909         (expand_call_inline): Avoid diagnostics on recursive inline
5910         functions here.
5911         * lto-cgraph.c (lto_output_edge): Output edge call costs.
5912         (input_edge): Input edge call costs.
5913
5914 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5915
5916         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
5917
5918 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5919
5920         * doc/invoke.texi (Spec Files): Fix typo.
5921
5922 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5923
5924         * profile.c (branch_prob): Move declaration of local variable.  Remove
5925         obsolete ??? comment.  Expand the location explicitly instead of using
5926         the LOCATION_FILE and LOCATION_LINE macros.
5927
5928 2011-04-06  Wei Guozhi  <carrot@google.com>
5929
5930         PR target/47855
5931         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
5932         (arm_cond_branch): Likewise.
5933         (arm_cond_branch_reversed): Likewise.
5934         (arm_jump): Likewise.
5935         (push_multi): Likewise.
5936         * config/arm/constraints.md (Py): New constraint.
5937
5938 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5939
5940         PR bootstrap/48471
5941         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
5942         Move these...
5943         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
5944         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
5945         #ifdef DBX_DEBUGGING_INFO.
5946
5947 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
5948
5949         PR bootstrap/48403
5950         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
5951         if old and new states differ.
5952
5953 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5954
5955         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
5956         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
5957         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5958         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
5959         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
5960         mcfv4e): Use Alias.
5961         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
5962         ColdFire options to -mcpu= options.
5963
5964 2011-04-05  Jeff Law  <law@redhat.com>
5965
5966         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
5967         check if BB is a successor of LOOP->header and return
5968         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
5969
5970 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5971
5972         * cprop.c (struct reg_use): Remove.
5973         (reg_use_table): Make an array of RTX.
5974         (find_used_regs, constprop_register, local_cprop_pass,
5975         bypass_block): Simplify users of reg_use_table.
5976         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
5977         on one of the uses found by find_used_regs.
5978
5979 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5980
5981         PR bootstrap/48469
5982         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
5983         declaration.
5984
5985 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5986
5987         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
5988         as an rtx.
5989         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
5990
5991 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5992
5993         PR middle-end/48441
5994         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
5995
5996 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5997
5998         * combine.c: Include obstack.h.
5999         (struct insn_link): Define.
6000         (uid_log_links): Adjust type.
6001         (FOR_EACH_LOG_LINK): New macro.
6002         (insn_link_obstack): Declare.
6003         (alloc_insn_link): Define.
6004         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6005         type of link variables.
6006         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6007         (try_combine, record_promoted_values, distribute_notes): Likewise.
6008         (distribute_links): Likewise.  Tweak prototype.
6009         (clear_log_links): Delete.
6010         (adjust_for_new_dest): Call alloc_insn_link.
6011         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6012
6013 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6014
6015         * gcse.c (modify_mem_list): Convert to an array of VECs.
6016         (canon_modify_mem_list, compute_transp): Tweak formatting.
6017         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6018         (load_killed_in_block_p): Likewise.
6019         (record_last_mem_set_info): Likewise.
6020         (clear_modify_mem_tables): Likewise.
6021
6022 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6023
6024         PR middle-end/48461
6025         * function.c (emit_use_return_register_into_block): Only define if
6026         HAVE_return.
6027
6028 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6029
6030         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6031
6032 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6033
6034         * config/rx/rx-opts.h: New.
6035         * config/rx/rx.c (rx_cpu_type): Remove.
6036         (rx_handle_option): Don't assert that global structures are in
6037         use.  Access variables via opts pointer.  Defer most handling of
6038         OPT_mint_register_.  Use error_at.
6039         (rx_option_override): Handle deferred OPT_mint_register_ here.
6040         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6041         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6042         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6043         (rx_cpu_types): New Enum and EnumValue entries.
6044         (mint-register=): Use Defer and use Var accordingly.
6045
6046 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6047
6048         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6049         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6050         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6051         Move these...
6052         (debug_free_queue, debug_nesting, symbol_queue_index):
6053         ...and these...
6054         * dbxout.c: ...to here.  Make static.
6055
6056 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6057
6058         * gcse.c (modify_pair): Define.  Define a VEC of it.
6059         (canon_modify_mem_list): Convert to an array of VECs.
6060         (free_insn_expr_list_list): Delete.
6061         (clear_modify_mem_tables): Call VEC_free instead.
6062         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6063         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6064         (canon_list_insert, compute_transp): Likewise.
6065
6066 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6067
6068         PR target/43920
6069         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6070         for size.
6071
6072 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6073
6074         PR target/43920
6075         * function.c (emit_use_return_register_into_block): New function.
6076         (thread_prologue_and_epilogue_insns): Use
6077         emit_use_return_register_into_block.
6078
6079 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6080
6081         PR target/43920
6082         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6083         insn.
6084
6085 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6086
6087         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6088
6089 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6090
6091         * config/arm/arm.md (define_constants for unspec): Replace with
6092         define_c_enum.
6093         (define_constants for unspecv): Replace with define_c_enum.
6094         * config/arm/neon.md (define_constants for unspec): Replace with
6095         define_c_enum.
6096
6097 2011-04-04  Richard Henderson  <rth@redhat.com>
6098
6099         PR bootstrap/48400
6100         * dwarf2out.c (output_line_info): Always emit line info from
6101         at least one section.
6102         (dwarf2out_init): Create text_section_line_info here ...
6103         (set_cur_line_info_table): ... not here.
6104
6105 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6106
6107         PR target/48380
6108         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6109         not called.
6110
6111         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6112
6113 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6114
6115         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6116         (expr_equiv_p): Remove.
6117         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6118         (hash_scan_set): Update call to insert_set_in_table.
6119         (dump_hash_table): Dump <dest, src> pair.
6120         (lookup_set): Simplify.  Lookup <dest, src> pair.
6121         (compute_transp): Remove, fold heavily simplified code into...
6122         (compute_local_properties): ...here.  Expect COMP and TRANSP
6123         unconditionally.
6124         (find_avail_set): Take set directly from struct expr.
6125         (find_bypass-set): Likewise.
6126         (bypass_block): Likewise.
6127         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6128
6129         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6130         checks on form of COND from find_implicit_sets to here.
6131         (find_implicit_sets): Cleanup control flow. Split critical edges
6132         if it exposes implicit sets.  Allocate/resize implicit_sets as
6133         necessary.
6134         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6135         changed something.  Run df_analyze after find_implicit_sets if any
6136         edges were split.  Do not allocate implicit_sets here.
6137
6138         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6139         (gcse_obstack): Renamed to cprop_obstack.
6140         (GNEW, GNEWVEC, GNEWVAR): Remove.
6141         (gmalloc): Remove.
6142         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6143         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6144         (gcse_alloc): Likewise, and rename to cprop_alloc.
6145         (alloc_gcse_men, free_gcse_mem): Remove.
6146         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6147         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6148         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6149
6150         * cprop.c (oprs_not_set_p): Remove.
6151         (mark_set, mark_clobber): Remove.
6152         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6153         (reg_not_set_p): New function.
6154         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6155         (cprop_insn): Likewise.
6156         (cprop_jump): Use FOR_EACH_EDGE.
6157
6158 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6159
6160         PR bootstrap/48403
6161         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6162         (rank_for_schedule): Use scheduled_insns vector instead of
6163         last_scheduled_insn.
6164         (ok_for_early_queue_removal): Likewise.
6165         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6166         we have a dbg_cnt.
6167         (choose_ready): Likewise.
6168         (commit_schedule): Use VEC_iterate.
6169         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6170         a dbg_cnt, use it and ensure the first insn is in the ready list.
6171         (haifa_sched_init): Allocate scheduled_insns.
6172         (sched_extend_ready_list): Don't allocate it; reserve space.
6173         (haifa_sched_finish): Free it.
6174
6175 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6176
6177         * optc-gen.awk: Always remove type from Variable entry before
6178         recording in var_seen.
6179
6180 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6181
6182         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6183         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6184         call to tidy_fallthru_edges.
6185
6186 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6187
6188         * doc/options.texi (ToLower): Document.
6189         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6190         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6191         * opts.h (cl_option): Add cl_tolower field.
6192         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6193         arguments with lowercase strings.
6194         * config/rx/rx.opt (mcpu=): Add ToLower.
6195         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6196         argument.
6197
6198 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6199
6200         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6201
6202 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6203
6204         * config/vax/vax.c: Include reload.h.
6205
6206 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6207
6208         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6209         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6210         (sparc_preferred_reload_class): New function.
6211
6212 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6213
6214         PR debug/48401
6215         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6216         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6217
6218 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6219
6220         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6221         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6222
6223 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6224
6225         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6226         (ASM_OUTPUT_ALIGNED_BSS): Define.
6227
6228 2011-04-03  Michael Matz  <matz@suse.de>
6229
6230         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6231         and next_slot members.
6232         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6233         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6234         (lto_streamer_cache_append): Declare.
6235         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6236         unsigned index, remove offset parameter, ensure that we append
6237         or update existing entries.
6238         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6239         parameter, update next_slot for append.
6240         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6241         parameter.
6242         (lto_streamer_cache_insert_at): Likewise.
6243         (lto_streamer_cache_append): New function.
6244         (lto_streamer_cache_lookup): Use unsigned index.
6245         (lto_streamer_cache_get): Likewise.
6246         (lto_record_common_node): Don't test tree_node_can_be_shared.
6247         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6248         (lto_streamer_cache_delete): Don't free offsets member.
6249         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6250         (lto_output_string_with_length): Use lto_output_data_stream.
6251         (lto_output_tree_header): Remove ix parameter, don't write it.
6252         (lto_output_builtin_tree): Likewise.
6253         (lto_write_tree): Adjust callers to above, don't track and write
6254         offset, write unsigned index.
6255         (output_unreferenced_globals): Don't emit all global vars.
6256         (write_global_references): Use unsigned indices.
6257         (lto_output_decl_state_refs): Likewise.
6258         (write_symbol): Likewise.
6259         * lto-streamer-in.c (lto_input_chain): Move earlier.
6260         (input_function): Use unsigned index.
6261         (input_alias_pairs): Don't read and then ignore all global vars.
6262         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6263         don't pass it back, use lto_streamer_cache_append.
6264         (lto_register_var_decl_in_symtab): Use unsigned index.
6265         (lto_register_function_decl_in_symtab): Likewise.
6266         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6267         index.
6268         (lto_get_builtin_tree): Don't read index, use
6269         lto_streamer_cache_append.
6270         (lto_read_tree): Adjust call to lto_materialize_tree.
6271
6272         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6273         don't use function calls in arguments to MIN.
6274
6275         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6276         twice.
6277
6278         * gimple.c (gimple_type_leader_entry): Mark deletable.
6279
6280 2011-04-03  Alan Modra  <amodra@gmail.com>
6281
6282         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6283
6284 2011-04-03  Michael Matz  <matz@suse.de>
6285
6286         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6287         an integer.
6288         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6289
6290 2011-04-03  Michael Matz  <matz@suse.de>
6291
6292         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6293         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6294         without function context.
6295         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6296         current_function_decl and cfun.
6297
6298 2011-04-03  Michael Matz  <matz@suse.de>
6299
6300         * tree.c (decl_init_priority_insert): Don't create entry for
6301         default priority.
6302         (decl_fini_priority_insert): Ditto.
6303         (fields_compatible_p, find_compatible_field): Remove.
6304         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6305         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6306
6307 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6308
6309         * combine.c (try_combine): Remove useless local variable.
6310
6311 2011-04-03  Richard Guenther  <rguenther@suse.de>
6312             Ira Rosen  <ira.rosen@linaro.org>
6313
6314         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6315         non-variable offsets and compare the remaining bases of the two
6316         accesses instead of looking for exact same data-ref.
6317
6318 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6319
6320         PR target/48416
6321         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6322
6323         * i386.c (ix86_is_msabi_thiscall): New helper function.
6324         (ix86_is_type_thiscall): New helper function.
6325         (ix86_comp_type_attributes): Handle thiscall for method-functions
6326         special.
6327         (init_cumulative_args): Likewise.
6328         (find_drap_reg): Likewise.
6329         (ix86_static_chain): Likewise.
6330         (x86_this_parameter): Likewise.
6331         (x86_output_mi_thunk): Likewise.
6332
6333 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6334             Nicolas Setton  <setton@adacore.com>
6335             Eric Botcazou  <ebotcazou@adacore.com>
6336
6337         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6338         (add_gnat_descriptive_type_attribute): New function.
6339         (gen_array_type_die): Call it.
6340         (gen_enumeration_type_die): Likewise.
6341         (gen_struct_or_union_type_die): Likewise.
6342         (modified_type_die): Likewise.
6343         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6344         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6345         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6346
6347 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6348
6349         PR bootstrap/48148
6350         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6351         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6352
6353         Revert:
6354         2011-03-17  Richard Guenther  <rguenther@suse.de>
6355
6356         PR bootstrap/48148
6357         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6358         origin for decls in other ltrans units.
6359         (input_varpool_node): Likewise.
6360
6361 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6362
6363         PR middle-end/48335
6364         * expr.c (expand_assignment): Handle all possibilities
6365         if TO_RTX is CONCAT.
6366         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6367         (store_split_bit_field): If SUBREG_REG (op0) or
6368         op0 itself has smaller mode than word, return it
6369         for offset 0 and const0_rtx for out-of-bounds stores.
6370         If word is const0_rtx, skip it.
6371
6372 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6373
6374         * config/h8300/h8300.c (print_operand_address): Rename to...
6375         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6376         Call h8300_print_operand and h8300_print_operand_address instead of
6377         print_operand and print_operand_address. Declare.
6378         (print_operand): Renake to...
6379         (h8300_print_operand): ...this. Make static. Adjust comments.
6380         Call h8300_print_operand instead of print_operand. Declare.
6381         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6382         (h8300_register_move_cost): Likewise.
6383         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6384         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6385         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6386         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6387         * config/h8300/h8300-protos.h (print_operand): Delete.
6388         (print_operand_address): Delete.
6389
6390 2011-04-01  Richard Henderson  <rth@redhat.com>
6391
6392         PR 48400
6393         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6394         in strict mode before dwarf4.  Re-order tests to early out
6395         before switching sections.
6396
6397 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6398
6399         * config/h8300/constraints.md: New file.
6400         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6401         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6402         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6403         * config/h8300/predicates.md (bit_operand): Likewise.
6404         (incdec_operand): Use satisfies_constraint_M and
6405         satisfies_constraint_O.  Don't use C code block.
6406         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6407         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6408         (compute_mov_length): Use satisfies_constraint_G.
6409         (fix_bit_operand): Use satisfies_constraint_U.
6410         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6411         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6412         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6413         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6414         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6415         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6416         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6417         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6418         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6419         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6420         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6421         (EXTRA_MEMORY_CONSTRAINT): Delete.
6422
6423 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6424             Michael Meissner  <meissner@linux.vnet.ibm.com>
6425
6426         PR target/48262
6427         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6428         operands, as per the specifications.
6429
6430         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6431         (vec_extract_evenv4sf): Ditto.
6432         (vec_extract_evenv8hi): Ditto.
6433         (vec_extract_evenv16qi): Ditto.
6434         (vec_extract_oddv4si): Ditto.
6435
6436 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6437
6438         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6439         high_pc attribute if the CU has no associated code. Only output
6440         DW_AT_entry_pc for CU if not generating strict dwarf and
6441         dwarf_version < 4.
6442
6443 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6444
6445         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6446         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6447         out of ...
6448         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6449         * final.c (final_start_function): Call the new function rather
6450         than using a NULL argument for dwarf2out_frame_debug.
6451
6452         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6453         that contains the prologue.
6454
6455         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6456         changed.  Print it in debugging output.
6457
6458         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6459
6460         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6461         Split most of the code into...
6462         (begin_move_insn): ... here.  New function.
6463         (ebb_sched_info): Add a pointer to it.
6464         * haifa-sched.c (scheduled_insns): New static variable.
6465         (sched_extend_ready_list): Allocate it.
6466         (schedule_block): Use it to record the order of scheduled insns.
6467         Perform RTL changes to move insns only after all scheduling
6468         decisions have been made.
6469         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6470         begin_move_insn field.
6471         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6472         * sched-int.h (struct haifa_sched_info): Remove second argument
6473         from begin_schedule_ready hook.  Add new member begin_move_insn.
6474         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6475         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6476
6477         * haifa-sched.c (prune_ready_list): New function, broken out of
6478         schedule_block.
6479         (schedule_block): Use it.
6480
6481 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6482
6483         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6484
6485 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6486
6487         * config.gcc (*-*-mingw*): Allow as option the
6488         posix threading model.
6489         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6490         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6491         definition.
6492         (CPP_SPEC): Add pthread/no-pthread handling.
6493         (LIB_SPEC): Likewise.
6494         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6495         (LIB_SPEC): Likewise.
6496         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6497         flag to pass -pthread option for shared libgcc build.
6498         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6499         for shared libgcc build.
6500         * config/i386/t-mingw-pthread: New file.
6501         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6502         New define to enable use of library pthread by default.
6503         * config/i386/mingw.opt (pthread): New driver option.
6504         (no-pthread): New driver option.
6505         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6506         * config/i386/mingw-w64.opt: Likewise.
6507
6508 2011-04-01  Gary Funck  <gary@intrepid.com>
6509
6510         * c-decl.c (grokdeclarator): Fix formatting.
6511
6512 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6513
6514         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6515         instead of n_operands.
6516         (set_storage_via_setmem): Likewise.
6517         * optabs.c (maybe_gen_insn): Likewise.
6518         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6519         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6520         (mips_expand_builtin_direct): Likewise.
6521         * config/spu/spu.c (expand_builtin_args): Likewise.
6522
6523 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6524
6525         * recog.h (insn_data_d): Add n_generator_args.
6526         * genoutput.c (data): Likewise.
6527         (output_insn_data): Print it.
6528         (max_opno, num_dups): Delete.
6529         (scan_operands): Just fill in "d->operand[...]".
6530         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6531
6532 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6533
6534         * gensupport.h (pattern_stats): New structure.
6535         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6536         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6537         (max_operand_1, max_operand_vec): Delete.
6538         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6539
6540 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6541
6542         * emit-rtl.c (emit_pattern_after_setloc): New function.
6543         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6544         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6545         (emit_pattern_after): New function.
6546         (emit_insn_after, emit_jump_insn_after): Call it.
6547         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6548         (emit_pattern_before_setloc): New function.
6549         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6550         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6551         Likewise.
6552         (emit_pattern_before): New function.
6553         (emit_insn_before, emit_jump_insn_before): Call it.
6554         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6555
6556 2011-03-31  Richard Henderson  <rth@redhat.com>
6557
6558         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6559         (dw_separate_line_info_entry): Remove.
6560         (enum dw_line_info_opcode): New.
6561         (dw_line_info_entry): Use it.
6562         (dw_line_info_table, dw_line_info_table_p): New.
6563         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6564         (line_info_table, line_info_label_num): Remove.
6565         (line_info_table_in_use): Remove.
6566         (separate_line_info_table): Remove.
6567         (separate_line_info_table_allocated): Remove.
6568         (separate_line_info_table_in_use): Remove.
6569         (LINE_INFO_TABLE_INCREMENT): Remove.
6570         (line_info_label_num): New.
6571         (cur_line_info_table): New.
6572         (text_section_line_info, cold_text_section_line_info): New.
6573         (separate_line_info): New.
6574         (SEPARATE_LINE_CODE_LABEL): Remove.
6575         (print_dwarf_line_table): Remove.
6576         (debug_dwarf): Don't dump it.
6577         (output_one_line_info_table): New.
6578         (output_line_info): Use it.
6579         (new_line_info_table): New.
6580         (set_cur_line_info_table): New.
6581         (dwarf2out_switch_text_section): Use it.
6582         (dwarf2out_begin_function): Likewise.
6583         (push_dw_line_info_entry): New.
6584         (dwarf2out_source_line): Rewrite for new line info tables.
6585         (dwarf2out_init): Remove dead initailizations.
6586
6587 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6588
6589         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
6590         various flags.
6591         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6592         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6593         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6594         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6595         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6596         * opt-functions.awk (flag_init, switch_bit_fields): New.
6597         (switch_flags): Don't handle flags moved to bit-fields.  Don't
6598         generate CL_MISSING_OK or CL_SAVE.
6599         * optc-gen.awk: Update to generate bit-field output as well as
6600         flags field.
6601         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6602         bit-field instead of CL_REJECT_DRIVER flag.
6603         * opts-common.c (generate_canonical_option,
6604         decode_cmdline_option): Use bit-fields instead of CL_* flags.
6605         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6606         instead of CL_REJECT_NEGATIVE flag.
6607         * toplev.c (print_switch_values): Use cl_report bit-field instead
6608         of CL_REPORT flag.
6609
6610 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6611
6612         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6613         a zero minimum index only if it is redundant.
6614
6615 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6616
6617         PR rtl-optimization/48381
6618         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6619         instead of ira_class_hard_reg_index for calculating conflicting
6620         hard registers.
6621
6622 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6623
6624         * cprop.c: Clean up hash table building.
6625         (reg_avail_info): Remove.
6626         (oprs_available_p): Remove.
6627         (record_last_reg_set_info): Remove.
6628         (record_last_set_info): Remove.
6629         (reg_available_p): New function.
6630         (gcse_constant_p): Do not treat unfolded conditions as constants.
6631         (make_set_regs_unavailable): New function.
6632         (hash_scan_set): Simplify with new reg_available_p.
6633         (compute_hash_table_work): Traverse insns stream only once.
6634         Do not compute reg_avail_info. Traverse insns in reverse order.
6635         Record implicit sets after recording explicit sets from the block.
6636
6637 2011-03-31  Michael Matz  <matz@suse.de>
6638
6639         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
6640
6641 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
6642
6643         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6644         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6645         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6646         (h8300_mode_dependent_address_p): New function.
6647         (h8300_get_index): Make static.
6648
6649 2011-03-31  Jeff Law  <law@redhat.com>
6650
6651         * reload1.c (elimination_effects): Fix typo in recent change.
6652
6653         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
6654         typo potentially leading to null pointer dereference.
6655
6656         * caller-save.c (new_saved_hard_reg): Eliminate return value.
6657         (setup_save_areas): Corresponding changes to avoid useless
6658         assignments.
6659
6660         * jump.c (reversed_comparison_code_parts): Avoid successive return
6661         statements when REVERSE_CONDITION is defined.
6662
6663         * expr.c (expand_assignment): Avoid useless assignments.
6664         (expand_expr_real_1): Likewise.
6665         (expand_expr_real_2): Avoid useless statements.
6666
6667         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6668
6669         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6670
6671         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6672         statements.
6673
6674         * stmt.c (expand_expr_stmt): Avoid useless assignment.
6675
6676 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6677
6678         PR target/47109
6679         * doc/tm.texi.in (TARGET_VERSION): Remove.
6680         * doc/tm.texi: Regenerate.
6681         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6682         * collect2.c (main): Don't use TARGET_VERSION.
6683         * mips-tdump.c (main): Don't use TARGET_VERSION.
6684         * mips-tfile.c (main): Don't use TARGET_VERSION.
6685         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
6686         * config/rs6000/vxworksae.h: Remove.
6687         * config/alpha/alpha.h (TARGET_VERSION): Remove.
6688         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6689         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6690         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6691         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6692         * config/arm/arm.h (TARGET_VERSION): Remove.
6693         * config/arm/coff.h (TARGET_VERSION): Remove.
6694         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6695         * config/arm/elf.h (TARGET_VERSION): Remove.
6696         * config/arm/freebsd.h (TARGET_VERSION): Remove.
6697         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6698         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6699         * config/arm/pe.h (TARGET_VERSION): Remove.
6700         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6701         * config/arm/semi.h (TARGET_VERSION): Remove.
6702         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6703         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6704         * config/arm/vxworks.h (TARGET_VERSION): Remove.
6705         * config/avr/avr.h (TARGET_VERSION): Remove.
6706         * config/bfin/bfin.h (TARGET_VERSION): Remove.
6707         * config/fr30/fr30.h (TARGET_VERSION): Remove.
6708         * config/frv/frv.h (TARGET_VERSION): Remove.
6709         * config/h8300/h8300.h (TARGET_VERSION): Remove.
6710         * config/i386/cygwin.h (TARGET_VERSION): Remove.
6711         * config/i386/darwin.h (TARGET_VERSION): Remove.
6712         * config/i386/darwin64.h (TARGET_VERSION): Remove.
6713         * config/i386/djgpp.h (TARGET_VERSION): Remove.
6714         * config/i386/freebsd.h (TARGET_VERSION): Remove.
6715         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6716         * config/i386/gnu.h (TARGET_VERSION): Remove.
6717         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6718         * config/i386/i386elf.h (TARGET_VERSION): Remove.
6719         * config/i386/linux.h (TARGET_VERSION): Remove.
6720         * config/i386/linux64.h (TARGET_VERSION): Remove.
6721         * config/i386/lynx.h (TARGET_VERSION): Remove.
6722         * config/i386/mingw32.h (TARGET_VERSION): Remove.
6723         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6724         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6725         * config/i386/netware.h (TARGET_VERSION): Remove.
6726         * config/i386/nto.h (TARGET_VERSION): Remove.
6727         * config/i386/openbsd.h (TARGET_VERSION): Remove.
6728         * config/i386/vxworks.h (TARGET_VERSION): Remove.
6729         * config/ia64/elf.h (TARGET_VERSION): Remove.
6730         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6731         * config/ia64/hpux.h (TARGET_VERSION): Remove.
6732         * config/ia64/linux.h (TARGET_VERSION): Remove.
6733         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6734         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6735         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6736         * config/lm32/lm32.h (TARGET_VERSION): Remove.
6737         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6738         * config/m32c/m32c.h (TARGET_VERSION): Remove.
6739         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6740         * config/m32r/m32r.h (TARGET_VERSION): Remove.
6741         * config/m68k/linux.h (TARGET_VERSION): Remove.
6742         * config/m68k/m68k.h (TARGET_VERSION): Remove.
6743         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6744         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6745         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6746         * config/mep/mep.h (TARGET_VERSION): Remove.
6747         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6748         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6749         * config/mips/iris6.h (MACHINE_TYPE): Remove.
6750         * config/mips/linux.h (TARGET_VERSION): Remove.
6751         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6752         * config/mips/vxworks.h (TARGET_VERSION): Remove.
6753         * config/mmix/mmix.h (TARGET_VERSION): Remove.
6754         * config/mn10300/linux.h (TARGET_VERSION): Remove.
6755         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6756         * config/pa/pa.h (TARGET_VERSION): Remove.
6757         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6758         * config/picochip/picochip.h (TARGET_VERSION): Remove.
6759         * config/rs6000/aix.h (TARGET_VERSION): Remove.
6760         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6761         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6762         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6763         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6764         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6765         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6766         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6767         * config/rs6000/linux.h (TARGET_VERSION): Remove.
6768         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6769         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6770         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6771         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6772         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6773         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6774         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6775         * config/s390/linux.h (TARGET_VERSION): Remove.
6776         * config/s390/s390.h (TARGET_VERSION): Remove.
6777         * config/s390/tpf.h (TARGET_VERSION): Remove.
6778         * config/score/score.h (TARGET_VERSION): Remove.
6779         * config/sh/linux.h (TARGET_VERSION): Remove.
6780         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6781         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6782         * config/sh/sh.h (TARGET_VERSION): Remove.
6783         * config/sh/sh64.h (TARGET_VERSION): Remove.
6784         * config/sh/superh.h (TARGET_VERSION): Remove.
6785         * config/sh/vxworks.h (TARGET_VERSION): Remove.
6786         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6787         * config/sparc/linux.h (TARGET_VERSION): Remove.
6788         * config/sparc/linux64.h (TARGET_VERSION): Remove.
6789         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6790         TARGET_NAME32, TARGET_NAME): Remove.
6791         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6792         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6793         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6794         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6795         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6796         * config/spu/spu.h (TARGET_VERSION): Remove.
6797         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6798         * config/v850/v850.h (TARGET_VERSION): Remove.
6799         * config/vax/linux.h (TARGET_VERSION): Remove.
6800         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6801         * config/xtensa/elf.h (TARGET_VERSION): Remove.
6802         * config/xtensa/linux.h (TARGET_VERSION): Remove.
6803
6804 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6805
6806         PR target/48142
6807         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6808         frame-related from frame-unrelated adjustments to the stack pointer.
6809
6810 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
6811
6812         * common.opt (fdebug-types-section): Move earlier.
6813         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6814
6815 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
6816
6817         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6818         var.
6819
6820 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
6821
6822         * tree.h (CASE_CHAIN): Define.
6823         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6824         (gimple_redirect_edge_and_branch): Likewise.
6825
6826 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6827
6828         PR middle-end/48367
6829         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6830         calculation.
6831
6832 2011-03-30  Jeff Law  <law@redhat.com>
6833
6834         * PR bootstrap/48371
6835         * reload1.c (reload): Fix botch in last change.
6836
6837         * reload.h (struct reload): Fix typo introduced in last change.
6838
6839 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6840
6841         * config/arm/arm.opt (mhard-float, msoft-float): Mark
6842         Undocumented.  Remove help text.
6843         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6844         -mhard-float.
6845
6846 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6847
6848         * doc/options.texi (NegativeAlias): Document.
6849         (Alias): Mention NegativeAlias.
6850         * opt-functions.awk: Handle NegativeAlias.
6851         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
6852         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6853         * opts.h (CL_NEGATIVE_ALIAS): Define.
6854         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6855         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6856         OPT_mspe_.
6857         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6858         Alias entries.
6859         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6860         mno-spe and mno-isel instead of mspe=no and -misel=no.
6861
6862 2011-03-29  Mark Wielaard  <mjw@redhat.com>
6863
6864         * common.opt (fdebug-types-section): New flag.
6865         * doc/invoke.texi: Document new -fno-debug-types-section flag.
6866         * dwarf2out.c (use_debug_types): New define.
6867         (struct die_struct): Mark die_id with GTY desc use_debug_types.
6868         (print_die): Guard output of type unit signatures using
6869         use_debug_types.
6870         (build_abbrev_table): Replace assert of dwarf_version >= 4
6871         with assert on use_debug_types.
6872         (size_of_die): Likewise.
6873         (unmark_dies): Likewise.
6874         (value_format): Decide AT_ref_external form on use_debug_types.
6875         (output_die): Replace dwarf_version version check guard with
6876         use_debug_types where appropriate.
6877         (modified_type_die): Likewise.
6878         (gen_reference_type_die): Likewise.
6879         (dwarf2out_start_source_file): Likewise.
6880         (dwarf2out_end_source_file): Likewise.
6881         (prune_unused_types_walk_attribs): Likewise.
6882         (dwarf2out_finish): Likewise.
6883
6884 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6885
6886         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6887
6888 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6889
6890         PR rtl-optimization/48332
6891         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6892         mode of input operand N and modeN to its actual mode.
6893
6894 2011-03-30  Jeff Law  <law@redhat.com>
6895
6896         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6897         define accessor macro.
6898         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6899         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6900         (reg_equiv_init): Likewise.
6901         (reg_equivs_size): New variable.
6902         (reg_equiv_init_size): Remove.
6903         (allocate_initial_values): Move prototype to here from....
6904         * integrate.h (allocate_initial_values): Remove prototype.
6905         * integrate.c: Include reload.h.
6906         (allocate_initial_values): Corresponding changes.
6907         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6908         (fix_reg_equiv_init, no_equiv): Corresponding changes.
6909         (update_equiv_regs): Corresponding changes.
6910         (ira): Corresponding changes.
6911         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6912         (push_secondary_reload): Corresponding changes.
6913         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
6914         (make_memloc, find_reloads_address): Corresponding changes.
6915         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
6916         (find_reloads_address_1): Corresponding changes.
6917         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
6918         (refers_to_regno_for_reload_p): Corresponding changes.
6919         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
6920         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
6921         * reload1.c: Include ggc.h.
6922         (grow_reg_equivs): New function.
6923         (replace_pseudos_in, reload): Corresponding changes.
6924         (calculate_needs_all_insns, alter_regs): Corresponding changes.
6925         (eliminate_regs_1, elimination_effects): Corresponding changes.
6926         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
6927         (delete_output_reload): Likewise.
6928         * caller-save.c (mark_referenced_regs): Corresponding changes.
6929         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
6930         * frv/predicates.md (frv_load_operand): Corresponding changes.
6931         * microblaze/microblaze.c (double_memory_operand): Corresponding
6932         changes.
6933         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
6934         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
6935         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
6936         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
6937         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
6938         changes.
6939         * pa/pa.c (emit_move_sequence): Corresponding changes.
6940         * vax/vax.c (nonindexed_address_p): Corresponding changes.
6941
6942 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6943
6944         PR target/47551
6945         * config/arm/arm.c (coproc_secondary_reload_class): Handle
6946         structure modes.  Don't check neon_vector_mem_operand for
6947         vector or structure modes.
6948
6949 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6950             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6951
6952         PR target/43590
6953         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6954         operand 1 and reshuffle the operands to match.
6955         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
6956
6957 2011-03-30  Christian Schüler  <cschueler@gmx.de>
6958
6959         PR driver/48208
6960         * config/c.opt (F): Added 'Driver' to -F option.
6961
6962         PR driver/48260
6963         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
6964           handler function.
6965         * config/darwin.opt: Added '-arch' option.
6966
6967 2011-03-30  Nick Clifton  <nickc@redhat.com>
6968
6969         * config/rx/rx.md: Add peepholes and patterns to combine
6970         extending loads and simple arithmetic instructions.
6971         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
6972         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
6973         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
6974         modes to use pre-decrement and post-increment addressing.
6975         (rx_is_restricted_memory_address): Add range checking of REG+INT
6976         addresses.
6977         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
6978         (rx_memory_move_cost): Adjust cost of stores.
6979         (rx_adjust_insn_length): New function.
6980
6981 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
6982
6983         PR c/48305
6984         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6985         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
6986         matching arg00/arg01 types.
6987
6988 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6989
6990         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
6991         last_location to UNKNOWN_LOCATION.
6992
6993 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6994
6995         PR target/48349
6996         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
6997         FLOAT_SSE_REGS.
6998
6999 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7000             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7001
7002         PR bootstrap/48337
7003         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7004         Init(PROCESSOR_V7).
7005         (sparc_cpu): Likewise.
7006         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7007         PROCESSOR_V7.
7008
7009 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7010
7011         PR target/48336
7012         PR middle-end/48342
7013         PR rtl-optimization/48345
7014         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7015         hard regs for given mode from profitable regs when doing secondary
7016         allocation.
7017
7018 2011-03-29  Jeff Law  <law@redhat.com>
7019
7020         PR bootstrap/48327
7021         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7022         do_not_duplicate field.
7023         (lookup_redirection_data): Corresponding changes.
7024         (create_duplicates): Always create a template block.
7025         (redirect_edges): Remove code which reused the original block
7026         when it was going to become unreachable code.
7027         (thread_block): Don't set do_not_duplicate field.
7028
7029 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7030
7031         * lto-opts.c (register_user_option_p, lto_register_user_option):
7032         Make type argument unsigned.
7033         * lto-streamer.h (lto_register_user_option): Make type argument
7034         unsigned.
7035         * opth-gen.awk: Make CL_* macros unsigned.
7036         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7037         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7038         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7039         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7040         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7041         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7042         (find_opt): Make lang_mask argument unsigned.
7043
7044 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7045
7046         PR rtl-optimization/48331
7047         PR rtl-optimization/48334
7048         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7049         for any used algorithm.
7050
7051 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7052
7053         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7054         to parent_max.
7055
7056 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7057
7058         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7059         (alpha_option_override): Don't set alpha_sr_alias_set.
7060         (emit_frame_store_1): Use gen_frame_mem rather than calling
7061         set_mem_alias_set.
7062         (alpha_expand_epilogue): Ditto.
7063
7064 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7065
7066         PR tree-optimization/48290
7067         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7068         vectorization, check that relevant phis in the basic block after
7069         the inner loop are really inner loop's exit phis.
7070
7071 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7072
7073         PR debug/48190
7074         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7075         (cached_dw_loc_list_def): New structure.
7076         (cached_dw_loc_list): New typedef.
7077         (cached_dw_loc_list_table): New variable.
7078         (cached_dw_loc_list_table_hash): New function.
7079         (cached_dw_loc_list_table_eq): Likewise.
7080         (add_location_or_const_value_attribute): Take a bool cache_p.
7081         Cache the list when the parameter is true.
7082         (gen_formal_parameter_die): Update caller.
7083         (gen_variable_die): Likewise.
7084         (dwarf2out_finish): Likewise.
7085         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7086         while generating debug info for the decl.
7087         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7088         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7089         (resolve_addr): Cache the result of resolving a chain of
7090         location lists.
7091
7092 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7093
7094         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7095         conflict object hard regset nodes have intersecting hard reg sets.
7096
7097         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7098         after regstat_init_n_sets_and_refs.
7099
7100         * ira.c: Add more comments at the top.
7101         (setup_stack_reg_pressure_class, setup_pressure_classes):
7102         Add comments how we compute the register pressure classes.
7103         (setup_allocno_and_important_classes): Add more comments.
7104         (setup_class_translate_array, reorder_important_classes)
7105         (setup_reg_class_relations): Add comments.
7106
7107         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7108         start of the file.
7109
7110         * ira-color.c: Add 2011 to the Copyright line.
7111         (assign_hard_reg):  Add more comments.
7112         (improve_allocation): Ditto.
7113
7114         * ira-costs.c: Add 2011 to the Copyright line.
7115         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7116         comments.
7117         (setup_regno_cost_classes_by_mode): Ditto.
7118
7119         Initial patches from ira-improv branch:
7120
7121         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7122
7123         * ira-build.c (ira_create_object): Remove initialization of
7124         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7125         (ira_create_allocno): Remove initialization of
7126         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7127         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7128         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7129         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7130         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7131         Initialize ALLOCNO_ADD_DATA.
7132         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7133         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7134         ALLOCNO_REG.
7135         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7136         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7137
7138         * ira.c (ira_reallocate): Remove.
7139         (setup_pressure_classes): Call
7140         ira_init_register_move_cost_if_necessary.  Use
7141         ira_register_move_cost instead of ira_get_register_move_cost.
7142         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7143         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7144
7145         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7146         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7147         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7148         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7149         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7150         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7151         Fix formatting.
7152         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7153         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7154         (struct allocno_color_data): New.
7155         (allocno_color_data_t): New typedef.
7156         (allocno_color_data): New definition.
7157         (ALLOCNO_COLOR_DATA): New macro.
7158         (struct object_color_data): New.
7159         (object_color_data_t): New typedef.
7160         (object_color_data): New definition.
7161         (OBJECT_COLOR_DATA): New macro.
7162         (update_copy_costs, calculate_allocno_spill_cost): Call
7163         ira_init_register_move_cost_if_necessary.  Use
7164         ira_register_move_cost instead of ira_get_register_move_cost.
7165         (move_spill_restore, update_curr_costs): Ditto.
7166         (allocno_spill_priority): Make it inline.
7167         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7168         (struct coalesce_data, coalesce_data_t): New.
7169         (allocno_coalesce_data): New definition.
7170         (ALLOCNO_COALESCE_DATA): New macro.
7171         (merge_allocnos, coalesced_allocno_conflict_p): Use
7172         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7173         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7174         (coalesce_allocnos): Ditto.
7175         (setup_coalesced_allocno_costs_and_nums): Ditto.
7176         (collect_spilled_coalesced_allocnos): Ditto.
7177         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7178         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7179         (coalesce_spill_slots): Ditto.
7180         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7181         free allocno_coalesce_data.
7182
7183         * ira-conflicts.c: Fix formatting.
7184         (process_regs_for_copy): Call
7185         ira_init_register_move_cost_if_necessary.  Use
7186         ira_register_move_cost instead of ira_get_register_move_cost.
7187         (build_object_conflicts): Optimize.
7188
7189         * ira-costs.c (record_reg_classes): Optimize.  Call
7190         ira_init_register_move_cost_if_necessary.  Use
7191         ira_register_move_cost, ira_may_move_in_cost, and
7192         ira_may_move_out_cost instead of ira_get_register_move_cost and
7193         ira_get_may_move_cost.
7194         (record_address_regs): Ditto.
7195         (scan_one_insn): Optimize.
7196         (find_costs_and_classes): Optimize.
7197         (process_bb_node_for_hard_reg_moves): Call
7198         ira_init_register_move_cost_if_necessary.  Use
7199         ira_register_move_cost instead of ira_get_register_move_cost.
7200
7201         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7202         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7203         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7204         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7205         definitions.
7206         (ira_initiate_emit_data, ira_finish_emit_data)
7207         (create_new_allocno): New functions.
7208         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7209         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7210         Use ira_register_move_cost instead of ira_get_register_move_cost.
7211
7212         * ira-int.h: Fix some comments.
7213         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7214         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7215         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7216         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7217         add_data.
7218         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7219         bitfield after mode.  Make hard_regno a short int.  Make
7220         hard_regno short.  Remove first_coalesced_allocno and
7221         next_coalesced_allocno.  Move mem_optimized_dest_p,
7222         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7223         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7224         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7225         temp, colorable_p.  Add new member add_data.
7226         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7227         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7228         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7229         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7230         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7231         (ALLOCNO_ADD_DATA): New macro.
7232         (ira_emit_data_t): New typedef.
7233         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7234         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7235         from struct ira_allocno.
7236         (ALLOCNO_EMIT_DATA): New macro.
7237         (ira_allocno_emit_data, allocno_emit_reg): New.
7238         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7239         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7240         (OBJECT_ADD_DATA): New macro.
7241         (ira_reallocate): Remove.
7242         (ira_initiate_emit_data, ira_finish_emit_data): New.
7243         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7244         (ira_init_register_move_cost_if_necessary): New.
7245         (ira_object_conflict_iter_next): Merge into
7246         ira_object_conflict_iter_cond.
7247         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7248
7249         * ira-live.c (process_single_reg_class_operands): Call
7250         ira_init_register_move_cost_if_necessary.  Use
7251         ira_register_move_cost instead of ira_get_register_move_cost.
7252
7253         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7254
7255         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7256
7257         * ira-costs.c: Fix formatting.
7258         (cost_classes, cost_classes_num): Remove.
7259         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7260         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7261         (cost_classes_del, cost_classes_htab): New.
7262         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7263         (initiate_regno_cost_classes, setup_cost_classes): New.
7264         (setup_regno_cost_classes_by_aclass): New.
7265         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7266         (record_reg_classes): Use regno_cost_classes instead of
7267         cost_classes.  Move checking opposite operand up.
7268         (record_address_regs): Use regno_cost_classes
7269         instead of cost_classes.
7270         (scan_one_insn): Ditto.  Use always general register.
7271         (print_allocno_costs): Use regno_cost_classes instead of
7272         cost_classes.
7273         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7274         (find_costs_and_classes): Set up cost classes for each registers.
7275         Use also their mode for this.  Use regno_cost_classes instead of
7276         cost_classes.
7277         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7278         cost_classes.
7279         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7280         (ira_costs, ira_set_pseudo_classes): Call
7281         initiate_regno_cost_classes and finish_regno_cost_classes.
7282
7283         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7284
7285         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7286
7287         * target.def (ira_cover_classes): Remove.
7288
7289         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7290
7291         * doc/tm.texi.in: Ditto.
7292
7293         * ira-conflicts.c: Remove mentioning cover classes from the file.
7294         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7295         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7296
7297         * targhooks.c (default_ira_cover_classes): Remove.
7298
7299         * targhooks.h (default_ira_cover_classes): Ditto.
7300
7301         * haifa-sched.c: Remove mentioning cover classes from the file.
7302         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7303         ira_pressure_classes and ira_pressure_classes_num instead of
7304         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7305         sched_regno_pressure_class instead of sched_regno_cover_class.
7306         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7307         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7308
7309         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7310         classes from the file.
7311         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7312         (struct object_hard_regs, struct object_hard_regs_node): New.
7313         (struct ira_object): New members profitable_hard_regs,
7314         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7315         (struct ira_allocno): Rename cover_class to aclass.  Rename
7316         cover_class_cost and updated_cover_class_cost to class_cost and
7317         updated_class_cost.  Remove splay_removed_p and
7318         left_conflict_size.  Add new members colorable_p.
7319         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7320         (ALLOCNO_COLORABLE_P): New macro.
7321         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7322         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7323         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7324         (OBJECT_...): Rename parameter C to O.
7325         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7326         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7327         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7328         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7329         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7330         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7331         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7332         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7333         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7334         x_ira_reg_class_subunion.
7335         (ira_max_memory_move_cost, ira_max_register_move_cost)
7336         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7337         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7338         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7339         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7340         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7341         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7342         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7343         (ira_tune_allocno_costs_and_cover_classes): Rename to
7344         ira_tune_allocno_costs.
7345         (ira_debug_hard_regs_forest): New.
7346         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7347         (ira_object_conflict_iter_next): Fix comments.
7348         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7349         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7350         cover_class to aclass.
7351         (ira_allocate_and_accumulate_costs): Ditto.
7352         (ira_allocate_and_set_or_copy_costs): Ditto.
7353
7354         * opts.c (decode_options): Remove ira_cover_class check.
7355
7356         * ira-color.c: Remove mentioning cover classes from the file.  Use
7357         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7358         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7359         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7360         (splay-tree.h): Remove include.
7361         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7362         before copy_freq_compare_func.
7363         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7364         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7365         New definitions.
7366         (hard_regs_roots, hard_regs_node_vec): Ditto.
7367         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7368         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7369         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7370         (create_new_object_hard_regs_node): Ditto.
7371         (add_new_object_hard_regs_node_to_forest): Ditto.
7372         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7373         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7374         Ditto.
7375         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7376         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7377         (remove_unused_object_hard_regs_nodes): Ditto.
7378         (enumerate_object_hard_regs_nodes): Ditto.
7379         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7380         (object_hard_regs_subnode_t): Ditto.
7381         (struct object_hard_regs_subnode): Ditto.
7382         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7383         (setup_object_hard_regs_subnode_index): Ditto.
7384         (get_object_hard_regs_subnodes_num): Ditto.
7385         (form_object_hard_regs_nodes_forest): Ditto.
7386         (finish_object_hard_regs_nodes_tree): Ditto.
7387         (finish_object_hard_regs_nodes_forest): Ditto.
7388         (allocnos_have_intersected_live_ranges_p): Rename to
7389         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7390         (pseudos_have_intersected_live_ranges_p): Rename to
7391         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7392         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7393         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7394         (update_copy_costs): Remove assert.  Skip cost update if the hard
7395         reg does not belong the class.
7396         (assign_hard_reg): Process only profitable hard regs.
7397         (uncolorable_allocnos_num): Make it scalar.
7398         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7399         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7400         and ira_reg_class_max_nregs.
7401         (bucket_allocno_compare_func): Check frequency first.
7402         (sort_bucket): Add compare function as a parameter.
7403         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7404         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7405         (push_allocno_to_stack): Rewrite for checking new allocno
7406         colorability.
7407         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7408         (push_only_colorable): Pass new parameter to sort_bucket.
7409         (push_allocno_to_spill): Remove.
7410         (allocno_spill_priority_compare): Make it inline and rewrite.
7411         (splay_tree_allocate, splay_tree_free): Remove.
7412         (allocno_spill_sort_compare): New function.
7413         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7414         build and use splay tree.  Choose first allocno in uncolorable
7415         allocno bucket to spill.  Remove setting spill cost.
7416         (all_conflicting_hard_regs): Remove.
7417         (setup_allocno_available_regs_num): Check only profitable hard
7418         regs.  Print info about hard regs nodes.
7419         (setup_allocno_left_conflicts_size): Remove.
7420         (put_allocno_into_bucket): Don't call
7421         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7422         (improve_allocation): New.
7423         (color_allocnos): Call setup_profitable_hard_regs,
7424         form_object_hard_regs_nodes_forest, improve_allocation,
7425         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7426         (print_loop_title): Use pressure classes.
7427         (color_allocnso): Ditto.
7428         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7429         and allocnos_for_spilling.
7430         (ira_sort_regnos_for_alter_reg): Don't setup members
7431         {first,next}_coalesced_allocno.
7432         (color): Remove allocating and freeing removed_splay_allocno_vec.
7433         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7434         prohibited_class_mode_regs.
7435
7436         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7437         formatting.
7438         (update_allocno_pressure_excess_length): Use pressure classes.
7439         (inc_register_pressure, dec_register_pressure): Check for pressure
7440         class.
7441         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7442         pressure class.  Use ira_reg_class_nregs instead of
7443         ira_reg_class_max_nregs.
7444         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7445         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7446         (single_reg_class): Use ira_reg_class_nregs instead of
7447         ira_reg_class_max_nregs.
7448         (process_bb_node_lives): Use pressure classes.
7449
7450         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7451         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7452         (change_loop): Use pressure classes.
7453         (modify_move_list): Call ira_set_allocno_class instead of
7454         ira_set_allocno_cover_class.
7455
7456         * ira-build.c: Remove mentioning cover classes from the file.  Use
7457         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7458         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7459         ALLOCNO_UPDATED_CLASS_COST instead of
7460         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7461         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7462         (ira_create_allocno): Remove initialization of
7463         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7464         ALLOCNO_COLORABLE_P.
7465         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7466         Update conflict regs for the objects.
7467         (create_cap_allocno): Remove assert.  Don't propagate
7468         ALLOCNO_AVAILABLE_REGS_NUM.
7469         (ira_free_allocno_costs): New function.
7470         (finish_allocno): Change a part of code into call of
7471         ira_free_allocno_costs.
7472         (low_pressure_loop_node_p): Use pressure classes.
7473         (object_range_compare_func): Don't compare classes.
7474         (setup_min_max_conflict_allocno_ids): Ditto.
7475
7476         * loop-invariant.c: Remove mentioning cover classes from the file.
7477         Use ira_pressure_classes and ira_pressure_classes_num instead of
7478         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7479         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7480         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7481         Use reg_allocno_class instead of reg_cover_class.
7482         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7483         STACK_REG_COVER_CLASS.
7484         (get_regno_cover_class): Rename to get_regno_pressure_class.
7485         (move_loop_invariants): Initialize and finalize regstat.
7486
7487         * ira.c: Remove mentioning cover classes from the file.  Add
7488         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7489         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7490         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7491         setup_class_subset_and_memory_move_costs.
7492         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7493         (setup_cover_and_important_classes): Rename to
7494         setup_allocno_and_important_classes.
7495         (setup_class_translate_array): New.
7496         (setup_class_translate): Call it for allocno and pressure classes.
7497         (cover_class_order): Rename to allocno_class_order.
7498         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7499         of ira_class_translate.
7500         (reorder_important_classes): Set up ira_important_class_nums.
7501         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7502         (print_class_cover): Rename to print_classes.  Add parameter.
7503         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7504         Print pressure classes too.
7505         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7506         setup_reg_subclasses.
7507         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7508         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7509         (setup_prohibited_class_mode_regs): Use
7510         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7511         (clarify_prohibited_class_mode_regs): New function.
7512         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7513         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7514         (ira_init_once): Initialize them.
7515         (free_register_move_costs): Process them.
7516         (ira_init): Move calls of find_reg_classes and
7517         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7518         Call clarify_prohibited_class_mode_regs.
7519         (ira_no_alloc_reg): Remove.
7520         (too_high_register_pressure_p): Use pressure classes.
7521
7522         * sched-deps.c: Remove mentioning cover classes from the file.
7523         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7524         ira_pressure_classes and ira_pressure_classes_num instead of
7525         ira_reg_class_cover_size and ira_reg_class_cover.
7526         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7527         sched_regno_pressure_class instead of sched_regno_cover_class.
7528         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7529         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7530
7531         * ira.h: Add 2010 to Copyright.
7532         (ira_no_alloc_reg): Remove external.
7533         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7534         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7535         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7536         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7537         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7538         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7539         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7540         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7541         x_ira_no_alloc_regs.
7542         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7543         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7544         ira_allocno_classes_num and ira_allocno_classes.
7545         (ira_class_translate): Rename to ira_allocno_class_translate.
7546         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7547         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7548         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7549         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7550         (ira_no_alloc_regs): New.
7551
7552         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7553         classes from the file.  Use ALLOCNO_CLASS instead of
7554         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7555         ALLOCNO_COVER_CLASS_COST.
7556         (regno_cover_class): Rename to regno_aclass.
7557         (record_reg_classes): Use ira_reg_class_subunion instead of
7558         ira_reg_class_union.
7559         (record_address_regs): Check overflow.
7560         (scan_one_insn): Ditto.
7561         (print_allocno_costs): Print total mem cost fore regional allocation.
7562         (print_pseudo_costs): Use REG_N_REFS.
7563         (find_costs_and_classes): Use classes intersected with them on the
7564         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7565         ira_reg_class_union.  Use ira_allocno_class_translate and
7566         regno_aclass instead of ira_class_translate and regno_cover_class.
7567         Modify code for finding regno_aclass.  Setup preferred classes for
7568         the next pass.
7569         (setup_allocno_cover_class_and_costs): Rename to
7570         setup_allocno_class_and_costs.  Use regno_aclass instead of
7571         regno_cover_class.  Use ira_set_allocno_class instead of
7572         ira_set_allocno_cover_class.
7573         (init_costs, finish_costs): Use regno_aclass instead of
7574         regno_cover_class.
7575         (ira_costs): Use setup_allocno_class_and_costs instead of
7576         setup_allocno_cover_class_and_costs.
7577         (ira_tune_allocno_costs_and_cover_classes): Rename to
7578         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7579         by processing objects.  Use ira_reg_class_max_nregs instead of
7580         ira_reg_class_nregs.
7581
7582         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7583
7584         * sched-int.h: Remove mentioning cover classes from the file.
7585         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7586
7587         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
7588         classes from the file.
7589         (struct reg_pref): Rename coverclass into allocnoclass.
7590         (reg_cover_class): Rename to reg_allocno_class.
7591
7592         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
7593
7594         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7595
7596         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7597
7598         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7599
7600         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7601
7602         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7603
7604         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7605
7606         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7607
7608         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7609
7610         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7611
7612         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7613         (i386_ira_cover_classes): Ditto.
7614
7615         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7616
7617         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7618
7619         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7620
7621         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7622
7623         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7624
7625         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7626
7627         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7628         (mips_ira_cover_classes): Ditto.
7629
7630         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7631
7632         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7633
7634         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7635
7636         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7637
7638         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7639
7640         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7641         (IRA_COVER_CLASSES_VSX): Ditto.
7642
7643         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7644         (rs6000_ira_cover_classes): Ditto.
7645
7646         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7647
7648         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7649
7650         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7651
7652         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7653
7654         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7655
7656         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7657
7658         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7659
7660         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7661
7662         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7663
7664         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7665
7666 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7667
7668         PR debug/48253
7669         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7670         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7671         dw_fde_unlikely_section_end_label, cold_in_std_section,
7672         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7673         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7674         fields.
7675         (output_fde): Use dw_fde_second_{begin,end} if second is
7676         true, otherwise dw_fde_{begin,end}.
7677         (output_call_frame_info): Test dw_fde_second_begin != NULL
7678         instead of dw_fde_switched_sections.
7679         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7680         fields, initialize new fields.  Initialize in_std_section
7681         unconditionally from the first partition.
7682         (dwarf2out_end_epilogue): Don't override dw_fde_end when
7683         dw_fde_second_begin is non-NULL.
7684         (dwarf2out_switch_text_section): Stop initializing removed
7685         dw_fde_struct fields, initialize new fields, initialize
7686         also dw_fde_end here.  Set dw_fde_switch_cfi even when
7687         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
7688         (struct var_loc_list_def): Add last_before_switch field.
7689         (arange_table, arange_table_allocated, arange_table_in_use,
7690         ARANGE_TABLE_INCREMENT, add_arange): Removed.
7691         (size_of_aranges): Count !in_std_section and !second_in_std_section
7692         hunks in fdes, instead of looking at arange_table_in_use.
7693         (output_aranges): Add aranges_length argument, don't call
7694         size_of_aranges here.  Instead of using aranges_table*
7695         emit ranges for fdes when !in_std_section resp.
7696         !second_in_std_section.
7697         (dw_loc_list): Break ranges crossing section switch.
7698         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
7699         use dw_fde_second_end instead of dw_fde_end as end of last range.
7700         (gen_subprogram_die): Don't call add_arange.  Use
7701         dw_fde_{begin,end} for first partition and if switched
7702         section dw_fde_second_{begin,end} for the second.
7703         (var_location_switch_text_section_1,
7704         var_location_switch_text_section): New functions.
7705         (dwarf2out_begin_function): Initialize cold_text_section even
7706         when function_section () isn't text_section.
7707         (prune_unused_types): Don't walk arange_table.
7708         (dwarf2out_finish): Don't needlessly test
7709         flag_reorder_blocks_and_partition when testing cold_text_section_used.
7710         If info_section_emitted, call size_of_aranges and if it indicates
7711         non-empty .debug_aranges, call output_aranges with the computed
7712         size.  Stop using removed dw_fde_struct fields, use
7713         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7714         for second.
7715
7716         PR debug/48203
7717         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7718         create ENTRY_VALUE if incoming or address of incoming's MEM
7719         is a hard REG.
7720         * dwarf2out.c (mem_loc_descriptor): Don't emit
7721         DW_OP_GNU_entry_value of DW_OP_fbreg.
7722         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7723         on ENTRY_VALUE is able to find the canonical parameter VALUE.
7724         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7725         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7726         ENTRY_VALUE_EXPs.
7727         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7728         is a REG_P or MEM_P with REG_P address, compute hash directly
7729         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7730         (preserve_only_constants): Don't clear VALUES forwaring
7731         ENTRY_VALUE to some other VALUE.
7732
7733 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
7734
7735         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7736         instead of GEN_INT.
7737
7738 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7739
7740         * cfgexpand.c (expand_gimple_cond): Always set the source location and
7741         block before expanding the statement.
7742         (expand_gimple_stmt_1): Likewise.  Set them here...
7743         (expand_gimple_stmt): ...and not here.  Tidy.
7744         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7745         unknown.
7746
7747 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7748
7749         * Makefile.in: New rule for cprop.o.
7750         * gcse.c: Move constant/copy propagation to cprop.c.
7751         (compute_local_properties): Only handle expression tables.
7752         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7753         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7754         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7755         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7756         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
7757         compute_cprop_data, find_used_regs, try_replace_reg,
7758         find_avail_set, cprop_jump, constprop_register, cprop_insn,
7759         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7760         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7761         find_bypass_set, reg_killed_on_edge, bypass_block,
7762         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7763         execute_rtl_cprop, pass_rtl_cprop): Move to...
7764         * cprop.c: ...here.  New file, constant/copy propagation for RTL
7765         moved from gcse.c to here with minor cleanups in duplicated code.
7766
7767 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7768
7769         * config/i386/i386.c (flag_opts): Fix a typo in
7770         -mavx256-split-unaligned-store.
7771
7772 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7773
7774         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7775         LIBCALL_VALUE): Remove macros.
7776         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7777         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7778         (h8300_function_value, h8300_libcall_value,
7779         h8300_function_value_regno_p): New functions.
7780
7781 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7782
7783         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7784
7785 2011-03-28  Jeff Law  <law@redhat.com>
7786
7787         * tree-ssa-threadupdate.c (redirect_edges): Call
7788         create_edge_and_update_destination_phis as needed.
7789         (create_edge_and_update_destination_phis): Accept new BB argument.
7790         All callers updated.
7791         (thread_block): Do not update the profile when threading around
7792         intermediate blocks.
7793         (thread_single_edge): Likewise.
7794         (determine_bb_domination_status): If BB is not a successor of the
7795         loop header, return NONDOMINATING.
7796         (register_jump_thread): Note when we register a jump thread around
7797         an intermediate block.
7798         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7799         (thread_across_edge): Use it.
7800
7801 2011-03-28  Tristan Gingold  <gingold@adacore.com>
7802
7803         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7804         when for_return is 2.
7805
7806 2011-03-28  Jeff Law  <law@redhat.com>
7807
7808         * var-tracking.c (canonicalize_values_mark): Delete unused
7809         lhs assignment.
7810         (canonicalize_values_star, set_variable_part): Likewise.
7811         (clobber_variable_part, delete_variable_part): Likewise.
7812
7813 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7814
7815         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7816
7817 2011-03-28  Martin Jambor  <mjambor@suse.cz>
7818
7819         * tree-inline.c (expand_call_inline): Do not check that destination
7820         node is analyzed.
7821         (optimize_inline_calls): Assert that destination node is analyzed.
7822         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7823         not call tree_lowering_passes.
7824         * cgraph.h (cgraph_analyze_function): Declare.
7825         * cgraphunit.c (cgraph_analyze_function): Make public.
7826
7827 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
7828
7829         * config/sparc/sparc-opts.h: New.
7830         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7831         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7832         (sparc_option_override): Store processor_type enumeration rather
7833         than string in cpu_default.  Remove name and enumeration from
7834         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
7835         without using sparc_select.  Use target_flags_explicit instead of
7836         fpu_option_set.
7837         * config/sparc/sparc.h (enum processor_type): Move to
7838         sparc-opts.h.
7839         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7840         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7841         HeaderInclude entry.
7842         (mcpu=, mtune=): Use Var and Enum.
7843         (sparc_processor_type): New Enum and EnumValue entries.
7844
7845 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7846             Iain Sandoe  <iains@gcc.gnu.org>
7847
7848         PR target/48245
7849         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7850
7851 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7852
7853         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7854         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7855         Insert new statements at it in lieu of STMT.
7856         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7857         * tree-vect-stmts.c (vectorizable_store): Likewise.
7858         (vectorizable_load): Likewise.
7859
7860 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
7861
7862         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7863         (divtf3): Ditto.
7864         (multf3): Ditto.
7865         (subtf3): Ditto.
7866
7867 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7868
7869         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7870         unaligned 256bit load/store.
7871         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7872         (*avx_movdqu<avxmodesuffix>): Likewise.
7873
7874 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7875
7876         PR target/48288
7877         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7878         * config/pa/pa.md (iordi3): Use new predicate in expander.
7879         (iorsi3): Likewise.
7880
7881 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
7882
7883         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
7884         FUNCTION_VALUE_REGNO_P): Remove macros.
7885         * config/mips/mips-protos.h (mips_function_value): Remove.
7886         * config/mips/mips.c (mips_function_value): Rename to...
7887         (mips_function_value_1): ... this. Make static.  Handle receiving
7888         the function type in 'fn_decl_or_type' argument.
7889         (mips_function_value, mips_libcall_value,
7890         mips_function_value_regno_p): New function.
7891         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7892         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7893
7894 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7895
7896         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7897         and -mavx256-split-unaligned-store.
7898         (ix86_option_override_internal): Split 32-byte AVX unaligned
7899         load/store by default.
7900         (ix86_avx256_split_vector_move_misalign): New.
7901         (ix86_expand_vector_move_misalign): Use it.
7902
7903         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7904         -mavx256-split-unaligned-store.
7905
7906         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7907         256bit load/store.  Generate unaligned store on misaligned memory
7908         operand.
7909         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7910         256bit load/store.
7911         (*avx_movdqu<avxmodesuffix>): Likewise.
7912
7913         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
7914         -mavx256-split-unaligned-store.
7915
7916 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7917
7918         PR target/38598
7919         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
7920         Update commentary.
7921
7922 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7923
7924         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
7925         opno arguments with an expand_operand.  Use create_input_operand.
7926         (mips_prepare_builtin_target): Delete.
7927         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
7928         functions.
7929         (mips_expand_builtin_direct): Use create_output_operand and
7930         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
7931         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
7932         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
7933
7934 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
7935
7936         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
7937         function.
7938         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7939
7940 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7941
7942         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
7943         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
7944         basic blocks and call commit_edge_insertions directly.
7945         (fixup_abnormal_edges): Move from here to...
7946         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
7947         on the edges and return whether some have actually been inserted.
7948         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
7949         compensation code.
7950
7951 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
7952
7953         PR rtl-optimization/48144
7954         * sel-sched-ir.c (merge_history_vect): Factor out from ...
7955         (merge_expr_data): ... here.
7956         (av_set_intersect): Rename to av_set_code_motion_filter.
7957         Update all callers.  Call merge_history_vect when an expression
7958         is found in both sets.
7959         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
7960
7961 2011-03-26  Alan Modra  <amodra@gmail.com>
7962
7963         * config/rs6000/predicates.md (word_offset_memref_op): Handle
7964         cmodel medium addresses.
7965         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
7966         64-bit gpr loads and stores.
7967         (rs6000_secondary_reload_ppc64): New function.
7968         * config/rs6000/rs6000-protos.h: Declare it.
7969         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
7970
7971 2011-03-26  Alan Modra  <amodra@gmail.com>
7972
7973         PR target/47487
7974         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
7975         GNU Go in traceback table.
7976
7977 2011-03-25  Richard Henderson  <rth@redhat.com>
7978
7979         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
7980         if there are exactly 6 operands.
7981         (set_storage_via_setmem): Similarly.
7982
7983 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7984
7985         * collect2.c (write_c_file_stat): Handle backslash
7986         as right-hand directory separator.
7987         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
7988         checking just for slash.
7989         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
7990         instead of checking for trailing slash.
7991         * gcc.c (record_temp_file): Use filename_cmp instead
7992         of strcmp.
7993         (do_spec_1): Likewise.
7994         (replace_outfile_spec_function): Likewise.
7995         (is_directory): Use filename_ncmp instead of strncmp.
7996         (print_multilib_info): Likewise.
7997         * gcov.c (find_source): Use filename_cmp instead
7998         instead of strcmp.
7999         (make_gcov_file_name): Fix order of slash/backslash
8000         checks.
8001         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8002         (add_standard_paths): Likewise.
8003         * mips-tfile.c (saber_stop): Handle backslash.
8004         * prefix.c (update_path): Use filename_ncmp instead of
8005         strncmp.
8006         * profile.c (output_location): Use filename_cmp instead
8007         of strcmp.
8008         * read-md.c (handle_toplevel_file): Handle backslash.
8009         * tlink.c (frob_extension):  Likewise.
8010         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8011         strcmp.
8012         * tree-dump.c (dequeue_and_dump): Handle backslash.
8013         * tree.c (get_file_function_name): Likewise.
8014         * gengtype.c (read_input_list): Likewise.
8015         (get_file_realbasename): Likewise.
8016         (get_output_file_with_visibility): Use filename_cmp
8017         instead of strcmp.
8018
8019 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8020
8021         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8022         case to VFPv1.
8023
8024 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8025
8026         * fold-const.c (expr_location_or): New function.
8027         (fold_truth_not_expr): Call it.
8028
8029 2011-03-25  Jeff Law  <law@redhat.com>
8030
8031         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8032         va_end.
8033         * c-family/c-common.c (def_fn_type): Likewise.
8034         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8035         * emit-rtl.c (gen_rtvec): Likewise.
8036         * lto/lto-lang.c (def_fn_type): Likewise.
8037
8038 2011-03-25  Richard Guenther  <rguenther@suse.de>
8039
8040         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8041         also generate copies.
8042         (fini_copy_prop): Handle constant values properly.
8043
8044 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8045
8046         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8047         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8048         (hash_loc_operands, compare_loc_operands): Handle
8049         DW_OP_GNU_entry_value.
8050
8051 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8052
8053         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8054         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8055         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8056         comment and use macro TARGET_64BIT_MS_ABI instead.
8057         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8058         and change default behavior for 32-bit MS_ABI.
8059         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8060         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8061         32-bit, too.
8062         (ix86_cfun_abi): Likewise.
8063         (ix86_maybe_switch_abi): Adjust comment.
8064         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8065         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8066         instead of checking for SYSV_ABI.
8067         (ix86_nsaved_sseregs): Likewise.
8068         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8069         to 16 bytes.
8070         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8071         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8072         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8073         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8074         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8075
8076 2011-03-25  Richard Guenther  <rguenther@suse.de>
8077
8078         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8079         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8080         (verify_gimple): Remove.
8081         * tree-cfg.c (verify_gimple_call): Merge verification
8082         from verify_stmts.
8083         (verify_gimple_phi): Merge verification from verify_stmts.
8084         (verify_gimple_label): New function.
8085         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8086         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8087         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8088         (verify_stmts): Rename to verify_gimple_in_cfg.
8089         (verify_gimple_in_cfg): New function.
8090         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8091         * tree-ssa.c (verify_ssa): Likewise.
8092         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8093
8094 2011-03-25  Richard Guenther  <rguenther@suse.de>
8095
8096         * passes.c (init_optimization_passes): Add FRE pass after
8097         early SRA.
8098
8099 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8100             Andrew Stubbs  <ams@codesourcery.com>
8101
8102         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8103         for Cortex-A8.
8104         (arm_movdi_vfp_cortexa8): New pattern.
8105         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8106         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8107         instructions when tuning for Cortex-A8.  Set attribute "arch".
8108         * config/arm/arm.md: Move include arm-tune.md up a bit.
8109         (define_attr "arch"): Add "onlya8" and "nota8" values.
8110         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8111
8112 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8113
8114         PR bootstrap/48282
8115         Revert:
8116         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8117
8118         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8119         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8120         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8121         * passes.c (init_optimization_passes): Move
8122         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8123
8124 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8125
8126         * c-typeck.c (comptypes_internal): Replace target
8127         hook call of comp_type_attributes by version in tree.c file.
8128         * gimple.c (gimple_types_compatible_p_1): Likewise.
8129         * tree-ssa.c (useless_type_conversion_p): Likewise.
8130         * tree.c (build_type_attribute_qual_variant): Likewise.
8131         (attribute_value_equal): New static helper function.
8132         (comp_type_attributes): New function.
8133         (merge_attributes): Use attribute_value_equal for comparison.
8134         (attribute_list_contained): Likewise.
8135         * tree.h (comp_type_attributes): New prototype.
8136
8137 2011-03-25  Richard Guenther  <rguenther@suse.de>
8138
8139         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8140         of complex types at -O0.
8141         (verify_gimple_assign_binary): Likewise.
8142         (verify_gimple_assign_ternary): Likewise.
8143
8144 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8145
8146         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8147         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8148
8149 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8150
8151         PR debug/48041
8152         * dwarf2out.c (output_abbrev_section): Only write table when
8153         abbrev_die_table_in_use > 1.
8154
8155 2011-02-24  Richard Henderson  <rth@redhat.com>
8156
8157         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8158         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8159         (alpha_expand_unaligned_load_words): Use extql.
8160         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8161         (emit_insxl): Handle all modes for consistency.
8162
8163 2011-02-24  Richard Henderson  <rth@redhat.com>
8164
8165         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8166         (alpha_expand_unaligned_load): Likewise.
8167         (alpha_expand_unaligned_store): Likewise.
8168         (alpha_expand_unaligned_load_words): Likewise.
8169         (alpha_expand_unaligned_store_words): Likewise.
8170         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8171         (alpha_split_lock_test_and_set_12): Likewise.
8172         (print_operand, alpha_fold_builtin_extxx): Likewise.
8173         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8174         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8175         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8176         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8177         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8178         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8179         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8180         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8181         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8182         (extwl, extll, extql): Similarly.
8183         (inswh, inslh, insqh): Similarly.
8184         (mskbl, mskwl, mskll, mskql): Similarly.
8185         (mskwh, msklh, mskqh): Similarly.
8186
8187 2011-02-24  Richard Henderson  <rth@redhat.com>
8188
8189         * config/alpha/alpha.md (attribute isa): Add er, ner.
8190         (attribute enabled): Handle them.
8191         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8192
8193 2011-02-24  Richard Henderson  <rth@redhat.com>
8194
8195         * config/alpha/alpha.md (attribute isa): Add vms.
8196         (attribute enabled): Handle it.
8197         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8198         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8199         (*movtf): Rename from *movtf_internal for consistency.
8200         (*movsi): Merge with *movsi_nt_vms.
8201         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8202         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8203         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8204         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8205
8206 2011-02-24  Richard Henderson  <rth@redhat.com>
8207
8208         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8209         (extendqisi2, extendhisi2): Likewise.
8210         (extendqidi2): Simplify BWX/non-BWX expansions.
8211         (extendhidi2): Similarly.
8212
8213 2011-02-24  Richard Henderson  <rth@redhat.com>
8214
8215         * config/alpha/alpha.md (attribute isa): New.
8216         (attribute enabled): New.
8217         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8218         (zero_extendqisi2, zero_extendqidi2): Similarly.
8219         (zero_extendhisi2, zero_extendhidi2): Similarly.
8220         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8221
8222 2011-02-24  Richard Henderson  <rth@redhat.com>
8223
8224         * config/alpha/predicates.md (input_operand): Revert last change;
8225         update comment to mention 32-bit VMS rather than Windows.
8226
8227 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8228
8229         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8230         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8231         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8232         * passes.c (init_optimization_passes): Move
8233         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8234
8235 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8236
8237         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8238
8239 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8240
8241         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8242         correctly.
8243
8244 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8245
8246         PR debug/48204
8247         * simplify-rtx.c (simplify_const_unary_operation): Call
8248         real_convert when changing mode class with FLOAT_EXTEND.
8249
8250 2011-03-24  Nick Clifton  <nickc@redhat.com>
8251
8252         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8253         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8254         * config/rx/rx.c (rx_option_override): Set align_jumps,
8255         align_loops and align_labels if not set by the user.
8256         (rx_align_for_label): New function.
8257         (rx_max_skip_for_label): New function.
8258         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8259         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8260         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8261         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8262         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8263
8264 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8265
8266         PR rtl-optimization/48263
8267         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8268         and original commutative_p handling.  Use maybe_gen_insn.
8269
8270 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8271
8272         * reload.c (find_reloads_subreg_address): Add address_reloaded
8273         parameter and return true there if the full address has been
8274         reloaded.
8275         (find_reloads_toplev): Pass address_reloaded flag.
8276         (find_reloads_address_1): Don't use address_reloaded parameter.
8277
8278 2011-03-24  Jeff Law  <law@redhat.com>
8279
8280         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8281         unused variable "ann".
8282         (remove_unused_locals): Likewise.
8283
8284         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8285         statement.
8286
8287         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8288         after it is freed.
8289
8290 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8291
8292         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8293         for invalid symbolic addresses.
8294         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8295         larl operands.
8296
8297 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8298
8299         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8300         the argument in calls to fold_truth_not_expr.
8301
8302 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8303
8304         * tree.c (record_node_allocation_statistics): New function.
8305         (make_node_stat, copy_node_stat, build_string): Call it.
8306         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8307         (build1_stat, build_omp_clause): Likewise.
8308
8309 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8310
8311         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8312         last commit.
8313
8314 2011-03-24  Richard Guenther  <rguenther@suse.de>
8315
8316         PR tree-optimization/48271
8317         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8318         blocks that still exist.
8319
8320 2011-03-24  Richard Guenther  <rguenther@suse.de>
8321
8322         PR tree-optimization/48270
8323         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8324         not free datarefs before ddrs.
8325
8326 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8327
8328         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8329         from the address built for a reference with variable offset.
8330
8331 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8332
8333         PR target/48237
8334         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8335         alternatives that can be handled with movq or movabsq insn.
8336         (*movdf_internal): Disable for !TARGET_64BIT.
8337         (*movdf_internal_nointeger): Ditto.
8338         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8339
8340 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8341
8342         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8343         (FUNCTION_ARG_ADVANCE): Likewise.
8344         * tm.texi.in: Change references to them to hook references.
8345         * tm.texi: Regenerate.
8346         * targhooks.c (default_function_arg): Eliminate check for target macro.
8347         (default_function_incoming_arg): Likewise.
8348         (default_function_arg_advance): Likewise.
8349         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8350         (function_arg_advance): Likewise.
8351         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8352
8353 2011-03-24  Richard Guenther  <rguenther@suse.de>
8354
8355         PR middle-end/48269
8356         * tree-object-size.c (addr_object_size): Do not double-account
8357         for MEM_REF offsets.
8358
8359 2011-03-24  Diego Novillo  <dnovillo@google.com>
8360
8361         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8362         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8363         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8364         Update all users.
8365         (lto_input_string): Rename from input_string.  Make extern.
8366         Update all users.
8367         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8368         output_string_with_length.
8369         Output 0 to indicate a non-NULL string.  Update all callers to
8370         not emit 0.
8371         (lto_output_string): Rename from output_string.  Make extern.
8372         Update all users.
8373         (lto_output_decl_state_streams): Make extern.
8374         (lto_output_decl_state_refs): Make extern.
8375         * lto-streamer.h (lto_input_string): Declare.
8376         (lto_input_data_block): Declare.
8377         (lto_output_string): Declare.
8378         (lto_output_string_with_length): Declare.
8379         (lto_output_decl_state_streams): Declare.
8380         (lto_output_decl_state_refs): Declare.
8381
8382 2011-03-24  Richard Guenther  <rguenther@suse.de>
8383
8384         PR tree-optimization/46562
8385         * tree.c (build_invariant_address): New function.
8386         * tree.h (build_invariant_address): Declare.
8387         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8388         a renamed function moved ...
8389         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8390         Take valueization callback parameter.
8391         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8392         * gimple-fold.h: New file.
8393         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8394         (ccp_fold, fold_const_aggregate_ref,
8395         fold_ctor_reference, fold_nonarray_ctor_reference,
8396         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8397         get_base_constructor): Move ...
8398         * gimple-fold.c: ... here.
8399         (gimple_fold_stmt_to_constant_1): New function
8400         split out from ccp_fold.  Take a valueization callback parameter.
8401         Valueize all operands.
8402         (gimple_fold_stmt_to_constant): New wrapper function.
8403         (fold_const_aggregate_ref_1): New function split out from
8404         fold_const_aggregate_ref.  Take a valueization callback parameter.
8405         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8406         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8407         invariant POINTER_PLUS_EXPRs to invariant form.
8408         (vn_valueize): New function.
8409         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8410         * tree-vrp.c (vrp_valueize): New function.
8411         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8412         to fold statements to constants.
8413         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8414         function declarations.
8415         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8416         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8417
8418 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8419
8420         * config/h8300/predicates.md (jump_address_operand): Fix register
8421         mode check.
8422
8423 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8424
8425         * doc/invoke.texi (max-stores-to-sink): Document.
8426         * params.h (MAX_STORES_TO_SINK): Define.
8427         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8428         if either vectorization or if-conversion is disabled.
8429         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8430         tree-vect-data-refs.c vect_equal_offsets.
8431         (dr_equal_offsets_p): New function.
8432         (find_data_references_in_bb): Remove static.
8433         * tree-data-ref.h (find_data_references_in_bb): Declare.
8434         (dr_equal_offsets_p): Likewise.
8435         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8436         (vect_drs_dependent_in_basic_block): Update calls to
8437         vect_equal_offsets.
8438         (vect_check_interleaving): Likewise.
8439         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8440         (cond_if_else_store_replacement): Rename to...
8441         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8442         documentation.
8443         (cond_if_else_store_replacement): New function.
8444         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8445         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8446
8447 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8448
8449         PR target/46934
8450         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8451         to subtract lower bound instead of GEN_INT().
8452
8453 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8454
8455         PR other/48179
8456         PR other/48221
8457         PR other/48234
8458         * doc/extend.texi (Alignment): Move section to match order in TOC.
8459         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8460         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8461
8462 2011-03-23  Jeff Law  <law@redhat.com>
8463
8464         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8465         before removing the edge.
8466
8467         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8468         it may have been freed by redirect_branch_edge or
8469         redirect_edge_succ_nodup.
8470
8471 2011-03-23  Richard Guenther  <rguenther@suse.de>
8472
8473         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8474         (check_va_list_escapes): Likewise.
8475         (check_all_va_list_escapes): Likewise.
8476
8477 2011-03-23  Richard Guenther  <rguenther@suse.de>
8478
8479         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8480         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8481         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8482         (alias.o): Likewise.
8483         (ipa-type-escape.o): Remove.
8484         (ipa-struct-reorg.o): Likewise.
8485         (GTFILES): Remove ipa-struct-reorg.c.
8486         * alias.c: Do not include ipa-type-escape.h.
8487         * tree-ssa-alias.c: Likewise.
8488         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8489         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8490         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8491         and ipa-type-escape passes.
8492         * tree-pass.h (pass_ipa_type_escape): Remove.
8493         (pass_ipa_struct_reorg): Likewise.
8494         * ipa-struct-reorg.h: Remove.
8495         * ipa-struct-reorg.c: Likewise.
8496         * ipa-type-escape.h: Likewise.
8497         * ipa-type-escape.c: Likewise.
8498         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8499         (--param struct-reorg-cold-struct-ratio): Likewise.
8500         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8501         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8502         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8503
8504 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8505
8506         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8507         cpu attribute value.
8508         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8509         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8510         * config/s390/s390.c (processor_flags_table): New constant array.
8511         (s390_handle_arch_option): Remove.
8512         (s390_handle_option): Remove s390_handle_arch_option invocations
8513         and OPT_mwarn_framesize_ handling.
8514         (s390_option_override): Remove s390_handle_arch_option invocation.
8515         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8516         warnings.
8517         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8518         * config/s390/s390.opt (s390_tune, s390_arch)
8519         (march=): Replace s390_arch_option enum and values with
8520         processor_type.  Set variable name to s390_arch.  Set
8521         initialization value.
8522         (mtune=): Replace s390_arch_option with processor_type.  Set
8523         variable name to s390_tune.  Set initialization value.
8524
8525 2011-03-23  Julian Brown  <julian@codesourcery.com>
8526
8527         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8528         accesses which are not naturally aligned.
8529
8530 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8531
8532         PR target/47553
8533         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8534
8535 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8536
8537         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8538         parameter from "int" to "enum insn_code".
8539         (expand_operand_type): New enum.
8540         (expand_operand): New structure.
8541         (create_expand_operand): New function.
8542         (create_fixed_operand, create_output_operand): Likewise
8543         (create_input_operand, create_convert_operand_to): Likewise.
8544         (create_convert_operand_from, create_address_operand): Likewise.
8545         (create_integer_operand): Likewise.
8546         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8547         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8548         (expand_insn, expand_jump_insn): Likewise.
8549         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8550         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8551         (expand_movstr, expand_builtin___clear_cache): Likewise.
8552         (expand_builtin_lock_release): Likewise.
8553         * explow.c (allocate_dynamic_stack_space): Likewise.
8554         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8555         and use the default handling in that case.
8556         * expmed.c (check_predicate_volatile_ok): Delete.
8557         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8558         (emit_cstore): Likewise.
8559         * expr.c (emit_block_move_via_movmem): Likewise.
8560         (set_storage_via_setmem, expand_assignment): Likewise.
8561         (emit_storent_insn, try_casesi): Likewise.
8562         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8563         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8564         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8565         (expand_twoval_unop, expand_twoval_binop): Likewise.
8566         (expand_unop_direct, emit_indirect_jump): Likewise.
8567         (emit_conditional_move, vector_compare_rtx): Likewise.
8568         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8569         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8570         (expand_sync_lock_test_and_set): Likewise.
8571         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8572         (emit_unop_insn): Likewise.
8573         (expand_copysign_absneg): Change icode to an insn_code.
8574         (create_convert_operand_from_type): New function.
8575         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8576         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8577         (expand_insn, expand_jump_insn): Likewise.
8578         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8579         than const_int_operand for operand 2.
8580
8581 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8582
8583         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8584         if possible.
8585
8586 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8587
8588         * emit-rtl.c (emit_pattern_before_noloc): New function.
8589         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8590         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8591         (emit_pattern_after_noloc): New function.
8592         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8593         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8594
8595 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8596
8597         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8598         (__ffsDI2): Likewise.
8599
8600 2011-03-22  Richard Henderson  <rth@redhat.com>
8601
8602         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8603         of !TARGET_ABI_OPEN_VMS.
8604         (alpha_trampoline_init, alpha_start_function): Likewise.
8605         (alpha_expand_epilogue, alpha_file_start): Likewise.
8606         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8607         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8608         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8609         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8610         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8611
8612 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8613
8614         * config/s390/s390-opts.h: New.
8615         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8616         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8617         s390_stack_guard): Remove.
8618         (s390_handle_arch_option): Return void.  Take enum
8619         s390_arch_option value instead of string and searching array.
8620         (s390_handle_option): Don't assert that global structures are in
8621         use.  Access variables via opts pointer.  Use error_at.  Don't use
8622         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8623         s390_handle_arch_option.
8624         (s390_option_override): Update call to s390_handle_arch_option.
8625         (s390_emit_prologue): Use %d format for s390_stack_size in
8626         diagnostic.  Use %wd for HOST_WIDE_INT.
8627         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8628         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8629         * config/s390/s390.opt (config/s390/s390-opts.h): New
8630         HeaderInclude entry.
8631         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8632         s390_arch_flags, s390_warn_framesize): New Variable entries.
8633         (s390_arch_option): New Enum and EnumValue entries.
8634         (march=): Use Enum instead of Var.
8635         (mstack-guard=, mstack-size=): Use UInteger and Var.
8636         (mtune=): Use Enum.
8637
8638 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8639
8640         * config/score/score.c (score_handle_option): Don't assert that
8641         global structures are in use.  Access target_flags via opts
8642         pointer.  Use value of -march= option to determine target_flags
8643         settings.
8644         * config/score/score.opt (march=): Use Enum.
8645         (score_arch): New Enum and EnumValue entries.
8646
8647 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8648
8649         * config/mep/mep.c (option_mtiny_specified): Remove.
8650         (mep_option_override): Move register handling for -mivc2 from
8651         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
8652         instead of option_mtiny_specified.
8653         (mep_handle_option): Access target_flags via opts pointer.  Don't
8654         assert that global structures are in use.  Defer part of -mivc2
8655         handling and move it to mep_option_override.
8656         * config/mep/mep.opt (IVC2): New Mask entry.
8657         (mivc2): Use Var and Defer instead of Mask.
8658
8659 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8660
8661         * config/v850/v850-opts.h: New.
8662         * config/v850/v850.c (small_memory): Replace with
8663         small_memory_physical_max array.  Make that array static const.
8664         (v850_handle_memory_option): Take integer value of argument.  Take
8665         gcc_options pointer, option text and location.  Return void.
8666         Update for changes to small memory structures.
8667         (v850_handle_option): Access target_flags via opts pointer.  Don't
8668         assert that global structures are in use.  Update calls to
8669         v850_handle_memory_option.
8670         (v850_encode_data_area): Update references to small memory settings.
8671         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
8672         (enum small_memory_type): Move to v850-opts.h.
8673         * config/v850/v850.opt (config/v850/v850-opts.h): New
8674         HeaderInclude entry.
8675         (small_memory_max): New Variable entry.
8676         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
8677         (mtda, mzda): Likewise.
8678
8679 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8680
8681         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8682         pointer.  Don't assert that global structures are in use.
8683
8684 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8685
8686         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8687         via opts pointer.  Don't assert that global structures are in use.
8688
8689 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8690
8691         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8692         (munix=93): Use Var.
8693         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8694         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8695         * config/pa/pa-opts.h: New.
8696         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8697         (pa_handle_option): Don't assert that global structures are in
8698         use.  Access target_flags via opts pointer.  Don't handle
8699         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8700         OPT_munix_98 here.
8701         (pa_option_override): Handle deferred OPT_mfixed_range_.
8702
8703 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8704
8705         * config/mn10300/mn10300-opts.h: New.
8706         * config/mn10300/mn10300.c (mn10300_processor,
8707         mn10300_tune_string): Remove.
8708         (mn10300_handle_option): Don't assert that global structures are
8709         in use.  Access mn10300_processor via opts pointer.  Don't handle
8710         OPT_mtune_ here.
8711         * config/mn10300/mn10300.h (enum processor_type): Move to
8712         mn10300-opts.h.
8713         (mn10300_processor): Remove.
8714         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8715         HeaderInclude entry.
8716         (mn10300_processor): New Variable entry.
8717         (mtune=): Use Var.
8718
8719 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8720
8721         * config/microblaze/microblaze.c: Don't include opts.h.
8722         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8723         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8724         (mno-clearbss): Use Var and Warn.
8725
8726 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8727
8728         * config/m32r/m32r-opts.h: New.
8729         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8730         (m32r_handle_option): Don't assert that global structures are in
8731         use.  Access target_flags and m32r_cache_flush_func via opts
8732         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
8733         OPT_mno_flush_trap here.
8734         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8735         include of m32r-opts.h.
8736         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8737         HeaderInclude entry.
8738         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8739         (mmodel=): Use Enum and Var.
8740         (m32r_model): New Enum and EnumValue entries.
8741         (mno-flush-trap): Use Var.
8742         (msdata=): Use Enum and Var.
8743         (m32r_sdata): New Enum and EnumValue entries.
8744
8745 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8746
8747         * config/m32c/m32c.c: Don't include opts.h.
8748         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8749         m32c_handle_option): Remove.
8750         (m32c_option_override): Check global_options_set.x_target_memregs
8751         instead of target_memregs_set.
8752         * config/m32c/m32c.h (target_memregs): Remove.
8753         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8754         variable.
8755
8756 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8757
8758         * config/iq2000/iq2000-opts.h: New.
8759         * config/iq2000/iq2000.c: Don't include opts.h.
8760         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
8761         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
8762         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8763         HeaderInclude entry.
8764         (iq2000_tune): New Variable entry.
8765         (march=): Add comment.  Use Enum.
8766         (iq2000_arch): New Enum and EnumValue entries.
8767         (mcpu=): Use Enum and Var.
8768         (iq2000_tune): New Enum and EnumValue entries.
8769
8770 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8771
8772         * config/ia64/ia64-opts.h: New.
8773         * config/ia64/ia64.c (ia64_tune): Remove.
8774         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8775         here.  Use error_at.
8776         (ia64_option_override): Handle deferred OPT_mfixed_range_.
8777         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8778         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8779         HeaderInclude entry.
8780         (ia64_tune): New Variable entry.
8781         (mfixed-range=): Use Defer and Var.
8782         (mtune=): Use Enum and Var.
8783         (ia64_tune): New Enum and EnumValue entries.
8784
8785 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8786
8787         * config/frv/frv-opts.h: New.
8788         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8789         frv-opts.h.
8790         (frv_cpu_type): Remove.
8791         * config/frv/frv.c: Don't include opts.h.
8792         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
8793         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
8794         (frv_cpu_type): New Variable entry.
8795         (frv_cpu): New Enum and EnumValue entries.
8796
8797 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8798
8799         * config/cris/cris.c (cris_handle_option): Access target_flags via
8800         opts pointer.  Don't assert that global structures are in use.
8801         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8802         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8803
8804 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8805
8806         * config/bfin/bfin-opts.h: New.
8807         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8808         bfin_si_revision, bfin_workarounds): Remove.
8809         (bfin_cpus): Make static const.
8810         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8811         not bfin_lib_id_given.
8812         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
8813         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
8814         pointer. Use error_at.  Don't assert that global structures are in use.
8815         * config/bfin/bfin.h: Include bfin-opts.h.
8816         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8817         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8818         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8819         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8820         entries.
8821
8822 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8823
8824         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8825         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8826         or -msoft-float here.
8827         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8828         -msoft-float and -mhard-float.
8829         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
8830         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8831         msoft-float.
8832         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8833         -msoft-float.
8834         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8835         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8836         not mhard-float.
8837         (LIBGCC_SPEC): Don't handle -msoft-float.
8838         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8839         -mhard-float.
8840         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8841         msoft-float.
8842         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8843         -mfloat-abi=*, not -msoft-float and -mhard-float.
8844         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8845         -msoft-float.
8846         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8847         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8848         mhard-float and msoft-float.
8849         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8850         mfloat-abi=soft in comments, not mhard-float and msoft-float.
8851         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8852         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8853         mhard-float.
8854         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8855         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8856         msoft-float.
8857         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8858         not mhard-float.
8859         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8860         not msoft-float.
8861
8862 2011-03-22  Richard Henderson  <rth@redhat.com>
8863
8864         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8865         TARGET_ABI_WINDOWS_NT.
8866         (alpha_output_function_end_prologue): Likewise.
8867         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8868         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8869         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8870         (trap, *movsi_nt_vms): Likewise.
8871         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8872         (*tablejump_osf_nt_internal): Remove.
8873         * config/alpha/predicates.md (input_operand): Only test Pmode.
8874
8875 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8876
8877         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8878         via opts pointer.  Use error_at.  Don't assert that global
8879         structures are in use.
8880
8881 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8882
8883         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8884         (ix86_handle_option): Access ix86_isa_flags and
8885         ix86_isa_flags_explicit via opts pointer.  Don't assert that
8886         global structures are in use.
8887         (ix86_function_specific_save, ix86_function_specific_restore):
8888         Update ix86_isa_flags_explicit field name.
8889         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
8890         (ix86_isa_flags_explicit): Rename TargetSave entry to
8891         x_ix86_isa_flags_explicit.
8892
8893 2011-03-22  Richard Henderson  <rth@redhat.com>
8894
8895         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8896         (alpha_option_override, direct_return): Likewise.
8897         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8898         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8899         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8900         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8901         (alpha_expand_epilogue, alpha_end_function): Likewise.
8902         (alpha_init_libfuncs): Likewise.
8903         (struct machine_function): Remove unicosmk members.
8904         (print_operand) ['t']: Remove.
8905         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8906         unicosmk_output_module_name, unicosmk_output_common,
8907         current_section_align, unicosmk_output_text_section_asm_op,
8908         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8909         unicosmk_section_type_flags, unicosmk_unique_section,
8910         unicosmk_asm_named_section, unicosmk_insert_attributes,
8911         unicosmk_output_align, unicosmk_defer_case_vector,
8912         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
8913         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
8914         unicosmk_output_ssib, unicosmk_add_call_info_word,
8915         unicosmk_extern_head, unicosmk_output_default_externs,
8916         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
8917         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
8918         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
8919         * config/alpha/alpha-protos.h: Update.
8920         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
8921         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
8922         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
8923         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
8924         (*mulsi_se, mulvsi3): Likewise.
8925         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
8926         (*divmodsi_internal, call, call_value, realign): Likewise.
8927         (moddi3, umoddi3): Likewise; remove duplicate expander.
8928         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
8929         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
8930         (*movdi_nofix): Remove r/U alternative.
8931         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
8932         * config/alpha/constraints.md ("U"): Remove.
8933         * config/alpha/predicates.md (call_operand"): Don't test
8934         TARGET_ABI_UNICOSMK.
8935
8936 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8937
8938         * target.def (handle_option): Take gcc_options and
8939         cl_decoded_option pointers and location_t.
8940         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
8941         * doc/tm.texi: Regenerate.
8942         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
8943         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
8944         * lto-opts.c (lto_reissue_options): Generate option structure for
8945         targetm.handle_option call.
8946         * opts.c (target_handle_option): Update call to
8947         targetm.handle_option.  Remove assertions about values now passed
8948         down to hook.
8949         * targhooks.c (default_target_handle_option): New.
8950         * targhooks.h (default_target_handle_option): Declare.
8951         * config/alpha/alpha.c: Include opts.h.
8952         (alpha_handle_option): Update to new hook interface.
8953         * config/arm/arm.c: Include opts.h.
8954         (arm_handle_option): Update to new hook interface.
8955         * config/arm/t-arm (arm.o): Update dependencies.
8956         * config/bfin/bfin.c: Include opts.h.
8957         (bfin_handle_option): Update to new hook interface.
8958         * config/cris/cris.c: Include opts.h.
8959         (cris_handle_option): Update to new hook interface.
8960         * config/frv/frv.c: Include opts.h.
8961         (frv_handle_option): Update to new hook interface.
8962         * config/i386/i386.c: Include opts.h.
8963         (ix86_handle_option): Update to new hook interface.
8964         (ix86_valid_target_attribute_inner_p): Generate option structure
8965         for call to ix86_handle_option.
8966         * config/i386/t-i386 (i386.o): Update dependencies.
8967         * config/ia64/ia64.c: Include opts.h.
8968         (ia64_handle_option): Update to new hook interface.
8969         * config/ia64/t-ia64 (ia64.o): Update dependencies.
8970         * config/iq2000/iq2000.c: Include opts.h.
8971         (iq2000_handle_option): Update to new hook interface.
8972         * config/m32c/m32c.c: Include opts.h.
8973         (m32c_handle_option): Update to new hook interface.
8974         * config/m32r/m32r.c: Include opts.h.
8975         (m32r_handle_option): Update to new hook interface.
8976         * config/m68k/m68k.c: Include opts.h.
8977         (m68k_handle_option): Update to new hook interface.
8978         * config/mep/mep.c: Include opts.h.
8979         (mep_handle_option): Update to new hook interface.
8980         * config/microblaze/microblaze.c: Include opts.h.
8981         (microblaze_handle_option): Update to new hook interface.
8982         * config/mips/mips.c: Include opts.h.
8983         (mips_handle_option): Update to new hook interface.
8984         * config/mn10300/mn10300.c: Include opts.h.
8985         (mn10300_handle_option): Update to new hook interface.
8986         * config/pa/pa.c: Include opts.h.
8987         (pa_handle_option): Update to new hook interface.
8988         * config/pdp11/pdp11.c: Include opts.h.
8989         (pdp11_handle_option): Update to new hook interface.
8990         * config/rs6000/rs6000.c: Include opts.h.
8991         (rs6000_handle_option): Update to new hook interface.
8992         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
8993         * config/rx/rx.c: Include opts.h.
8994         (rx_handle_option): Update to new hook interface.
8995         * config/s390/s390.c: Include opts.h.
8996         (s390_handle_option): Update to new hook interface.
8997         * config/score/score.c: Include opts.h.
8998         (score_handle_option): Update to new hook interface.
8999         * config/sh/sh.c: Include opts.h.
9000         (sh_handle_option): Update to new hook interface.
9001         * config/sparc/sparc.c: Include opts.h.
9002         (sparc_handle_option): Update to new hook interface.
9003         * config/v850/v850.c: Include opts.h.
9004         (v850_handle_option): Update to new hook interface.
9005
9006 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9007
9008         * gcc.c (driver_unknown_option_callback): Only permit and save
9009         unknown -Wno- options.
9010         (driver_wrong_lang_callback): Save options directly instead of via
9011         driver_unknown_option_callback.
9012
9013 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9014
9015         * combine.c (simplify_set): Try harder to find the best CC mode when
9016         simplifying a nested COMPARE on the RHS.
9017
9018 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9019
9020         * config/alpha/gnu.h: Remove.
9021         * config/arc: Remove directory.
9022         * config/arm/netbsd.h: Remove.
9023         * config/arm/t-pe: Remove.
9024         * config/crx: Remove directory.
9025         * config/i386/netbsd.h: Remove.
9026         * config/m68hc11: Remove directory.
9027         * config/m68k/uclinux-oldabi.h: Remove.
9028         * config/mcore/mcore-pe.h: Remove.
9029         * config/mcore/t-mcore-pe: Remove.
9030         * config/netbsd-aout.h: Remove.
9031         * config/rs6000/gnu.h: Remove.
9032         * config/sh/sh-symbian.h: Remove.
9033         * config/sh/symbian-base.c: Remove.
9034         * config/sh/symbian-c.c: Remove.
9035         * config/sh/symbian-cxx.c: Remove.
9036         * config/sh/symbian-post.h: Remove.
9037         * config/sh/symbian-pre.h: Remove.
9038         * config/sh/t-symbian: Remove.
9039         * config/svr3.h: Remove.
9040         * config/vax/netbsd.h: Remove.
9041         * config.build: Don't handle i[34567]86-*-pe.
9042         * config.gcc: Remove handling of deprecations for most deprecated
9043         targets.
9044         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9045         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9046         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9047         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9048         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9049         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9050         Remove cases.
9051         * config.host: Don't handle i[34567]86-*-pe.
9052         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9053         (ASM_SPEC32): Don't handle -mcall-gnu.
9054         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9055         -mcall-gnu.
9056         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9057         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9058         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9059         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9060         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9061         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9062         conditional on SYMBIAN.
9063         * configure.ac: Don't handle powerpc*-*-gnu*.
9064         * configure: Regenerate.
9065         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9066         * doc/install-old.texi (m6811, m6812): Don't mention.
9067         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9068         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9069         (m68k-uclinuxoldabi): Don't mention.
9070         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9071         Remove.
9072         (-mcall-gnu): Remove.
9073         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9074         families): Remove constraint documentation.
9075
9076 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9077
9078         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9079         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9080         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9081
9082 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9083
9084         PR target/48226
9085         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9086         vector when peeking at the next token for vector, don't expand the
9087         keywords.
9088
9089 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9090
9091         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9092         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9093         * config/avr/avr.c (init_cumulative_args)
9094         (avr_function_arg_advance): Use it.
9095         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9096         sibcall epilogues.
9097         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9098         (avr_function_ok_for_sibcall): ...this new function.
9099         (avr_lookup_function_attribute1): New static Function.
9100         (avr_naked_function_p, interrupt_function_p)
9101         (signal_function_p, avr_OS_task_function_p)
9102         (avr_OS_main_function_p): Use it.
9103         * config/avr/avr.md ("sibcall", "sibcall_value")
9104         ("sibcall_epilogue"): New expander.
9105         ("*call_insn", "*call_value_insn"): New insn.
9106         ("call_insn", "call_value_insn"): Remove
9107         ("call", "call_value", "epilogue"): Change expander to handle
9108         sibling calls.
9109
9110 2011-03-21  Nick Clifton  <nickc@redhat.com>
9111
9112         * doc/invoke.texi (Overall Options): Move closing brace to end of
9113         options list.
9114         (Optimization Options): Add missing @gol.
9115         (Directory Options): Likewise.
9116         (i386 and x86-64 Options): Likewise.
9117         (RS6000 and PowerPC Options): Likewise.
9118         (i386 and x86-64 Windows Options): Likewise.
9119         (V850 Options): Add text missing from descriptions.
9120
9121 2011-03-22  Richard Henderson  <rth@redhat.com>
9122
9123         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9124         (avr_incoming_return_addr_rtx): New.
9125         (emit_push_byte): New.
9126         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9127         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9128         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9129         (emit_pop_byte): New.
9130         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9131         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9132         (INCOMING_RETURN_ADDR_RTX): New.
9133         (INCOMING_FRAME_SP_OFFSET): New.
9134         (ARG_POINTER_CFA_OFFSET): New.
9135         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9136         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9137         (pophi): Remove.
9138
9139         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9140
9141 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9142
9143         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9144         (FUNCTION_ARG_ADVANCE): Likewise.
9145         * tm.texi.in: Change references to them to hook references.
9146         * tm.texi: Regenerate.
9147         * targhooks.c (default_function_arg): Eliminate check for target
9148         macro.
9149         (default_function_incoming_arg): Likewise.
9150         (default_function_arg_advance): Likewise.
9151         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9152         (function_arg_advance): Likewise.
9153         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9154
9155 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9156
9157         * tree.c (build_call_1): New function.
9158         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9159
9160 2011-03-22  Richard Guenther  <rguenther@suse.de>
9161
9162         PR tree-optimization/48228
9163         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9164         for single-arg PHIs.
9165
9166 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9167
9168         PR rtl-optimization/48143
9169         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9170         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9171         sse2_cvtps2pd): Likewise.
9172
9173 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9174
9175         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9176
9177 2011-03-22  Richard Guenther  <rguenther@suse.de>
9178
9179         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9180         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9181         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9182         and REALIGN_LOAD_EXPR.
9183         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9184         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9185         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9186         DOT_PROD_EXPR case ...
9187         (expand_expr_real_2): ... here.
9188         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9189         and REALIGN_LOAD_EXPR.
9190         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9191         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9192         (vect_create_epilog_for_reduction): Likewise.
9193         (vectorizable_reduction): Likewise.
9194         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9195         * tree-vect-stmts.c (vectorizable_load): Likewise.
9196
9197 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9198
9199         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9200
9201 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9202
9203         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9204         handling for PLTOFF/GOTOFF.
9205
9206 2011-03-22  Nick Clifton  <nickc@redhat.com>
9207
9208         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9209         trailing backslash from the end of the macro definition.
9210
9211 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9212
9213         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9214         and PLT unspecs.
9215
9216 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9217
9218         * expr.h (prepare_operand): Move to...
9219         * optabs.h (prepare_operand): ...here and change the insn code
9220         parameter from "int" to "enum insn_code".
9221         (insn_operand_matches): Declare.
9222         * expr.c (init_expr_target): Use insn_operand_matches.
9223         (compress_float_constant): Likewise.
9224         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9225         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9226         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9227         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9228         Likewise.
9229         (gen_cond_trap): Likewise.
9230         (prepare_operand): Likewise.  Change icode to an insn_code.
9231         (insn_operand_matches): New function.
9232         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9233         * reload1.c (gen_reload): Likewise.
9234         * targhooks.c (default_secondary_reload): Likewise.
9235
9236 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9237
9238         * config/alpha/alpha.md (unspec): New define_c_enum.
9239         (unspecv): Ditto.
9240
9241 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9242
9243         PR debug/48214
9244         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9245         between a call and its CALL_ARG_LOCATION note.
9246
9247 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9248
9249         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9250
9251 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9252
9253         PR c/42544
9254         PR c/48197
9255         * c-common.c (shorten_compare): If primopN is first sign-extended
9256         to opN and then zero-extended to result type, set primopN to opN.
9257
9258 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9259
9260         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9261         for barrier handlers.
9262
9263 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9264
9265         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9266         UNSPEC constants to be in the unspec enumeration, and redefine
9267         all UNSPECV constants to be in the unspecv enumeration, so that
9268         dumps print which unspec/unspec_volatile this is.
9269         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9270         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9271         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9272         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9273         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9274
9275         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9276         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9277         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9278         * config/rs6000/sync.md (isync, lwsync): Ditto.
9279
9280 2011-03-21  Richard Guenther  <rguenther@suse.de>
9281
9282         * params.def (lto-min-partition): Fix typo.
9283
9284 2011-03-21  Richard Guenther  <rguenther@suse.de>
9285
9286         PR c/47939
9287         * c-decl.c (grokdeclarator): Drop to the main variant only
9288         for array types.  Drop flag_gen_aux_info check.
9289
9290 2011-03-21  Richard Guenther  <rguenther@suse.de>
9291
9292         PR translation/47911
9293         * params.def (lto-partitions): Fix typo.
9294         (lto-min-partition): Fix wording.
9295
9296 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9297
9298         * config/rs6000/t-freebsd: Remove duplication from file.
9299
9300 2011-03-21  Richard Guenther  <rguenther@suse.de>
9301
9302         PR middle-end/47661
9303         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9304
9305 2011-03-21  Richard Guenther  <rguenther@suse.de>
9306
9307         PR lto/48210
9308         * params.def (lto-partitions): Require at least 1 partition.
9309
9310 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9311
9312         * gthr-solaris.h: Remove.
9313         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9314         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9315         (LIB_SPEC): Likewise.
9316         * config/sol2.opt (threads): Remove.
9317         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9318         (sparc*-*-solaris2*): Likewise.
9319         * configure.ac (enable_threads): Enable solaris support.
9320         * configure: Regenerate.
9321         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9322         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9323         solaris.
9324
9325 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9326
9327         * config.gcc: Obsolete *-*-solaris2.8*.
9328         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9329
9330 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9331
9332         PR bootstrap/48135
9333         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9334         reference.  Solaris 8 perl works.
9335
9336 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9337
9338         PR bootstrap/48135
9339         * doc/install.texi (Prerequisites): Move jar etc. up.
9340         Explain support library version requirements.
9341
9342 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9343
9344         PR bootstrap/48135
9345         * doc/install.texi (Prerequisites): Move Perl to build
9346         requirements.  Always necessary on Solaris 2 with Sun ld.
9347
9348 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9349
9350         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9351         binutils 2.21.
9352         (Specific, i?86-*-solaris2.[89]): Likewise.
9353         (Specific, i?86-*-solaris2.10): Likewise.
9354         (Specific, mips-sgi-irix6): Likewise.
9355         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9356         Update for binutils 2.21.
9357
9358 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9359
9360         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9361         Allow -fuse-linker-plugin for non-default plugin linker.
9362         * configure: Regenerate.
9363
9364 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9365
9366         PR bootstrap/48167
9367         * gengtype.c (files_rules): Added rule for cp/parser.h.
9368
9369 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR target/48213
9372         * config/s390/s390.c (s390_delegitimize_address): Don't call
9373         lowpart_subreg if orig_x has BLKmode.
9374
9375 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9376
9377         PR target/12171
9378         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9379         * tree.h (attribute_spec): Add new member affects_type_identity.
9380         * attribs.c (empty_attribute_table): Adjust attribute_spec
9381         initializers.
9382         * config/alpha/alpha.c: Likewise.
9383         * config/arc/arc.c: Likewise.
9384         * config/arm/arm.c: Likewise.
9385         * config/avr/avr.c: Likewise.
9386         * config/bfin/bfin.c: Likewise.
9387         * config/crx/crx.c: Likewise.
9388         * config/darwin.h: Likewise.
9389         * config/h8300/h8300.c: Likewise.
9390         * config/i386/cygming.h: Likewise.
9391         * config/i386/i386.c: Likewise.
9392         * config/ia64/ia64.c: Likewise.
9393         * config/m32c/m32c.c: Likewise.
9394         * config/m32r/m32r.c: Likewise.
9395         * config/m68hc11/m68hc11.c: Likewise.
9396         * config/m68k/m68k.c: Likewise.
9397         * config/mcore/mcore.c: Likewise.
9398         * config/mep/mep.c: Likewise.
9399         * config/microblaze/microblaze.c: Likewise.
9400         * config/mips/mips.c: Likewise.
9401         * config/rs6000/rs6000.c: Likewise.
9402         * config/rx/rx.c: Likewise.
9403         * config/sh/sh.c: Likewise.
9404         * config/sol2.h: Likewise.
9405         * config/sparc/sparc.c: Likewise.
9406         * config/spu/spu.c: Likewise.
9407         * config/stormy16/stormy16.c: Likewise.
9408         * config/v850/v850.c: Likewise.
9409
9410 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9411
9412         * simplify-rtx.c (simplify_binary_operation_1): Handle
9413         (xor (and A B) C) case when B and C are both constants.
9414
9415 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9416
9417         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9418
9419 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9420
9421         PR bootstrap/48168
9422         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9423
9424 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9425
9426         PR rtl-optimization/48156
9427         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9428         assume df and df_lr are not NULL.
9429
9430 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9431
9432         PR debug/48023
9433         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9434         between a call and its CALL_ARG_LOCATION note.
9435
9436 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9437
9438         PR debug/48178
9439         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9440         between a call and its corresponding CALL_ARG_LOCATION note.
9441
9442 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9443
9444         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9445         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9446         * haifa-sched.c (setup_ref_regs): Ditto.
9447         * caller-save.c (add_used_regs_1): Ditto.
9448         * dse.c (look_for_hardregs): Ditto.
9449         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9450         * sched-rgn.c (check_live_1): Ditto.
9451
9452 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9453
9454         * c-decl.c (diagnose_mismatched_decls): Give an error for
9455         redefining a typedef with variably modified type.
9456
9457 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9458
9459         * c-decl.c (grokfield): Don't allow typedefs for structures or
9460         unions with no tag by default.
9461         * doc/extend.texi (Unnamed Fields): Update.
9462
9463 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9464
9465         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9466         Rewrite using indirect functions.
9467         (lwp_slwpcb): Ditto.
9468         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9469         (avx_vinsertf128<mode>): Ditto.
9470
9471 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9472
9473         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9474         unspecs.
9475
9476 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9477
9478         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9479         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9480
9481 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9482
9483         PR rtl-optimization/48170
9484         * gcse.c (hoist_code): Remove bogus asserts.
9485
9486 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9487
9488         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9489         computation for prologue/epilogue.
9490
9491 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9492
9493         * Makefile.in (check-consistency): Remove.
9494
9495 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9496
9497         PR debug/48176
9498         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9499         arange_table_in_use is 0, but either text_section_used or
9500         cold_text_section_used is true.  Don't call it if
9501         !info_section_emitted.
9502
9503 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9504
9505         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9506         FUNCTION_VALUE_REGNO_P): Remove.
9507         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9508         Remove.
9509         * config/avr/avr.c (avr_ret_register): Make static inline.
9510         (avr_function_value_regno_p): New function.
9511         (avr_libcall_value): Make static. Add 'func' argument.
9512         (avr_function_value): Make static. Rename 'func' argument to
9513         'fn_decl_or_type', forward it to avr_libcall_value. Call
9514         avr_ret_register function instead of RET_REGISTER macro.
9515         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9516
9517 2011-03-18  Jason Merrill  <jason@redhat.com>
9518
9519         PR c++/23372
9520         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9521
9522 2011-03-18  Richard Guenther  <rguenther@suse.de>
9523
9524         * doc/install.texi (--enable-gold): Remove.
9525         (--with-plugin-ld): Document.
9526         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9527
9528 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9529
9530         PR middle-end/47790
9531         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9532         again after expansion changes.
9533
9534 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9535
9536         * combine.c (try_combine): Do simplification only call of
9537         subst() on i2 even when i1 is present. Update comments.
9538
9539 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9540
9541         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9542         and UNSPEC_PCREL_SYMOFF.
9543
9544 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9545
9546         * config/s390/s390.md: Use define_c_enum for the unspec constant
9547         definitions.
9548
9549 2011-03-18  Richard Henderson  <rth@redhat.com>
9550             Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR bootstrap/48161
9553         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9554         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9555
9556 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9557
9558         PR middle-end/47725
9559         * combine.c (cant_combine_insn_p): Don't check zero/sign
9560         extended hard registers.
9561
9562 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9563
9564         PR middle-end/47725
9565         * combine.c (cant_combine_insn_p): Check zero/sign extended
9566         hard registers.
9567
9568 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9569
9570         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9571         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9572         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9573         Change return type to bool.
9574         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9575
9576 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9577
9578         PR debug/48163
9579         * var-tracking.c (prepare_call_arguments): If CALL target
9580         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9581         pc instead of looking it up using cselib_lookup and use
9582         Pmode for it if x has VOIDmode.
9583         * dwarf2out.c (gen_subprogram_die): If also both first and
9584         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9585
9586         PR debug/48163
9587         * function.c (assign_parms): For data.passed_pointer parms
9588         use MEM of data.entry_parm instead of data.entry_parm itself
9589         as DECL_INCOMING_RTL.
9590         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9591         also when passed and declared mode is the same, DECL_RTL
9592         is a MEM with pseudo as address and DECL_INCOMING_RTL is
9593         a MEM too.
9594
9595 2011-03-16  Jeff Law  <law@redhat.com>
9596
9597         PR rtl-optimization/37273
9598         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9599         handle them like argument loads from stack slots.  Do not double
9600         count memory for memory constants and argument loads from stack slots.
9601
9602 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9603
9604         PR debug/48160
9605         * var-tracking.c (prepare_call_arguments): Check SUBREG.
9606
9607 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9608
9609         PR target/48171
9610         * config/i386/i386.opt: Add Save to -mavx and -mfma.
9611
9612 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9613
9614         PR bootstrap/48153
9615         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9616         if dwarf_strict.
9617         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9618         Clear call_arg_locations and call_arg_loc_last always.
9619
9620         PR middle-end/48152
9621         * var-tracking.c (prepare_call_arguments): If argument needs to be
9622         passed by reference, adjust argtype and mode.
9623
9624 2011-03-17  Richard Guenther  <rguenther@suse.de>
9625
9626         PR middle-end/48134
9627         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9628         a value make sure to fold the statement.
9629
9630 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
9631
9632         PR target/43872
9633         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9634         return condition with !cfun->calls_alloca.
9635
9636 2011-03-17  Richard Guenther  <rguenther@suse.de>
9637
9638         PR bootstrap/48148
9639         * lto-cgraph.c (input_overwrite_node): Clear the abstract
9640         origin for decls in other ltrans units.
9641         (input_varpool_node): Likewise.
9642
9643 2011-03-17  Richard Guenther  <rguenther@suse.de>
9644
9645         PR middle-end/48165
9646         * tree-object-size.c (compute_object_offset): Properly return
9647         the offset operand of MEM_REFs as sizetype.
9648
9649 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9650
9651         PR rtl-optimization/48141
9652         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9653         * dse.c: Include params.h.
9654         (active_local_stores_len): New variable.
9655         (add_wild_read, dse_step1): Clear it when setting active_local_stores
9656         to NULL.
9657         (record_store, check_mem_read_rtx): Decrease it when removing
9658         from the chain.
9659         (scan_insn): Likewise.  Increase it when adding to chain, if it
9660         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9661         set active_local_stores to NULL before the addition.
9662         * Makefile.in (dse.o): Depend on $(PARAMS_H).
9663
9664         PR rtl-optimization/48141
9665         * dse.c (record_store): If no positions are needed in an insn
9666         that cannot be deleted, at least unchain it from active_local_stores.
9667
9668 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
9669
9670         PR debug/47510
9671         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9672         (lookup_type_die_strip_naming_typedef): ... here.
9673         (get_context_die): Use it.
9674         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9675         the anonymous struct named by the naming typedef.
9676
9677 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9678
9679         PR target/48154
9680         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9681         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9682
9683 2011-03-16  Jeff Law  <law@redhat.com>
9684
9685         * tree-vrp.c (identify_jump_threads): Slightly simplify type
9686         check for operands of conditional.  Allow type to be a pointer.
9687
9688 2011-03-16  Richard Guenther  <rguenther@suse.de>
9689
9690         PR tree-optimization/48149
9691         * fold-const.c (fold_binary_loc): Fold
9692         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9693
9694 2011-03-16  Richard Guenther  <rguenther@suse.de>
9695
9696         PR tree-optimization/26134
9697         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9698         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9699         (non_rewritable_mem_ref_base): Handle complex type component
9700         accesses, constrain offsets for vector and complex extracts
9701         more properly.
9702
9703 2011-03-16  Richard Guenther  <rguenther@suse.de>
9704
9705         PR tree-optimization/48146
9706         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9707         operands avoiding the need for renaming.
9708
9709 2011-03-16  Richard Guenther  <rguenther@suse.de>
9710
9711         * gimple-fold.c (maybe_fold_reference): Open-code relevant
9712         constant folding.  Move MEM_REF canonicalization first.
9713         Rely on fold_const_aggregate_ref for initializer folding.
9714         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9715
9716 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9717
9718         PR middle-end/48136
9719         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9720         arg0/arg1 or their arguments are always fold converted to matching
9721         types.
9722
9723         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9724         to nargs.
9725
9726 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9727
9728         PR lto/46944
9729         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9730         Handle in-tree gold.
9731         (ld_vers): Extract binutils version for gold.
9732         (gcc_cv_ld_hidden): Handle gold here.
9733         (gcc_cv_lto_plugin): Determine level of linker plugin support.
9734         * configure: Regenerate.
9735         * config.in: Regenerate.
9736         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9737         -fuse-linker-plugin otherwise.
9738         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
9739         (LINK_COMMAND_SPEC): Use it.
9740         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9741
9742 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9743
9744         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9745         * calls.c: Remove debug.h include.
9746         (emit_call_1): Don't call virtual_call_token debug hook.
9747         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9748         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9749         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9750         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9751         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9752         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9753         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9754         dwarf2out_virtual_call): Remove.
9755         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9756         copy_call_info and virtual_call hooks.
9757         (dwarf2out_init): Don't initialize vcall_insn_table,
9758         debug_dcall_section and debug_vcall_section.
9759         (prune_unused_types): Don't mark nodes from dcall_table.
9760         (dwarf2out_finish): Don't output dcall or vcall tables.
9761         * final.c (final_scan_insn): Don't call direct_call or
9762         virtual_call debug hooks.
9763         * debug.h (struct gcc_debug_hooks): Remove direct_call,
9764         virtual_call_token, copy_call_info and virtual_call hooks.
9765         (debug_nothing_uid): Remove prototype.
9766         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9767         copy_call_info and virtual_call hooks.
9768         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9769         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9770         * debug.c (do_nothing_debug_hooks): Likewise.
9771         (debug_nothing_uid): Remove.
9772         * doc/invoke.texi (-fenable-icf-debug): Remove.
9773         * common.opt (-fenable-icf-debug): Likewise.
9774
9775         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9776         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9777         call's MEM.  Handle functions returning aggregate through a hidden
9778         first pointer.  For virtual calls add clobbered pc to call arguments
9779         chain.
9780         * dwarf2out.c (gen_subprogram_die): Emit
9781         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9782         can't be emitted.
9783
9784         PR debug/45882
9785         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9786         * rtl.h (ENTRY_VALUE_EXP): Define.
9787         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9788         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9789         * print-rtl.c (print_rtx): Likewise.
9790         * gengtype.c (adjust_field_rtx_def): Likewise.
9791         * var-tracking.c (vt_add_function_parameter): Adjust
9792         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9793         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9794         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9795         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9796         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9797
9798         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9799         Call var_location debug hook even on CALL_INSNs.
9800         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9801         * rtl.def (ENTRY_VALUE): New.
9802         * dwarf2out.c: Include cfglayout.h.
9803         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9804         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9805         (struct call_arg_loc_node): New type.
9806         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9807         tail_call_site_count): New variables.
9808         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9809         DW_TAG_GNU_call_site_parameter.
9810         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9811         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9812         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9813         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9814         and DW_AT_GNU_all_source_call_sites.
9815         (mem_loc_descriptor): Handle ENTRY_VALUE.
9816         (add_src_coords_attributes): Don't add enything if
9817         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9818         (dwarf2out_abstract_function): Save and clear call_arg_location,
9819         call_site_count and tail_call_site_count around dwarf2out_decl call.
9820         (gen_call_site_die): New function.
9821         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9822         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9823         (dwarf2out_function_decl): Clear call_arg_locations,
9824         call_arg_loc_last, set call_site_count and tail_call_site_count
9825         to -1 and free block_map.
9826         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9827         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
9828         followed by any real instructions.
9829         (dwarf2out_begin_function): Set call_site_count and
9830         tail_call_site_count to 0.
9831         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9832         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9833         attempt to force a DIE for it and worst case remove the attribute.
9834         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9835         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9836         the decl itself.
9837         * var-tracking.c: Include tm_p.h.
9838         (vt_stack_adjustments): For calls call note_register_arguments.
9839         (argument_reg_set): New variable.
9840         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9841         ensure the VALUE is resolved.
9842         (call_arguments): New variable.
9843         (prepare_call_arguments): New function.
9844         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9845         (struct expand_loc_callback_data): Add ignore_cur_loc field.
9846         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9847         always use the best expression.
9848         (vt_expand_loc): Add ignore_cur_loc argument.
9849         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9850         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9851         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9852         note for all calls.
9853         (vt_add_function_parameter): Use cselib_lookup_from_insn.
9854         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9855         argument.  Don't call cselib_preserve_only_values and
9856         cselib_reset_table.
9857         (note_register_arguments): New function.
9858         (vt_initialize): Compute argument_reg_set.  Call
9859         vt_add_function_parameters before processing basic blocks instead of
9860         afterwards.  For calls call prepare_call_arguments before calling
9861         cselib_process_insn.
9862         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9863         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9864         (var-tracking.o): Depend on $(TM_P_H).
9865         * cfglayout.h (insn_scope): New prototype.
9866         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9867         * cfglayout.c (insn_scope): No longer static.
9868         * insn-notes.def (CALL_ARG_LOCATION): New.
9869         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9870         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9871         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9872         nothing for DECL_EXTERNAL BLOCK_VARS.
9873
9874 2011-03-16  Alan Modra  <amodra@gmail.com>
9875
9876         PR target/45844
9877         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9878         create invalid offset address for vsx splat insn.
9879         * config/rs6000/predicates.md (splat_input_operand): New.
9880         * config/rs6000/vsx.md (vsx_splat_*): Use it.
9881
9882 2011-03-15  Xinliang David Li  <davidxl@google.com>
9883
9884         PR c/47837
9885         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9886         (normalize_preds): New function.
9887         (is_use_properly_guarded): Normalize def predicates.
9888
9889 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9890
9891         PR target/46788
9892         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9893         in the output template.
9894
9895 2011-03-15  Richard Guenther  <rguenther@suse.de>
9896
9897         PR middle-end/47650
9898         * tree-pretty-print.c (dump_function_declaration): Properly
9899         dump unprototyped and varargs function types.
9900
9901 2011-03-15  Richard Guenther  <rguenther@suse.de>
9902
9903         PR tree-optimization/13954
9904         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9905         and friends.
9906
9907 2011-03-15  Richard Guenther  <rguenther@suse.de>
9908
9909         PR tree-optimization/48037
9910         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9911         selects into BIT_FIELD_REFs.
9912         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
9913         vector select.
9914
9915 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
9916
9917         PR tree-optimization/48129
9918         * builtins.c (fold_builtin_snprintf): Convert to type of
9919         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
9920         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
9921
9922 2011-03-15  Richard Guenther  <rguenther@suse.de>
9923
9924         PR tree-optimization/41490
9925         * tree-ssa-dce.c (propagate_necessity): Handle returns without
9926         value but with VUSE.
9927         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
9928         return statements.
9929         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
9930         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
9931         * tree-tailcall.c (find_tail_calls): Ignore returns.
9932
9933 2011-03-15  Richard Guenther  <rguenther@suse.de>
9934
9935         PR middle-end/48031
9936         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
9937         or variable-indexed array accesses when in gimple form.
9938
9939 2011-03-15  Richard Guenther  <rguenther@suse.de>
9940
9941         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
9942
9943 2011-03-15  Alan Modra  <amodra@gmail.com>
9944
9945         PR target/48032
9946         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
9947         presume symbol_refs without a symbol_ref_decl are suitably
9948         aligned, nor other trees we may see here.  Handle anchor symbols.
9949         (legitimate_constant_pool_address_p): Comment.  Add mode param.
9950         Check cmodel=medium addresses.  Adjust all calls.
9951         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
9952         creating cmodel=medium optimized access to locals.
9953         * config/rs6000/constraints.md (R): Pass QImode to
9954         legitimate_constant_pool_address_p.
9955         * config/rs6000/predicates.md (input_operand): Pass mode to
9956         legitimate_constant_pool_address_p.
9957         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
9958         Update prototype.
9959
9960 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9961
9962         PR target/48053
9963         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
9964         64-bit constants being loaded into registers other than GPRs such
9965         as loading 0 into a VSX register.
9966
9967 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9968
9969         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
9970
9971 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9972
9973         PR middle-end/47917
9974         * builtins.c (fold_builtin_snprintf): New function.
9975         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
9976         (fold_builtin_4): Likewise.
9977
9978         PR middle-end/38878
9979         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
9980         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
9981         and C - X == X also strip nops from +/-/p+ operand.
9982         When optimizing -X == C, fold C to arg0's type.
9983
9984         PR debug/47946
9985         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
9986         emit it as add_AT_int instead of add_AT_unsigned.
9987
9988 2011-03-14  Tom Tromey  <tromey@redhat.com>
9989
9990         * unwind-dw2.c: Include sys/sdt.h if it exists.
9991         (_Unwind_DebugHook): Use STAP_PROBE2.
9992         * config.in, configure: Rebuild.
9993         * configure.ac: Check for sys/sdt.h.
9994
9995 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
9996
9997         * config/i386/i386.md (ROUND_FLOOR): New constant.
9998         (ROUND_CEIL): Ditto.
9999         (ROUND_TRUNC): Ditto.
10000         (ROUND_MXCSR): Ditto.
10001         (ROUND_NO_EXC): Ditto.
10002         (rint<mode>2): Use new defines instead of numerical constants.
10003         (floor<mode>2): Ditto.
10004         (ceil<mode>2): Ditto.
10005         (btrunc<mode>2): Ditto.
10006         * config/i386/i386-builtin-types.def: Define ROUND function type
10007         aliases.
10008         * config/i386/i386.c (enum ix86_builtins): Add
10009         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10010         (struct builtin_description): Add
10011         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10012         (ix86_expand_sse_round): New static function.
10013         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10014         function types.
10015         (ix86_builtin_vectorized_function): Handle
10016         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10017
10018 2011-03-14  Tom Tromey  <tromey@redhat.com>
10019
10020         * c-parser.c (c_parser_asm_string_literal): Clear
10021         warn_overlength_strings.
10022
10023 2011-03-14  Tom Tromey  <tromey@redhat.com>
10024
10025         * c-parser.c (disable_extension_diagnostics): Save
10026         warn_overlength_strings.
10027         (restore_extension_diagnostics): Restore warn_overlength_strings.
10028
10029 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10030
10031         * BASE-VER: Change to 4.7.0.
10032
10033 2011-03-14  Richard Guenther  <rguenther@suse.de>
10034
10035         PR middle-end/48098
10036         * tree.c (build_vector_from_val): Adjust assert to requirements
10037         and reality.
10038
10039 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10040
10041         PR bootstrap/48102
10042         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10043
10044 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10045
10046         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10047         terms of target_flags_explicit. Adjust copyright year.
10048
10049         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10050         * config/rs6000/t-freebsd: New file. Add override for
10051         LIB2FUNCS_EXTRA.
10052
10053 2011-03-13  Chris Demetriou  <cgd@google.com>
10054
10055         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10056         (-fno-diagnostics-show-option): this, to reflect current default.
10057         (-Werror=): Update text about -fno-diagnostics-show-option.
10058
10059 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10060
10061         PR target/48053
10062         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10063         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10064         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10065         mode is not V2DImode or V2DFmode.
10066         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10067         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10068         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10069         registers to 0.
10070         (movdi_internal64): Likewise.
10071
10072 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10073
10074         PR tree-optimization/47127
10075         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10076         parameter.
10077         (set_cloog_options): Same.
10078         (scop_to_clast): Same.
10079         (print_clast_stmt): Do not call cloog_state_malloc and
10080         cloog_state_free.
10081         (print_generated_program): Same.
10082         (gloog): Same.
10083         * graphite-clast-to-gimple.h (cloog_state): Declared.
10084         (scop_to_clast): Adjust declaration.
10085         * graphite.c (cloog_state): Defined here.
10086         (graphite_initialize): Call cloog_state_malloc.
10087         (graphite_finalize): Call cloog_state_free.
10088
10089 2011-03-11  Jason Merrill  <jason@redhat.com>
10090
10091         * attribs.c (lookup_attribute_spec): Take const_tree.
10092         * tree.h: Adjust.
10093
10094 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10095
10096         * config/sparc/sparc.c (sparc_option_override): Use
10097         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10098
10099 2011-03-11  Richard Guenther  <rguenther@suse.de>
10100
10101         PR tree-optimization/48067
10102         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10103         multiplication result will be only used once on the target
10104         stmt.
10105
10106 2011-03-11  Richard Guenther  <rguenther@suse.de>
10107
10108         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10109
10110 2011-03-11  Richard Guenther  <rguenther@suse.de>
10111
10112         PR lto/48073
10113         * tree.c (find_decls_types_r): Do not walk types only reachable
10114         from IDENTIFIER_NODEs.
10115
10116 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10117
10118         PR middle-end/48044
10119         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10120         all vnode->force_output nodes as needed.
10121
10122 2011-03-11  Jason Merrill  <jason@redhat.com>
10123
10124         PR c++/48069
10125         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10126         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10127
10128 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10129
10130         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10131         cgraph_node.
10132
10133 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10134
10135         PR tree-optimization/48063
10136         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10137         inline functions called once if !tree_can_inline_p (node->callers).
10138
10139 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10140
10141         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10142         extra_objs.
10143         * config/score/score3.c: Delete.
10144         * config/score/score3.h: Delete.
10145         * config/score/mul-div.S: Delete.
10146         * config/score/sfp-machine.h: Add new file.
10147         * config/score/constraints.md: Add new file.
10148         * config/score/t-score-softfp: Add new file.
10149         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10150         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10151         (score7_extra_constraint): Delete.
10152         (score7_option_override): Remove unused code.
10153         * config/score/score.c: Remove score3 and score5 define and code.
10154         * config/score/score.h: Remove score3 and score5 define and code.
10155         * config/score/score.md: Remove score3 template and unusual insn.
10156         * config/score/score.opt: Remove score3 and score5 options.
10157
10158 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10159
10160         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10161         when _HPUX_SOURCE is defined.
10162         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10163
10164 2011-03-10  Jason Merrill  <jason@redhat.com>
10165
10166         PR c++/48029
10167         * stor-layout.c (layout_type): Don't set structural equality
10168         on arrays of incomplete type.
10169         * tree.c (type_hash_eq): Handle comparing them properly.
10170
10171 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10172
10173         PR debug/48043
10174         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10175         result mode matches original rtl mode.
10176
10177 2011-03-10  Nick Clifton  <nickc@redhat.com>
10178
10179         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10180         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10181
10182 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10183
10184         PR rtl-optimization/47866
10185         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10186         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10187         if target wasn't scalar.
10188         * function.c (assign_stack_temp_for_type): Assert that neither
10189         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10190         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10191         macro.
10192         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10193
10194 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10195
10196         * config/s390/s390-protos.h (s390_label_align): New prototype.
10197         * config/s390/s390.c (s390_label_align): New function.
10198         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10199
10200 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10201
10202         PR target/47755
10203         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10204         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10205         (output_vec_const_move): Ditto.
10206
10207 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10208
10209         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10210         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10211         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10212         Change 'rclass' argument and result type to reg_class_t.
10213         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10214
10215 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10216
10217         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10218         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10219         (TARGET_MEMORY_MOVE_COST): Define.
10220         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10221
10222 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10223
10224         PR debug/47881
10225         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10226         removed anything.
10227
10228         PR tree-optimization/48022
10229         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10230         for EQ/NE_EXPR.
10231
10232 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10233
10234         PR debug/47991
10235         * var-tracking.c (find_use_val): Return NULL for
10236         cui->sets && cui->store_p BLKmode MEMs.
10237
10238 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10239
10240         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10241         Remove.
10242         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10243         xstormy16_print_operand_address): Remove.
10244         * config/stormy16/stormy16.c (xstormy16_print_operand,
10245         xstormy16_print_operand_address): Make static.
10246         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10247
10248 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10249
10250         PR target/47862
10251         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10252         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10253         before definition.
10254
10255 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10256
10257         PR bootstrap/48000
10258         * cfgloopmanip.c (fix_bb_placements): Return immediately
10259         if FROM is BASE_LOOP's header.
10260
10261 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10262
10263         * gimplify.c (gimplify_function_tree): Fix building calls
10264         to __builtin_return_address.
10265
10266 2011-03-07  Alan Modra  <amodra@gmail.com>
10267
10268         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10269         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10270         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10271         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10272         return_mode args.
10273         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10274         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10275         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10276         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10277         * config/rs6000/rs6000.c
10278         (rs6000_elf_end_indicate_exec_stack): Rename to..
10279         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10280         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10281         (rs6000_file_start): ..here.
10282         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10283         file scope variables.
10284         (call_ABI_of_interest): New function.
10285         (init_cumulative_args): Set above vars when function return value
10286         is a float, vector, or small struct.
10287         (rs6000_function_arg_advance_1): Likewise for function args.
10288         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10289         references float args.
10290
10291 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10292
10293         * doc/cfg.texi: Remove "See" before @ref.
10294         * doc/invoke.texi: Likewise.
10295
10296 2011-03-05  Jason Merrill  <jason@redhat.com>
10297
10298         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10299
10300 2011-03-05  Anthony Green  <green@moxielogic.com>
10301
10302         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10303
10304 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10305
10306         PR rtl-optimization/47899
10307         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10308         to flow_loop_nested_p when moving the loop upward.
10309
10310 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10311
10312         PR target/47719
10313         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10314
10315 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10316
10317         PR tree-optimization/47967
10318         * ipa-cp.c (build_const_val): Return NULL instead of creating
10319         VIEW_CONVERT_EXPR for mismatching sizes.
10320         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10321         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10322         give up on versioning.
10323
10324 2011-03-05  Alan Modra  <amodra@gmail.com>
10325
10326         PR target/47986
10327         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10328         full cmodel medium/large lo_sum + high addresses.
10329
10330 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10331
10332         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10333         pool references in UNSPEC_LTREL_OFFSET.
10334
10335 2011-03-04  Jan Hubicka  <jh@suse.cz>
10336
10337         PR lto/47497
10338         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10339         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10340         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10341         Add node pointers.
10342         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10343         cgraph_add_thunk): Add node pointers.
10344         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10345         associated to right node.
10346         (input_node): Update use of cgraph_same_body_alias
10347         and cgraph_add_thunk.
10348
10349 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10350
10351         * config/i386/i386.opt (mprefer-avx128): New flag.
10352         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10353         modes when the flag -mprefer-avx128 is on.
10354
10355 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10356
10357         * dwarf2out.c (compare_loc_operands): Fix address handling.
10358
10359 2011-03-04  Alan Modra  <amodra@gmail.com>
10360
10361         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10362
10363 2011-03-04  Richard Guenther  <rguenther@suse.de>
10364
10365         PR middle-end/47968
10366         * expmed.c (extract_bit_field_1): Prefer vector modes that
10367         vec_extract patterns can handle.
10368
10369 2011-03-04  Richard Guenther  <rguenther@suse.de>
10370
10371         PR middle-end/47975
10372         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10373
10374 2011-03-04  Richard Henderson  <rth@redhat.com>
10375
10376         * explow.c (emit_stack_save): Remove 'after' parameter.
10377         (emit_stack_restore): Likewise.
10378         * expr.h: Update to match.
10379         * builtins.c, calls.c, stmt.c: Likewise.
10380         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10381         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10382         * function.c (expand_function_end): Insert the emit_stack_save
10383         sequence before parm_birth_insn instead of after.
10384
10385 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10386
10387         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10388         (ssse3_pmaddubsw128): Ditto.
10389         (ssse3_pmaddubsw): Ditto.
10390
10391 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10392
10393         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10394
10395 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10396
10397         PR c/47963
10398         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10399         on TYPE_SIZE_UNIT if it is a DECL.
10400
10401         PR debug/47283
10402         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10403         first operand is not is_gimple_mem_ref_addr, try to fold it.
10404         If the operand still isn't is_gimple_mem_ref_addr, clear
10405         MEM_EXPR on op0.
10406
10407 2011-03-03  Richard Guenther  <rguenther@suse.de>
10408
10409         PR middle-end/47283
10410         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10411         match comment.
10412         (refs_may_alias_p_1): For release branches return true if
10413         we are confused by our input.
10414
10415 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10416
10417         * config/s390/s390.c (s390_function_value): Rename to ...
10418         (s390_function_and_libcall_value): ... this.
10419         (s390_function_value): New function.
10420         (s390_libcall_value): New function.
10421         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10422         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10423         target macro definitions.
10424         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10425
10426 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10427
10428         * config/i386/freebsd64.h (CC1_SPEC): Define.
10429         * config/i386/linux64.h (CC1_SPEC): Define.
10430         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10431
10432 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10433
10434         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10435         Remove.
10436         * config/stormy16/stormy16.c: Include reload.h.
10437         (xstormy16_memory_move_cost): New function.
10438         (TARGET_MEMORY_MOVE_COST): Define.
10439
10440 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10441
10442         PR rtl-optimization/47925
10443         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10444         with side effects.  Remove the more-specific check for volatile asms.
10445
10446 2011-03-02  Alan Modra  <amodra@gmail.com>
10447
10448         PR target/47935
10449         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10450         toc relative addresses for valid offsets.
10451
10452 2011-03-01  Richard Guenther  <rguenther@suse.de>
10453
10454         PR tree-optimization/47890
10455         * tree-vect-loop.c (get_initial_def_for_induction): Set
10456         related stmt properly.
10457
10458 2011-03-01  Richard Guenther  <rguenther@suse.de>
10459
10460         PR lto/47924
10461         * lto-streamer.c (lto_record_common_node): Also register
10462         the canonical type.
10463
10464 2011-03-01  Richard Guenther  <rguenther@suse.de>
10465
10466         PR lto/46911
10467         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10468         Do not stream DECL_ABSTRACT_ORIGIN.
10469         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10470         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10471         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10472         Do not stream DECL_ABSTRACT_ORIGIN.
10473         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10474         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10475
10476 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10477
10478         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10479         FUNCTION_VALUE_REGNO_P): Remove.
10480         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10481         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10482         Add 'outgoing' argument.
10483         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10484         function.
10485         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10486         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10487
10488 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10489
10490         PR debug/28047
10491         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10492         (lookup_filename): Likewise.
10493         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10494
10495 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10496             Jakub Jelinek  <jakub@redhat.com>
10497
10498         PR middle-end/47893
10499         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10500         (assign_stack_local_1): Change last argument type to int.
10501         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10502         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10503         don't record padding space into frame_space_list nor use those areas.
10504         (assign_stack_local): Adjust caller.
10505         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10506         of assign_stack_local, pass 0 as last argument.
10507         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10508         callers.
10509
10510 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10511
10512         PR debug/47283
10513         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10514         Use target address_mode and pointer_mode hooks instead of hardcoded
10515         Pmode and ptr_mode.  Handle some simple cases of extending if
10516         POINTERS_EXTEND_UNSIGNED < 0.
10517         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10518         Call convert_debug_memory_address.
10519         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10520         convert_debug_memory_address.
10521
10522         PR middle-end/46790
10523         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10524         * configure: Regenerated.
10525         * config.in: Regenerated.
10526         * varasm.c (default_function_section): Return NULL
10527         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10528
10529 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10530
10531         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10532         the description to match the printed values.
10533
10534 2011-02-28  Richard Guenther  <rguenther@suse.de>
10535
10536         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10537         of the copied scope tree.
10538
10539 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10540
10541         * doc/extend.texi (Function Attributes): Avoid deeply (and
10542         wrongly) nested tables.
10543
10544 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10545
10546         PR middle-end/47903
10547         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10548         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10549         r isn't op0 nor op1.
10550
10551 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10552
10553         * config/avr/avr.md: Remove magic comment for emacs.
10554
10555 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10556
10557         PR target/45261
10558         * config/avr/avr.c (avr_option_override): Use error on bad options.
10559         (avr_help): New function.
10560         (TARGET_HELP): Define.
10561
10562 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10563
10564         PR target/42240
10565         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10566         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10567
10568 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10569
10570         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10571         (ARM Options): Ditto.
10572         (i386 and x86-64 Options): Ditto.
10573         (RX Options): Ditto.
10574         (SPARC Options): Ditto.
10575
10576 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10577
10578         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10579         FreeBSD 6 and later.  Generally use cpu generic.
10580
10581 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10582
10583         * doc/cpp.texi: Update copyright years.
10584
10585 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10586
10587         PR target/46898
10588         * config/lm32/lm32.md (ashrsi3): Added needed variable.
10589
10590 2011-02-25  Jon Beniston  <jon@beniston.com>
10591
10592         PR target/46898
10593         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10594         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10595         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10596         (lm32_block_move_inline): Add type cast to remove warning.
10597         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
10598         (gen_int_relational): Move declarations to start of function.
10599
10600 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10601
10602         PR tree-optimization/45470
10603         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10604         can throw internally only.
10605         * tree-vect-stmts.c (vectorizable_call): Likewise.
10606
10607 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
10608
10609         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10610         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10611         * config/stormy16/stormy16-protos.h
10612         (xstormy16_preferred_reload_class): Remove.
10613         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10614         static. Change 'rclass' argument and return type to reg_class_t.
10615         (TARGET_PREFERRED_RELOAD_CLASS,
10616         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10617
10618 2011-02-24  Richard Guenther  <rguenther@suse.de>
10619
10620         * lto-streamer-in.c (input_bb): Do not find referenced vars
10621         in debug statements.
10622
10623 2011-02-23  Jason Merrill  <jason@redhat.com>
10624
10625         * common.opt (fabi-version): Document v5 and v6.
10626
10627 2011-02-23  Richard Guenther  <rguenther@suse.de>
10628
10629         PR tree-optimization/47849
10630         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10631
10632 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10633
10634         * opts-common.c (decode_cmdline_option): Print empty string
10635         argument as "" in decoded->orig_option_with_args_text.
10636         * gcc.c (execute): Print empty string argument as ""
10637         in the verbose output.
10638         (do_spec_1): Keep empty string argument.
10639
10640 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
10641
10642         * config.gcc: Declare score-* and crx-* obsolete.
10643
10644 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10645
10646         PR rtl-optimization/47763
10647         * web.c (web_main): Ignore naked clobber when replacing register.
10648
10649 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
10650
10651         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10652         Remove.
10653
10654 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10655
10656         PR doc/47848
10657         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10658
10659 2011-02-22  Mike Stump  <mikestump@comcast.net>
10660
10661         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10662         assembler.
10663         * configure: Regenerate.
10664
10665 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
10666
10667         PR rtl-optimization/46002
10668         * ira-color.c (update_copy_costs): Change class intersection
10669         test to reg_class_contents[] test of 'hard_regno'.
10670
10671 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
10672
10673         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10674         than Driver option.
10675         * config/hpux11.opt (mt): Likewise.
10676         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10677         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10678         * config/vax/elf.opt (mno-asm-pic): Likewise.
10679         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10680
10681 2011-02-21  Mike Stump  <mikestump@comcast.net>
10682
10683         PR target/47822
10684         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10685         tree so we can get save the type.
10686         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10687         for CFString instead of trying to use past the end of the builtins.
10688         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10689         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10690         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10691         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10692         Rename to darwin_builtin_cfstring.
10693         (darwin_init_cfstring_builtins): Return the built type.
10694
10695 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
10696
10697         PR target/47840
10698         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10699         (_mm256_insert_epi64): Use _mm_insert_epi64.
10700
10701 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
10702
10703         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10704         * config/stormy16/stormy16-protos.h
10705         (xstormy16_mode_dependent_address_p): Remove.
10706         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10707         Make static. Change return type to bool. Change argument type to
10708         const_rtx. Remove dead code.
10709         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10710
10711 2011-02-21  Richard Guenther  <rguenther@suse.de>
10712
10713         PR lto/47820
10714         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10715         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10716         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10717         TUs context.
10718         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10719         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10720
10721 2011-02-20  Richard Guenther  <rguenther@suse.de>
10722
10723         PR lto/47822
10724         * tree.c (free_lang_data_in_decl): Clean builtins from
10725         the TU decl BLOCK_VARS.
10726
10727 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
10728
10729         PR debug/47620
10730         PR debug/47630
10731         * haifa-sched.c (fix_tick_ready): Skip tick computation
10732         for debug insns.
10733
10734 2011-02-19  Richard Guenther  <rguenther@suse.de>
10735
10736         PR lto/47647
10737         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10738         Remove lazy BLOCK_VARS streaming.
10739         (lto_input_ts_block_tree_pointers): Likewise.
10740         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10741
10742 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10743
10744         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10745
10746 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10747
10748         * config/i386/biarch32.h, config/i386/mach.h,
10749         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10750
10751 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
10752
10753         PR target/47800
10754         * config/i386/i386.md (peephole2 for shift and plus): Use
10755         operands[1] original mode in the first insn.
10756
10757 2011-02-18  Mike Stump  <mikestump@comcast.net>
10758
10759         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
10760
10761 2011-02-18  Jan Hubicka  <jh@suse.cz>
10762
10763         PR middle-end/47788
10764         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10765         to zero when the function is not inlinable at all.
10766
10767 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10768
10769         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10770         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10771         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10772         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10773         * config/pa/t-pa64: Likewise.
10774         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10775
10776 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10777
10778         PR driver/47787
10779         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10780
10781 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10782
10783         PR target/47792
10784         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10785
10786 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
10787
10788         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10789         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10790         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10791         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10792         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10793         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10794         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10795         m32r_load_postinc_p, m32r_store_preinc_predec_p,
10796         m32r_legitimate_address_p): New functions.
10797         * config/m32r/constraints.md (constraint "S"): Don't use
10798         STORE_PREINC_PREDEC_P.
10799         (constraint "U"): Don't use LOAD_POSTINC_P.
10800
10801 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
10802
10803         PR rtl-optimization/46178
10804         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10805         compute ira_hard_regno_cover_class[].
10806
10807 2011-02-18  Richard Guenther  <rguenther@suse.de>
10808
10809         PR lto/47798
10810         * lto-streamer.h (lto_global_var_decls): Declare.
10811         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10812         statics for global var processing.
10813
10814 2011-02-18  Richard Guenther  <rguenther@suse.de>
10815
10816         PR tree-optimization/47737
10817         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10818         edge dominance check.
10819
10820 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR debug/47780
10823         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10824         avoid invalid rtx sharing.
10825
10826 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
10827
10828         * doc/cpp.texi (Obsolete Features): Add background on the
10829         origin of assertions.
10830
10831 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
10832
10833         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
10834         objc_abi == 2.
10835         * config/darwin.c (output_objc_section_asm_op): Added support for
10836         ABI v1 and v2.
10837         (is_objc_metadata): New.
10838         (darwin_objc2_section): New.
10839         (darwin_objc1_section): New.
10840         (machopic_select_section): Added support for ABI v1 and v2.
10841         (darwin_emit_objc_zeroed): New.
10842         (darwin_output_aligned_bss): Detect objc metadata and treat it
10843         appropriately.
10844         (darwin_asm_output_aligned_decl_common): Same.
10845         (darwin_asm_output_aligned_decl_local): Same.
10846         * config/darwin-sections.def: Updated for ABI v1 and v2.
10847         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10848         compiling Objective-C code for the NeXT runtime, default to using
10849         ABI version 0 for 32-bit, and version 2 for 64-bit.
10850
10851 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10852
10853         * common.opt (optimize_fast): New Variable.
10854         * opts.c (default_options_optimization): Use opts->x_optimize_fast
10855         instead of local variable ofast.
10856
10857 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
10858
10859         * doc/invoke.texi (fobjc-abi-version): Documented.
10860         (fobjc-nilcheck): Documented.
10861         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10862         version.
10863
10864 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10865
10866         PR driver/47390
10867         * common.opt (export-dynamic): New Driver option.
10868         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10869
10870 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10871
10872         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10873
10874 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
10875             Jan Hubicka  <jh@suse.cz>
10876
10877         PR debug/47106
10878         PR debug/47402
10879         * cfgexpand.c (account_used_vars_for_block): Remove.
10880         (estimated_stack_frame_size): Use referenced vars.
10881         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10882         that were referenced in the original function.  Test src_fn
10883         rather than cfun.  Drop redundant get_var_ann.
10884         (setup_one_parameter): Drop redundant get_var_ann.
10885         (declare_return_variable): Likewise.
10886         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10887         (copy_arguments_for_versioning): Drop redundant get_var_ann.
10888         * ipa-inline.c (compute_inline_parameters): Do not compute
10889         disregard_inline_limits here.
10890         (compute_inlinable_for_current, pass_inlinable): New.
10891         (pass_inline_parameters): Require PROP_referenced_vars.
10892         * cgraphunit.c (cgraph_process_new_functions): Don't run
10893         compute_inline_parameters explicitly unless function is in SSA form.
10894         (cgraph_analyze_function): Set .disregard_inline_limits.
10895         * tree-sra.c (convert_callers): Compute inliner parameters
10896         only for functions already in SSA form.
10897
10898 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10899
10900         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10901         -mlittle-endian-data.
10902
10903 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10904
10905         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10906         -mno-fpu, not -fpu and -no-fpu.
10907         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10908         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10909
10910 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
10911
10912         PR target/43653
10913         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
10914         input reload with PLUS RTX.
10915
10916 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10917
10918         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
10919         of InverseVar(MDMX).
10920
10921 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10922
10923         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
10924         --m4-340.
10925
10926 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10927
10928         * config/mn10300/mn10300.opt (mno-crt0): New.
10929
10930 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10931
10932         * config/m68k/uclinux.opt (static-libc): New Driver option.
10933
10934 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10935
10936         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
10937
10938 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10939
10940         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
10941         %{muser-extend-enabled}.
10942
10943 2011-02-16  Richard Guenther  <rguenther@suse.de>
10944
10945         PR tree-optimization/47738
10946         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
10947         the TODO from tree_predictive_commoning.
10948
10949 2011-02-15  Jeff Law  <law@redhat.com>
10950
10951         Revert
10952         2011-01-25  Jeff Law  <law@redhat.com>
10953
10954         PR rtl-optimization/37273
10955         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10956         handle them like argument loads from stack slots.  Do not double
10957         count memory for memory constants and argument loads from stack slots.
10958
10959 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10960
10961         PR middle-end/47725
10962         * combine.c (cant_combine_insn_p): Revert the last change.
10963
10964 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10965
10966         PR target/47755
10967         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
10968         mode for vector constants.  Remove code that checks for TImode.
10969
10970 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10971
10972         PR debug/47106
10973         PR debug/47402
10974         * cgraph.h (compute_inline_parameters): Return void.
10975         * ipa-inline.c (compute_inline_parameters): Adjust.
10976
10977 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10978
10979         PR debug/47106
10980         PR debug/47402
10981         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
10982         rather than decl.
10983         * cfgexpand.c (estimated_stack_frame_size): Likewise.
10984         * ipa-inline.c (compute_inline_parameters): Adjust.
10985
10986 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10987
10988         PR debug/47106
10989         PR debug/47402
10990         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
10991         Adjust all users.  Pass FN to...
10992         * tree-flow-inline.h (first_referenced_var): ... this.  Add
10993         fn argument.
10994         * ipa-struct-reorg.c: Adjust.
10995         * tree-dfa.c: Adjust.
10996         * tree-into-ssa.c: Adjust.
10997         * tree-sra.c: Adjust.
10998         * tree-ssa-alias.c: Adjust.
10999         * tree-ssa-live.c: Adjust.
11000         * tree-ssa.c: Adjust.
11001         * tree-ssanames.c: Adjust.
11002         * tree-tailcall.c: Adjust.
11003
11004 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11005
11006         PR debug/47106
11007         PR debug/47402
11008         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11009         Adjust all callers.
11010         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11011         * tree-flow-inline.h: Adjust.
11012         * gimple-pretty-print.c: Adjust.
11013         * tree-into-ssa.c: Adjust.
11014         * tree-ssa.c: Adjust.
11015         * cfgexpand.c: Adjust.
11016
11017 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11018
11019         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11020         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11021         (EXTRA_CONSTRAINT): Delete.
11022         * config/iq2000/constraints.md: New file.
11023         * config/iq2000/iq2000.md: Include it.
11024         (define_insn ""): Delete.
11025         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11026         unsupported constraint letters from patterns.
11027         (call_value, call_value_internal1): Likewise.
11028         (call_value_multiple_internal1): Likewise.
11029
11030 2011-02-15  Nick Clifton  <nickc@redhat.com>
11031
11032         * config/mn10300/mn10300.c: Include tm-constrs.h.
11033         (struct liw_data): New data structure describing an LIW candidate
11034         instruction.
11035         (extract_bundle): Use struct liw_data.  Allow small integer
11036         operands for some instructions.
11037         (check_liw_constraints): Use struct liw_data.  Remove swapped
11038         parameter.  Add comments describing the checks.  Fix bug when
11039         assigning the source of liw1 to the source of liw2.
11040         (liw_candidate): Delete.  Code moved into extract_bundle.
11041         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11042         before swapping.
11043         * config/mn10300/predicates.md (liw_operand): New predicate.
11044         Allows registers and small integer constants.
11045         * config/mn10300/constraints.md (O): New constraint.  Accetps
11046         integers in the range -8 to +7 inclusive.
11047         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11048         for moving a small integer into a register.  Give this alternative
11049         LIW attributes.
11050         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11051         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11052         using the J,K,L and M constraints,
11053         (liw): Remove SI mode on second operands to allow for HI and QI
11054         mode values.
11055         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11056         instruction.
11057
11058 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11059
11060         PR middle-end/47725
11061         * combine.c (cant_combine_insn_p): Check zero/sign extended
11062         hard registers.
11063
11064 2011-02-15  Richard Guenther  <rguenther@suse.de>
11065
11066         PR tree-optimization/47743
11067         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11068         for a non-type-compatible VN lookup bail out.
11069
11070 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11071
11072         * config/fr30/constraints.md: New file.
11073         * config/fr30/fr30.md: Include it.
11074         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11075         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11076         (EXTRA_CONSTRAINT): Delete.
11077
11078 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11079
11080         * config/frv/constraints.md: New file.
11081         * config/frv/predicates.md: Include it.
11082         * config/frv/frv.c (reg_class_from_letter): Delete.
11083         (frv_option_override): Don't initialize it.
11084         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11085         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11086         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11087         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11088         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11089         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11090         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11091         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11092         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11093         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11094         (REG_CLASS_FROM_CONSTRAINT): Delete.
11095
11096 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11097
11098         PR middle-end/47581
11099         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11100         if frame size is 0 in a leaf function.
11101
11102 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11103
11104         PR pch/14940
11105         * config/alpha/host-osf.c: New file.
11106         * config/alpha/x-osf: New file.
11107         * config.host (alpha*-dec-osf*): Use it.
11108
11109 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11110
11111         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11112         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11113         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11114         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11115         type to const_rtx.
11116         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11117
11118 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11119
11120         * config/stormy16/constraints.md: New file.
11121         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11122         Use satisfies_constraint_Q and satisfies_constraint_R.
11123         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11124         Delete.
11125         (xstormy16_legitiamte_address_p): Declare.
11126         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11127         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11128         (EXTRA_CONSTRAINT): Delete.
11129         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11130         Un-staticize.
11131         (xstormy16_extra_constraint_p): Delete.
11132
11133 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11134
11135         PR tree-optimization/46494
11136         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11137         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11138         (pass_rtl_loop_done): Add TODO_verify_flow.
11139         * fwprop.c (pass_rtl_fwprop): Likewise.
11140         * modulo-sched.c (pass_sms): Likewise.
11141         * tree-ssa-dom.c (pass_dominator): Likewise.
11142         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11143         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11144         (pass_tree_loop_done): Likewise.
11145         * tree-ssa-pre.c (execute_pre): Likewise.
11146         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11147         * tree-ssa-sink.c (pass_sink_code): Likewise.
11148         * tree-vrp.c (pass_vrp): Likewise.
11149
11150 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11151
11152         * config/v850/constraints.md: New file.
11153         * config/v850/v850.md: Include it.
11154         * config/v850/predicates.md (reg_or_0_operand): Use
11155         satisfies_constraint_G.
11156         (special_symbolref_operand): Use satisfies_constraint_K.
11157         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11158         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11159         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11160         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11161         (EXTRA_CONSTRAINT): Delete.
11162         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11163         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11164         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11165
11166 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11167
11168         PR target/47696
11169         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11170         description.
11171
11172 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11173
11174         * config/mcore/constraints.md: New file.
11175         * config/mcore/mcore.md: Include it.
11176         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11177         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11178         (REG_CLASS_FROM_LETTER): Delete.
11179         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11180         insn_const_int_ok_for_constraint.
11181         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11182         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11183         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11184         (EXTRA_CONSTRAINT): Delete.
11185
11186 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11187
11188         PR ada/41929
11189         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11190         (IS_SIGHANDLER): Define.
11191         (sparc64_is_sighandler): New function, split off from
11192         sparc64_fallback_frame_state.
11193         (sparc_is_sighandler): New function, split off from
11194         sparc_fallback_frame_state.
11195         (sparc64_fallback_frame_state): Merge with ...
11196         (sparc_fallback_frame_state): ... this into ...
11197         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11198         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11199         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11200         stack instead of hardcoded offsets.
11201
11202 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11203
11204         PR target/45808
11205         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11206
11207 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11208
11209         * configure: Regenerate.
11210
11211 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11212
11213         PR driver/45731
11214         * gcc.c (asm_options): Correct spec matching --target-help.
11215
11216 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11217
11218         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11219         to gimple call error.
11220
11221 2011-02-12  Mike Stump  <mikestump@comcast.net>
11222
11223         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11224         comments in backslash regions.
11225
11226 2011-02-12  Mike Stump  <mikestump@comcast.net>
11227             Jakub Jelinek  <jakub@redhat.com>
11228             Iain Sandoe  <iains@gcc.gnu.org>
11229
11230         PR target/47324
11231         * dwarf2out.c (output_cfa_loc): When required, apply the
11232         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11233         (output_loc_sequence): Likewise.
11234         (output_loc_operands_raw): Likewise.
11235         (output_loc_sequence_raw): Likewise.
11236         (output_cfa_loc): Likewise.
11237         (output_loc_list): Suppress register number adjustment when
11238         calling output_loc_sequence()
11239         (output_die): Likewise.
11240
11241 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11242
11243         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11244         Remove macros.
11245         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11246         xtensa_memory_move_cost): New functions.
11247         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11248
11249 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11250
11251         PR lto/47225
11252         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11253         in the current directory.
11254         * configure: Rebuilt.
11255
11256 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11257
11258         * config/darwin.c (darwin_override_options): Add a hunk missed
11259         from the commit of r168571.  Trim comment line lengths and
11260         correct indents of the preceding block.
11261
11262 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11263
11264         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11265         the switch.
11266
11267 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11268
11269         * common.opt (nostartfiles): New Driver option.
11270
11271 2011-02-11  Xinliang David Li  <davidxl@google.com>
11272
11273         PR tree-optimization/47707
11274         * tree-chrec.c (convert_affine_scev): Keep type precision.
11275
11276 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11277
11278         PR tree-optimization/47420
11279         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11280
11281 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11282
11283         PR rtl-optimization/47614
11284         * rtl.h (check_for_inc_dec): Declare.
11285         * dse.c (check_for_inc_dec): Externalize...
11286         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11287         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11288
11289 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11290
11291         PR driver/47678
11292         * gcc.c (main): Do not compile inputs if there were errors in
11293         option handling.
11294         * opts-common.c (read_cmdline_option): Check for wrong language
11295         after other error checks.
11296
11297 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11298
11299         * cgraph.c: Fix comment typos.
11300         * cgraph.h: Likewise.
11301         * cgraphunit.c: Likewise.
11302         * ipa-cp.c: Likewise.
11303         * ipa-inline.c: Likewise.
11304         * ipa-prop.c: Likewise.
11305         * ipa-pure-const.c: Likewise.
11306         * ipa-ref.c: Likewise.
11307         * ipa-reference.c: Likewise.
11308
11309 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11310
11311         PR debug/47684
11312         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11313
11314 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11315
11316         PR testsuite/47400
11317         * doc/sourcebuild.texi (Require Support): Document
11318         dg-require-ascii-locale.
11319
11320 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11321
11322         * doc/lto.texi (Write summary): Fix missing parentheses.
11323
11324 2011-02-10  DJ Delorie  <dj@redhat.com>
11325
11326         * config/m32c/m32c.c (m32c_option_override): Disable
11327         -fcombine-stack-adjustments until flag value tracking and compare
11328         optimization can be rewritten.
11329
11330 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11331
11332         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11333         PROCESSOR_POWER7.
11334         (PROCESSOR_DEFAULT64): Likewise.
11335
11336 2011-02-10  Richard Henderson  <rth@redhat.com>
11337
11338         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11339         change from 2011-02-03.
11340         * config/rx/rx.c (flags_from_code): Likewise.
11341         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11342         is valid, n/pz otherwise.
11343         (rx_select_cc_mode): Return CCmode if Y is not zero.
11344
11345 2011-02-10  Richard Guenther  <rguenther@suse.de>
11346
11347         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11348
11349 2011-02-10  Richard Guenther  <rguenther@suse.de>
11350
11351         PR tree-optimization/47677
11352         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11353
11354 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11355
11356         PR target/47665
11357         * combine.c (make_compound_operation): Only change shifts into
11358         multiplication for SCALAR_INT_MODE_P.
11359
11360 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11361
11362         PR testsuite/47622
11363         Revert
11364         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11365         PR debug/42631
11366         * web.c (entry_register): Don't clobber the number of the
11367         first uninitialized reference in used[].
11368
11369 2011-02-09  Richard Guenther  <rguenther@suse.de>
11370
11371         PR tree-optimization/47664
11372         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11373         all edges again.
11374
11375 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11376
11377         PR target/46481
11378         PR target/47032
11379         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11380         PROCESSOR_POWER7.
11381         (PROCESSOR_DEFAULT64): Same.
11382         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11383
11384 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11385
11386         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11387
11388 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11389
11390         PR middle-end/45505
11391         * tree-sra.c (struct access): New flags grp_scalar_read and
11392         grp_scalar_write.  Changed description of assignment read and write
11393         flags.
11394         (dump_access): Dump new flags, reorder all of them.
11395         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11396         to detect multiple scalar reads.
11397         (analyze_access_subtree): Use the new scalar read write flags instead
11398         of the old flags.  Adjusted comments.
11399
11400 2011-02-08  DJ Delorie  <dj@redhat.com>
11401
11402         PR target/47548
11403         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11404         patterns.
11405
11406 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11407
11408         * config/m68k/uclinux.opt: New.
11409         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11410
11411 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11412
11413         * config/cris/elf.opt (sim): New Driver option.
11414
11415 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11416
11417         * config/xtensa/elf.opt: New.
11418         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11419
11420 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11421
11422         * config/vax/elf.opt: New.
11423         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11424
11425 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11426
11427         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11428
11429 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11430
11431         * config/gnu-user.opt: New.
11432         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11433         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11434         *-*-uclinux*): Use gnu-user.opt.
11435
11436 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11437
11438         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11439         * config/i386/gnu.h (CPP_SPEC): Likewise.
11440
11441 2011-02-08  Ian Lance Taylor  <iant@google.com>
11442
11443         * common.opt (fcx-limited-range): Add SetByCombined flag.
11444         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11445         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11446         (fassociative-math, freciprocal-math): Likewise.
11447         (funsafe-math-optimizations): Likewise.
11448         * opth-gen.awk: Handle SetByCombined.
11449         * optc-gen.awk: Likewise.
11450         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11451         (set_unsafe_math_optimizations_flags): Likewise.
11452         * doc/options.texi (Option properties): Document SetByCombined.
11453
11454 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11455
11456         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11457         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11458         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11459         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11460         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11461
11462 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11463
11464         PR tree-optimization/46834
11465         PR tree-optimization/46994
11466         PR tree-optimization/46995
11467         * graphite-sese-to-poly.c (used_outside_reduction): New.
11468         (detect_commutative_reduction): Call used_outside_reduction.
11469         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11470         translate_scalar_reduction_to_array only when at least one
11471         loop-phi/close-phi tuple has been detected.
11472
11473 2011-02-08  Richard Guenther  <rguenther@suse.de>
11474
11475         PR middle-end/47639
11476         * tree-vect-generic.c (expand_vector_operations_1): Update
11477         stmts here ...
11478         (expand_vector_operations): ... not here.  Cleanup EH info
11479         and the CFG if required.
11480
11481 2011-02-08  Richard Guenther  <rguenther@suse.de>
11482
11483         PR tree-optimization/47641
11484         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11485         require type compatibility.
11486
11487 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11488
11489         * gimple-low.c (lower_function_body): Don't remove the location of
11490         the return statement here.
11491         (lower_gimple_return): Do it here instead but only if the return
11492         statement is actually used twice.
11493
11494 2011-02-08  Richard Guenther  <rguenther@suse.de>
11495
11496         PR tree-optimization/47632
11497         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11498         unused up_to_stmt parameter, return whether cfg-cleanup is
11499         necessary, remove EH info properly.
11500         (forward_propagate_into_gimple_cond): Adjust caller.
11501         (forward_propagate_into_cond): Likewise.
11502         (forward_propagate_comparison): Likewise.
11503         (tree_ssa_forward_propagate_single_use_vars): Make
11504         forward_propagate_comparison case similar to the two others.
11505
11506 2011-02-08  Nick Clifton  <nickc@redhat.com>
11507
11508         * config/mn10300/mn10300.opt (mliw): New command line option.
11509         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11510         (liw_bundling): New automaton.
11511         (liw): New attribute.
11512         (liw_op): New attribute.
11513         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11514         (movsi_internal): Add LIW attributes.
11515         (andsi3): Likewise.
11516         (iorsi3): Likewise.
11517         (xorsi3): Likewise.
11518         (addsi3): Separate register and immediate alternatives.
11519         Add LIW attributes.
11520         (subsi3): Likewise.
11521         (cmpsi): Likewise.
11522         (aslsi3): Likewise.
11523         (lshrsi3): Likewise.
11524         (ashrsi3): Likewise.
11525         (liw): New pattern.
11526         * config/mn10300/mn10300.c (liw_op_names): New
11527         (mn10300_print_operand): Handle 'W' operand descriptor.
11528         (extract_bundle): New function.
11529         (check_liw_constraints): New function.
11530         (liw_candidate): New function.
11531         (mn10300_bundle_liw): New function.
11532         (mn10300_reorg): New function.
11533         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11534         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11535         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11536         __LIW__ or __NO_LIW__.
11537         * doc/invoke.texi: Describe the -mliw command line option.
11538
11539 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11540
11541         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11542         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11543         pthread_mutex_unlock): Remove.
11544         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11545         * config/pa/t-pa64: Likewise.
11546         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11547         shared libc if not linking against libpthread.
11548         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11549
11550 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11551
11552         PR target/47558
11553         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11554         on 10.6 and later to ensure that we always use the unwinder from
11555         the system.  Only add -no_compact_unwind when tarteting darwin
11556         10.6 or later.
11557
11558 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11559
11560         PR target/46997
11561         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11562         (vec_interleave_lowv2sf): Ditto.
11563         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11564         (vec_extract_oddv2sf): Ditto.
11565
11566 2011-02-07  Mike Stump  <mikestump@comcast.net>
11567
11568         PR target/42333
11569         Add __ieee_divdc3 entry point.
11570         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11571         entry point.
11572         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11573         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11574         * config/darwin.c (darwin_rename_builtins): Add.
11575         * config/darwin-protos.h (darwin_rename_builtins): Add.
11576
11577 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11578
11579         PR target/47636
11580         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11581         for the condition.
11582
11583 2011-02-07  Mike Stump  <mikestump@comcast.net>
11584
11585         * config/darwin.opt (mmacosx-version-min): Update default OS version.
11586
11587 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
11588
11589         PR target/47534
11590         * config/avr/libgcc.S (exit): Move .endfunc
11591
11592 2011-02-07  Richard Guenther  <rguenther@suse.de>
11593
11594         PR tree-optimization/47615
11595         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11596         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11597         (run_scc_vn): Initialize it.
11598         (visit_reference_op_load): Use it.
11599         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11600
11601 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11602
11603         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11604         DImode trapping arithmetic libfuncs.
11605
11606 2011-02-07  Richard Guenther  <rguenther@suse.de>
11607
11608         PR tree-optimization/47621
11609         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11610         two duplicates ...
11611         (execute_update_addresses_taken): ... here.  Make it more
11612         conservative in what we accept.
11613
11614 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11615
11616         * config/sparc/freebsd.h (ASM_SPEC): Define.
11617         * config/sparc/vxworks.h (ASM_SPEC): Define.
11618
11619 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11620
11621         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11622
11623 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11624
11625         * doc/invoke.texi: Remove reference to compiler internals from
11626         user documentation.
11627
11628         * reg-notes.def: Remove REG_VALUE_PROFILE.
11629         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11630
11631 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
11632
11633         PR middle-end/47610
11634         * varasm.c (default_section_type_flags): If decl is NULL,
11635         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
11636
11637 2011-02-05  Jie Zhang  <jie@codesourcery.com>
11638
11639         PR debug/42631
11640         * web.c (entry_register): Don't clobber the number of the
11641         first uninitialized reference in used[].
11642
11643 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
11644
11645         PR tree-optimization/46194
11646         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11647         (build_classic_dist_vector_1): Do not represent classic distance
11648         vectors when the access functions are variating in different loops.
11649
11650 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11651
11652         * config/mips/iris6.opt: New.
11653         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11654
11655 2011-02-04  Richard Henderson  <rth@redhat.com>
11656             Steve Ellcey  <sje@cup.hp.com>
11657
11658         PR target/46997
11659         * config/ia64/predicates.md (mux1_brcst_element): New.
11660         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11661         * config/ia64/ia64.c (ia64_unpack_assemble): New.
11662         (ia64_unpack_sign): New.
11663         (ia64_expand_unpack): Rewrite using new routines.
11664         (ia64_expand_widen_sum): Ditto.
11665         (ia64_expand_dot_prod_v8qi): Ditto.
11666         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11667         routines, add endian check.
11668         (pmpy2_even): Rename from pmpy2_r, add endian check.
11669         (pmpy2_odd): Rename from pmpy2_l, add endian check.
11670         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11671         (vec_widen_smult_hi_v4hi): Ditto.
11672         (vec_widen_umult_lo_v4hi): Ditto.
11673         (vec_widen_umult_hi_v4hi): Ditto.
11674         (mulv2si3): Change endian checks.
11675         (sdot_prodv4hi): Rewrite with new calls.
11676         (udot_prodv4hi): New.
11677         (vec_pack_ssat_v4hi): Add endian check.
11678         (vec_pack_usat_v4hi): Ditto.
11679         (vec_pack_ssat_v2si): Ditto.
11680         (max1_even): Rename from max1_r, add endian check.
11681         (max1_odd): Rename from max1_l, add endian check.
11682         (*mux1_rev): Format change.
11683         (*mux1_mix): Ditto.
11684         (*mux1_shuf): Ditto.
11685         (*mux1_alt): Ditto.
11686         (*mux1_brcst_v8qi): Use new predicate.
11687         (vec_extract_evenv8qi): Remove endian check.
11688         (vec_extract_oddv8qi): Ditto.
11689         (vec_interleave_lowv4hi): Format change.
11690         (vec_interleave_highv4hi): Ditto.
11691         (mix2_even): Rename from mix2_r, add endian check.
11692         (mix2_odd): Rename from mux2_l, add endian check.
11693         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11694         (vec_extract_evenodd_helper): Format change.
11695         (vec_extract_evenv4hi): Remove endian check.
11696         (vec_extract_oddv4hi): Remove endian check.
11697         (vec_interleave_lowv2si): Format change.
11698         (vec_interleave_highv2si): Format change.
11699         (vec_initv2si): Remove endian check.
11700         (vecinit_v2si): Add endian check.
11701         (reduc_splus_v2sf): Add endian check.
11702         (reduc_smax_v2sf): Ditto.
11703         (reduc_smin_v2sf): Ditto.
11704         (vec_initv2sf): Remove endian check.
11705         (fpack): Add endian check.
11706         (fswap): Add endian check.
11707         (vec_interleave_highv2sf): Add endian check.
11708         (vec_interleave_lowv2sf): Add endian check.
11709         (fmix_lr): Add endian check.
11710         (vec_setv2sf): Format change.
11711         (*vec_extractv2sf_0_be): Use shift to extract operand.
11712         (*vec_extractv2sf_1_be): New.
11713         (vec_pack_trunc_v4hi): Add endian check.
11714         (vec_pack_trunc_v2si): Format change.
11715
11716 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
11717
11718         PR inline-asm/23200
11719         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
11720         do bb, locus and block comparison and disallow loads if it is not set.
11721         (stmt_is_replaceable_p): New function.
11722         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11723         callers.
11724         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11725         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11726         SSA_NAME_DEF_STMT.
11727         * tree-flow.h (stmt_is_replaceable_p): New prototype.
11728
11729 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11730
11731         * config/rs6000/xilinx.opt: New.
11732         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11733
11734 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11735
11736         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11737
11738 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
11739
11740         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11741         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11742         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11743         secondary_reload_info, xtensa_secondary_reload): Remove.
11744         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11745         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11746         (xtensa_preferred_reload_class): Make static. Change return and
11747         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11748         Use CONST_DOUBLE_P predicate.
11749         (xtensa_preferred_output_reload_class): New function.
11750         (xtensa_secondary_reload): Make static.
11751
11752 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
11753
11754         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11755         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11756         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11757
11758 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11759
11760         PR middle-end/31490
11761         * output.h (SECTION_RELRO): Define.
11762         (SECTION_MACH_DEP): Adjust.
11763         (get_variable_section): New prototype.
11764         * varpool.c (varpool_finalize_named_section_flags): New function.
11765         (varpool_assemble_pending_decls): Call it.
11766         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11767         * cgraphunit.c (cgraph_output_in_order): Call
11768         varpool_finalize_named_section_flags.
11769         * varasm.c (get_section): Allow section flags conflicts between
11770         relro and read-only sections if the section hasn't been declared yet.
11771         Set SECTION_OVERRIDE after diagnosing section type conflict.
11772         (get_variable_section): No longer static.
11773         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11774         readonly sections that need relocations.
11775         (decl_readonly_section_1): New function.
11776         (decl_readonly_section): Use it.
11777
11778         Revert:
11779         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
11780                     Steve Ellcey  <sje@cup.hp.com>
11781
11782         PR middle-end/31490
11783         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11784         if section attribute used.
11785
11786 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11787
11788         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11789         * config/darwin.c (SECTION_NO_ANCHOR): Define.
11790         (darwin_init_sections): Remove assertion.
11791
11792 2011-02-03  Nick Clifton  <nickc@redhat.com>
11793
11794         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11795         lt and ge.
11796         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
11797         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11798         instead of "n" and "pz".
11799         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11800         CC_FLAG_S.
11801
11802 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11803
11804         PR target/47312
11805         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11806         fma, expand FMA_EXPR as fma{,f,l} call.
11807
11808         PR lto/47274
11809         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11810         copy them into a unsigned char variable and pass address of it to
11811         lto_output_data_stream.
11812
11813         PR target/47564
11814         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11815         around backend_init_target and lang_dependent_init_target calls.
11816         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11817         (verify_cgraph_node): Don't call set_cfun here.  Use
11818         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11819         Set error_found for incorrectly represented calls to thunks.
11820
11821 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11822
11823         PR debug/43092
11824         PR rtl-optimization/43494
11825         * rtl.h (for_each_inc_dec_fn): New type.
11826         (for_each_inc_dec): Declare.
11827         * rtlanal.c (struct for_each_inc_dec_ops): New type.
11828         (for_each_inc_dec_find_inc_dec): New fn.
11829         (for_each_inc_dec_find_mem): New fn.
11830         (for_each_inc_dec): New fn.
11831         * dse.c (struct insn_size): Remove.
11832         (replace_inc_dec, replace_inc_dec_mem): Remove.
11833         (emit_inc_dec_insn_before): New fn.
11834         (check_for_inc_dec): Use it, along with for_each_inc_dec.
11835         (canon_address): Pass mem modes to cselib_lookup.
11836         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
11837         (cselib_lookup_from_insn): Likewise.
11838         (cselib_subst_to_values): Likewise.
11839         * cselib.c (find_slot_memmode): New var.
11840         (cselib_find_slot): New fn.  Use it instead of
11841         htab_find_slot_with_hash everywhere.
11842         (entry_and_rtx_equal_p): Use find_slot_memmode.
11843         (autoinc_split): New fn.
11844         (rtx_equal_for_cselib_p): Rename and implement in terms of...
11845         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
11846         Deal with autoinc.  Special-case recursion into MEMs.
11847         (cselib_hash_rtx): Likewise.
11848         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
11849         address and MEM modes.
11850         (cselib_subst_to_values): Add memmode, pass it on.
11851         Deal with autoinc.
11852         (cselib_lookup): Add memmode argument, pass it on.
11853         (cselib_lookup_from_insn): Add memmode.
11854         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11855         (struct cselib_record_autoinc_data): New.
11856         (cselib_record_autoinc_cb): New fn.
11857         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
11858         mode to cselib_lookup.  Reset autoinced REGs here instead of...
11859         (cselib_process_insn): ... here.
11860         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11861         to cselib_lookup.
11862         (add_uses): Likewise, also to cselib_subst_to_values.
11863         (add_stores): Likewise.
11864         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
11865         cselib_subst_to_values.
11866         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
11867         * gcse.c (do_local_cprop): Adjusted.
11868         * postreload.c (reload_cse_simplify_set): Adjusted.
11869         (reload_cse_simplify_operands): Adjusted.
11870         * sel-sched-dump (debug_mem_addr_value): Pass mode.
11871
11872 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11873
11874         PR tree-optimization/45122
11875         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11876         unsafe assumptions when there's more than one loop exit.
11877
11878 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11879
11880         PR target/47272
11881         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11882         Document using vector double with the load/store builtins, and
11883         that the load/store builtins always use Altivec instructions.
11884
11885         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11886         to use altivec memory instructions, even on VSX.
11887         (vector_altivec_store_<mode>): Ditto.
11888
11889         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11890         function.
11891
11892         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11893         V2DF, V2DI support to load/store overloaded builtins.
11894
11895         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11896         altivec load/store builtins for V2DF/V2DI types.
11897
11898         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11899         set avoid indexed addresses on power6 if -maltivec.
11900         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11901         vector_altivec_load/vector_altivec_store builtins.
11902         (altivec_expand_st_builtin): Ditto.
11903         (altivec_expand_builtin): Add VSX memory builtins.
11904         (rs6000_init_builtins): Add V2DI types to internal types.
11905         (altivec_init_builtins): Add support for V2DF/V2DI altivec
11906         load/store builtins.
11907         (rs6000_address_for_altivec): Insure memory address is appropriate
11908         for Altivec.
11909
11910         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11911         vec_vsx_ld and vec_vsx_st.
11912         (vsx_store_<mode>): Ditto.
11913
11914         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
11915         variables to hold long long types for VSX vector memory builtins.
11916         (RS6000_BTI_unsigned_long_long): Ditto.
11917         (long_long_integer_type_internal_node): Ditti.
11918         (long_long_unsigned_type_internal_node): Ditti.
11919
11920         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
11921         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
11922         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
11923
11924         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
11925         short cuts.
11926         (vec_vsx_st): Ditto.
11927
11928 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11929
11930         * config/pa/pa-hpux10.opt: New.
11931         * config/hpux11.opt (pthread): New Driver option.
11932         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
11933         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
11934
11935 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11936
11937         * config/ia64/vms.opt: New.
11938         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
11939
11940 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
11941
11942         PR target/47580
11943         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
11944         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
11945         generator functions.
11946         (vsx_floatuns<VSi><mode>2): Ditto.
11947         (vsx_fix_trunc<mode><VSi>2): Ditto.
11948         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
11949
11950 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11951
11952         * config/i386/djgpp.opt (posix): New Driver option.
11953
11954 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11955
11956         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
11957         Move to the unsupported targets list.
11958
11959 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
11960
11961         PR rtl-optimization/47525
11962         * df-scan.c: Update copyright years.
11963         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
11964         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
11965
11966 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11967
11968         * config/i386/sysv4.h (TARGET_VERSION): Remove.
11969         (SUBTARGET_RETURN_IN_MEMORY): Remove.
11970         (ASM_OUTPUT_ASCII): Remove.
11971         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
11972
11973 2011-02-02  Jeff Law  <law@redhat.com>
11974
11975         PR middle-end/47543
11976         * reload.c (find_reloads_address): Handle reg+d address where both
11977         components are invalid by reloading the entire address.
11978
11979 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11980             Richard Guenther  <rguenther@suse.de>
11981
11982         PR tree-optimization/40979
11983         PR bootstrap/47044
11984         * passes.c (init_optimization_passes): After LIM call copy_prop
11985         and DCE to clean up.
11986         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
11987
11988 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11989
11990         PR tree-optimization/47576
11991         PR tree-optimization/47555
11992         * doc/invoke.texi (scev-max-expr-complexity): Documented.
11993         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11994         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
11995         * tree-scalar-evolution.c (follow_ssa_edge): Use
11996         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
11997
11998 2011-02-02  Richard Guenther  <rguenther@suse.de>
11999
12000         PR tree-optimization/47566
12001         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12002
12003 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12004
12005         PR debug/47106
12006         PR debug/47402
12007         * tree-inline.c (declare_return_variable): Remove unused caller
12008         variable.
12009
12010         PR debug/47106
12011         PR debug/47402
12012         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12013         * cfgexpand.c (account_used_vars_for_block): Use them.
12014         * tree-nrv.c (tree_nrv): Likewise.
12015         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12016         (dump_scope_block): Likewise.
12017         (remove_unused_locals): Likewise.
12018
12019         PR debug/47106
12020         PR debug/47402
12021         * tree-inline.c (declare_return_variable): Add result decl to
12022         local decls only once.
12023         * gimple-low.c (record_vars_into): Mark newly-created variables
12024         as referenced.
12025
12026 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12027
12028         PR debug/47498
12029         PR debug/47501
12030         PR debug/45136
12031         PR debug/45130
12032         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12033         debug insns.
12034         (no_real_insns_p, schedule_block, set_priorities): Drop special
12035         treatment of boundary debug insns.
12036         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12037         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12038         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12039         (BOUNDARY_DEBUG_INSN_P): Likewise.
12040         (SCHEDULE_DEBUG_INSN_P): Likewise.
12041         * sched-rgn.c (init_ready_list): Drop special treatment of
12042         boundary debug insns.
12043         * final.c (rest_of_clean_state): Clear notes' BB.
12044
12045 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12046
12047         * config/openbsd.opt (assert=): New Driver option.
12048
12049 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12050
12051         * config/i386/nto.opt: New.
12052         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12053
12054 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12055
12056         * config/i386/netware.opt: New.
12057         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12058
12059 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12060
12061         * config/interix.opt (posix): New Driver option.
12062
12063 2011-02-01  DJ Delorie  <dj@redhat.com>
12064
12065         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12066
12067         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12068         class for A0/A1.
12069
12070 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12071
12072         PR tree-optimization/47561
12073         * toplev.c (process_options): Print the Graphite flags.  Add
12074         flag_loop_flatten to the list of options requiring Graphite.
12075
12076 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12077
12078         * config/i386/cygming.opt (posix): New Driver option.
12079
12080 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12081
12082         * config/arm/vxworks.opt: New.
12083         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12084
12085 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12086
12087         * config/alpha/elf.opt: New.
12088         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12089         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12090
12091 2011-02-01  Richard Guenther  <rguenther@suse.de>
12092
12093         PR tree-optimization/47559
12094         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12095         store-motion on references that can throw.
12096
12097 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12098
12099         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12100         * tree-pass.h (TDF_CSELIB): New macro.
12101         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12102         cselib_lookup): Check for it rather than for TDF_DETAILS.
12103
12104 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12105
12106         PR driver/47547
12107         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12108         is HOST_BIT_BUCKET.
12109
12110         * opts.c (finish_options): Don't add x_aux_base_name if it is
12111         HOST_BIT_BUCKET.
12112
12113 2011-02-01  Richard Guenther  <rguenther@suse.de>
12114
12115         PR tree-optimization/47555
12116         Revert
12117         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12118
12119         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12120
12121 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12122
12123         PR gcc/46692
12124         * config/lm32/t-lm32: Add multilib for all CPU options.
12125
12126 2011-02-01  Richard Guenther  <rguenther@suse.de>
12127
12128         PR tree-optimization/47541
12129         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12130         sure to have a field at offset zero.
12131
12132 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12133
12134         * config/arc/arc.opt (EB, EL): New Driver options.
12135
12136 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12137
12138         * config/alpha/osf5.opt: New.
12139         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12140
12141 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12142
12143         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12144
12145 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12146
12147         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12148         -floop-interchange.
12149         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12150         is an alias of -floop-interchange and that it requires the
12151         Graphite infrastructure.
12152         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12153         flag_loop_interchange based on the value of flag_tree_loop_linear.
12154
12155 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12156             Richard Guenther  <rguenther@suse.de>
12157
12158         PR tree-optimization/47538
12159         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12160         type instead of r1type, except for comparisons.  For right
12161         shifts and comparisons punt if there are mismatches in
12162         sizetype vs. non-sizetype types.
12163
12164 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12165
12166         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12167         avx_runtime.
12168
12169 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12170
12171         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12172         version number.
12173         * configure: Regenerate.
12174
12175 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12176
12177         * configure.ac (gcc_cv_ld_static_option): Define.
12178         (gcc_cv_ld_dynamic_option): Define.
12179         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12180         instead.
12181         (HAVE_LD_STATIC_DYNAMIC): Update message.
12182         (LD_STATIC_OPTION): Define.
12183         (LD_DYNAMIC_OPTION): Define.
12184         * configure: Regenerate.
12185         * config.in: Regenerate.
12186         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12187         HAVE_LD_STATIC_DYNAMIC]: Use them.
12188
12189 2011-01-31  Nick Clifton  <nickc@redhat.com>
12190
12191         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12192         registers inside interrupt handlers if the handler is not a leaf
12193         function.
12194
12195 2011-01-31  Nick Clifton  <nickc@redhat.com>
12196
12197         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12198         reg_renumber returning an INVALID_REGNUM.
12199
12200 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12201
12202         PR libgcj/44341
12203         * doc/install.texi: Document host options discarded when cross
12204         configuring target libraries.
12205
12206 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12207
12208         Reverted:
12209         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12210         PR debug/45136
12211         PR debug/45130
12212         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12213         debug insns.
12214         (no_real_insns_p, schedule_block, set_priorities): Drop special
12215         treatment of boundary debug insns.
12216         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12217         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12218         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12219         (BOUNDARY_DEBUG_INSN_P): Likewise.
12220         (SCHEDULE_DEBUG_INSN_P): Likewise.
12221         * sched-rgn.c (init_ready_list): Drop special treatment of
12222         boundary debug insns.
12223         * final.c (rest_of_clean-state): Clear notes' BB.
12224
12225 2011-01-31  Alan Modra  <amodra@gmail.com>
12226
12227         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12228         toc relative expressions as we do in print_operand_address.
12229
12230 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12231
12232         * doc/extend.texi: Follow spelling conventions.
12233         * doc/invoke.texi: Fix a typo.
12234
12235 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12236
12237         * config/hpux11.opt: New.
12238         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12239         ia64*-*-hpux*): Use hpux11.opt.
12240
12241 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12242
12243         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12244         to tmake_file.
12245
12246 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12247
12248         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12249         support sites.
12250
12251 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12252
12253         * doc/install.texi (Binaries): Remove outdated reference for
12254         Motorola 68HC11/68HC12 downloads.
12255
12256 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12257
12258         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12259         Drepper's paper.
12260
12261 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12262
12263         PR bootstrap/47147
12264         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12265         used by NetBSD.
12266
12267 2011-01-28  Ahmad Sharif  <asharif@google.com>
12268
12269         * value-prof.c (check_counter): Corrected error message.
12270
12271 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12272
12273         * config/arm/arm.c (arm_legitimize_reload_address): New.
12274         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12275         arm_legitimize_reload_address.
12276         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12277
12278 2011-01-28  Ian Lance Taylor  <iant@google.com>
12279
12280         * godump.c (go_define): Ignore macros whose definitions include
12281         two adjacent operands.
12282
12283 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12284
12285         PR target/42894
12286         * varasm.c (force_const_mem): Store copy of x in desc->constant
12287         instead of x itself.
12288         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12289         itself into REG_EQUAL note.
12290
12291 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12292
12293         * config/freebsd.opt (posix, rdynamic): New Driver options.
12294
12295 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12296
12297         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12298         -Bstatic/-Bdynamic.
12299         * configure: Regenerate.
12300
12301 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12302
12303         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12304         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12305
12306 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12307
12308         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12309         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12310         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12311         (s390_preferred_reload_class): Make static. Change return and
12312         'rclass' argument type to reg_class_t.
12313
12314 2011-01-27  Jan Hubicka  <jh@suse.cz>
12315
12316         PR middle-end/46949
12317         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12318         (process_function_and_variable_attributes): Check defined weakrefs.
12319
12320 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12321
12322         PR tree-optimization/47228
12323         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12324         build_ref_for_offset.
12325
12326 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12327
12328         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12329
12330 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12331
12332         PR rtl-optimization/46856
12333         * postreload.c (reload_combine_recognize_const_pattern): Do not
12334         separate cc0 setter and user on cc0 targets.
12335
12336 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12337
12338         PR c/43082
12339         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12340         passed a VOID_TYPE expression, immediately emit an error and
12341         return error_mark_node.
12342
12343 2011-01-26  Jeff Law  <law@redhat.com>
12344
12345         PR rtl-optimization/47464
12346         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12347         rather than may_trap_p as needed.
12348
12349 2011-01-26  DJ Delorie  <dj@redhat.com>
12350
12351         PR rtl-optimization/46878
12352         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12353         setter/user dependency as well.
12354
12355 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12356
12357         PR rtl-optimization/44469
12358         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12359         after removing trivially dead basic blocks.
12360
12361 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12362
12363         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12364         * config/frv/frv.h (LINK_SPEC): Likewise.
12365         * config/i386/netware.h (LINK_SPEC): Likewise.
12366         * config/m68k/linux.h (ASM_SPEC): Likewise.
12367         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12368         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12369         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12370         * config/sparc/linux.h (ASM_SPEC): Likewise.
12371         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12372         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12373
12374 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12375
12376         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12377         * config/frv/frv.h (ASM_SPEC): Likewise.
12378         * config/m68k/linux.h (ASM_SPEC): Likewise.
12379         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12380         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12381         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12382         * config/sparc/linux.h (ASM_SPEC): Likewise.
12383         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12384         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12385
12386 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12387
12388         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12389         * config/frv/frv.h (LINK_SPEC): Likewise.
12390         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12391
12392 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12393
12394         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12395         * config/frv/frv.h (ASM_SPEC): Likewise.
12396         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12397         * config/m68k/linux.h (ASM_SPEC): Likewise.
12398         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12399         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12400         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12401         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12402         * config/sparc/linux.h (ASM_SPEC): Likewise.
12403         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12404         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12405         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12406
12407 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12408
12409         PR target/46997
12410         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12411         (*mux2): Ditto.
12412         (vec_extract_evenodd_help): Ditto.
12413         (vec_extract_evenv4hi): Ditto.
12414         (vec_extract_oddv4hi): Ditto.
12415         (vec_interleave_lowv2si): Ditto.
12416         (vec_interleave_highv2si): Ditto.
12417         (vec_extract_evenv2si): Ditto.
12418         (vec_extract_oddv2si: Ditto.
12419         (vec_pack_trunc_v2si): Ditto.
12420
12421 2011-01-22  Jan Hubicka  <jh@suse.cz>
12422
12423         PR target/47237
12424         * cgraph.h (cgraph_local_info): New field can_change_signature.
12425         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12426         signature can change.
12427         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12428         can change.
12429         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12430         (cgraph_function_versioning): We can not change signature of functions
12431         that don't allow that.
12432         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12433         (lto_input_node): Likewise.
12434         * ipa-inline.c (compute_inline_parameters): Compute
12435         local.can_change_signature.
12436         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12437         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12438         functions that can not change signature.
12439         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12440         init_cumulative_args): Do not use local calling conventions
12441         for functions that can not change signature.
12442
12443 2011-01-22  Jan Hubicka  <jh@suse.cz>
12444
12445         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12446
12447 2011-01-26  Richard Guenther  <rguenther@suse.de>
12448
12449         PR tree-optimization/47190
12450         * cgraphunit.c (process_common_attributes): New function.
12451         (process_function_and_variable_attributes): Use it.
12452
12453 2011-01-26  Richard Guenther  <rguenther@suse.de>
12454
12455         PR lto/47423
12456         * cgraphbuild.c (record_eh_tables): Record reference to personality
12457         function.
12458
12459 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12460
12461         PR debug/45454
12462         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12463         non-debug insns from moving up.
12464
12465 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12466
12467         PR target/40125
12468         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12469         t-dlldir{,-x} fragment for build and add it to tmake_file.
12470         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12471         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12472         * config/i386/t-dlldir: New file.
12473         (SHLIB_DLLDIR): Define.
12474         * config/i386/t-dlldir-x: New file.
12475         (SHLIB_DLLDIR): Define.
12476         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12477         (SHLIB_INSTALL): Use it.
12478
12479 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12480
12481         PR target/47246
12482         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12483         lower bound of the allowed Thumb-2 coprocessor load/store
12484         index range to -256. Add explaining comment.
12485
12486 2011-01-25  Ian Lance Taylor  <iant@google.com>
12487
12488         * godump.c (go_define): Improve lexing of macro expansion to only
12489         accept expressions which match Go spec.
12490
12491 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12492
12493         PR c++/43601
12494         * tree.c (handle_dll_attribute): Handle it.
12495         * doc/extend.texi (@item dllexport): Mention it.
12496         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12497
12498 2011-01-25  Ian Lance Taylor  <iant@google.com>
12499
12500         PR tree-optimization/26854
12501         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12502         (decl_jump_unsafe): Move higher in file, with no other change.
12503         (bind): Set has_jump_unsafe_decl if appropriate.
12504         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12505         (check_earlier_gotos): Likewise.
12506         (c_check_switch_jump_warnings): Likewise.
12507
12508 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12509
12510         * doc/invoke.texi (Warning Options): Add missing hyphen.
12511         (-fprofile-dir): Minor grammatical fixes.
12512         (-fbranch-probabilities): Likewise.
12513
12514 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12515
12516         PR debug/45136
12517         PR debug/45130
12518         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12519         debug insns.
12520         (no_real_insns_p, schedule_block, set_priorities): Drop special
12521         treatment of boundary debug insns.
12522         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12523         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12524         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12525         (BOUNDARY_DEBUG_INSN_P): Likewise.
12526         (SCHEDULE_DEBUG_INSN_P): Likewise.
12527         * sched-rgn.c (init_ready_list): Drop special treatment of
12528         boundary debug insns.
12529         * final.c (rest_of_clean-state): Clear notes' BB.
12530
12531 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12532
12533         * Makefile.in (LAMBDA_H): Removed.
12534         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12535         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12536         lambda-trans.o, and tree-loop-linear.o.
12537         (lto-symtab.o): Remove dependence on LAMBDA_H.
12538         (tree-loop-linear.o): Remove rule.
12539         (lambda-mat.o): Same.
12540         (lambda-trans.o): Same.
12541         (lambda-code.o): Same.
12542         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12543         (tree-vect-slp.o): Same.
12544         * hwint.h (gcd): Moved here.
12545         (least_common_multiple): Same.
12546         * lambda-code.c: Removed.
12547         * lambda-mat.c: Removed.
12548         * lambda-trans.c: Removed.
12549         * lambda.h: Removed.
12550         * tree-loop-linear.c: Removed.
12551         * lto-symtab.c: Do not include lambda.h.
12552         * omega.c (gcd): Removed.
12553         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12554         * tree-data-ref.c (print_lambda_vector): Moved here.
12555         (lambda_vector_copy): Same.
12556         (lambda_matrix_copy): Same.
12557         (lambda_matrix_id): Same.
12558         (lambda_vector_first_nz): Same.
12559         (lambda_matrix_row_add): Same.
12560         (lambda_matrix_row_exchange): Same.
12561         (lambda_vector_mult_const): Same.
12562         (lambda_vector_negate): Same.
12563         (lambda_matrix_row_negate): Same.
12564         (lambda_vector_equal): Same.
12565         (lambda_matrix_right_hermite): Same.
12566         * tree-data-ref.h: Do not include lambda.h.
12567         (lambda_vector): Moved here.
12568         (lambda_matrix): Same.
12569         (dependence_level): Same.
12570         (lambda_transform_legal_p): Removed declaration.
12571         (lambda_collect_parameters): Same.
12572         (lambda_compute_access_matrices): Same.
12573         (lambda_vector_gcd): Same.
12574         (lambda_vector_new): Same.
12575         (lambda_vector_clear): Same.
12576         (lambda_vector_lexico_pos): Same.
12577         (lambda_vector_zerop): Same.
12578         (lambda_matrix_new): Same.
12579         * tree-flow.h (least_common_multiple): Removed declaration.
12580         * tree-parloops.c (lambda_trans_matrix): Moved here.
12581         (LTM_MATRIX): Same.
12582         (LTM_ROWSIZE): Same.
12583         (LTM_COLSIZE): Same.
12584         (LTM_DENOMINATOR): Same.
12585         (lambda_trans_matrix_new): Same.
12586         (lambda_matrix_vector_mult): Same.
12587         (lambda_transform_legal_p): Same.
12588         * tree-pass.h (pass_linear_transform): Removed declaration.
12589         * tree-ssa-loop.c (tree_linear_transform): Removed.
12590         (gate_tree_linear_transform): Removed.
12591         (pass_linear_transform): Removed.
12592         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12593         flag_loop_interchange.
12594
12595 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12596
12597         PR tree-optimization/47265
12598         PR tree-optimization/47443
12599         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12600         if name still has some uses.
12601
12602 2011-01-25  Martin Jambor  <mjambor@suse.cz>
12603
12604         PR tree-optimization/47382
12605         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12606         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12607
12608 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
12609
12610         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12611         sjlj_except_unwind_info.
12612
12613 2011-01-25  Richard Guenther  <rguenther@suse.de>
12614
12615         PR tree-optimization/47426
12616         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12617         visible functions results escape.
12618
12619 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12620
12621         PR target/45701
12622         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12623         (arm_get_frame_offsets): Use it.
12624
12625 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12626             Jakub Jelinek  <jakub@redhat.com>
12627
12628         PR tree-optimization/47271
12629         * tree-if-conv.c (bb_postdominates_preds): New.
12630         (if_convertible_bb_p): Call bb_postdominates_preds.
12631         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12632         (predicate_scalar_phi): Call bb_postdominates_preds.
12633
12634 2011-01-25  Nick Clifton  <nickc@redhat.com>
12635
12636         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12637         * config/rx/rx.c (rx_function_value): Likewise.
12638         (rx_promote_function_mode): Likewise.
12639         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12640         in order to make it legitimate.
12641         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12642         make sure that the first operand is the same as the result register.
12643         (addsi3_unspec): Delete.
12644         (subdi3): Do not accept immediate operands.
12645         (subdi3_internal): Likewise.
12646
12647 2011-01-25  Jeff Law  <law@redhat.com>
12648
12649         PR rtl-optimization/37273
12650         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12651         handle them like argument loads from stack slots.  Do not double
12652         count memory for memory constants and argument loads from stack slots.
12653
12654 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12655
12656         PR tree-optimization/47427
12657         PR tree-optimization/47428
12658         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12659         coalesce if the new root var would be TREE_READONLY.
12660
12661 2011-01-25  Richard Guenther  <rguenther@suse.de>
12662
12663         PR middle-end/47414
12664         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12665         correct type for TBAA.
12666
12667 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12668
12669         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12670         (close_phi_written_to_memory): Call for_each_index with
12671         dr_indices_valid_in_loop.
12672
12673 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12674
12675         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12676         when it is initialized.
12677
12678 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12679
12680         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12681         call to graphite_find_data_references_in_stmt.
12682         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12683         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
12684         call to graphite_find_data_references_in_stmt.
12685         (analyze_drs_in_stmts): Same.
12686         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12687         in which the scalar analysis of indices is performed.
12688         (create_data_ref): Same.  Update call to dr_analyze_indices.
12689         (find_data_references_in_stmt): Update call to create_data_ref.
12690         (graphite_find_data_references_in_stmt): Same.
12691         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12692         declaration.
12693         (create_data_ref): Same.
12694         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12695         call to create_data_ref.
12696
12697 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12698
12699         * graphite-sese-to-poly.c (build_poly_scop): Move
12700         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
12701
12702 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12703
12704         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12705         VAR_DECL, PARM_DECL, and RESULT_DECL.
12706
12707 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12708
12709         * graphite-dependences.c (reduction_dr_1): Allow several reductions
12710         in a reduction PBB.
12711         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12712         that have already been marked as PBB_IS_REDUCTION.
12713
12714 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12715
12716         * graphite-scop-detection.c (same_close_phi_node): New.
12717         (remove_duplicate_close_phi): New.
12718         (make_close_phi_nodes_unique): New.
12719         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12720
12721 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12722
12723         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12724         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12725         of both data references to be the same.
12726
12727 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12728
12729         * graphite-dependences.c (build_lexicographical_constraint): Remove
12730         the gdim parameter.
12731         (build_lexicographical_constraint): Adjust call to
12732         ppl_powerset_is_empty.
12733         (dependence_polyhedron): Same.
12734         (graphite_legal_transform_dr): Same.
12735         (graphite_carried_dependence_level_k): Same.
12736         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12737         parameter.
12738         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12739
12740 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12741
12742         * graphite-sese-to-poly.c
12743         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12744         (close_phi_written_to_memory): New.
12745         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12746         and unshare_expr.
12747
12748 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12749
12750         * doc/install.texi: Update the expected version number of PPL to 0.11.
12751         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12752         #if PPL_VERSION_MINOR < 11.
12753
12754 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12755
12756         * graphite-dependences.c: Include graphite-cloog-util.h.
12757         (new_poly_ddr): Inlined into dependence_polyhedron.
12758         (free_poly_ddr): Moved close by new_poly_ddr.
12759         (dependence_polyhedron_1): Renamed dependence_polyhedron.
12760         Early return NULL when ppl_powerset_is_empty returns true.
12761         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
12762         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
12763         (graphite_legal_transform_dr): Call new_poly_ddr.
12764         (graphite_carried_dependence_level_k): Same.
12765         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
12766         (dot_transformed_deps_stmt_1): Removed.
12767         (dot_deps_stmt_1): Call dot_deps_stmt_2.
12768         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
12769         (dot_deps_1): Call dot_deps_2.
12770         * Makefile.in (graphite-dependences.o): Add missing dependence on
12771         graphite-cloog-util.h.
12772
12773 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12774
12775         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12776         (build_lexicographical_constraint): Same.
12777         (dependence_polyhedron_1): Same.
12778         (graphite_legal_transform_dr): Same.
12779         (graphite_carried_dependence_level_k): Same.
12780         * graphite-ppl.c (ppl_powerset_is_empty): New.
12781         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12782         * tree-data-ref.c (dump_data_reference): Print the basic block index.
12783
12784 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12785
12786         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12787         the "a followed by b" relation and document it.
12788
12789 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12790
12791         * graphite-dependences.c (build_lexicographical_constraint): Stop the
12792         iteration when the bag of constraints is empty.
12793
12794 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12795
12796         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12797
12798 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12799
12800         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12801         nest and two loop depths as parameters.
12802         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12803         lst_perfect_nestify.
12804
12805 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12806
12807         * graphite-dependences.c (print_pddr): Call
12808         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12809
12810 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12811
12812         * graphite-ppl.c (debug_gmp_value): New.
12813         * graphite-ppl.h (debug_gmp_value): Declared.
12814
12815 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
12816
12817         * doc/install.texi: Document availability of cloog-0.16.
12818
12819 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
12820
12821         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12822         invalid postdominance info.
12823
12824 2011-01-24  Jan Hubicka  <jh@suse.cz>
12825
12826         PR c/21659
12827         * doc/extend.texi (weak pragma): Drop claim that it must
12828         appear before definition.
12829         * varasm.c (merge_weak, declare_weak): Only sanity check
12830         that DECL is not output at a time it is declared weak.
12831
12832 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
12833
12834         * machmode.def: Fixed comments.
12835
12836 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
12837
12838         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12839
12840 2011-01-24  Paul Koning  <ni1d@arrl.net>
12841
12842         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
12843         WORDS_BIG_ENDIAN.
12844
12845 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12846
12847         PR target/46519
12848         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12849         (block_info): Add scanned and prev.
12850         (move_or_delete_vzeroupper_2): Return if the basic block
12851         has been scanned and the upper 128bit state is unchanged
12852         from the last scan.
12853         (move_or_delete_vzeroupper_1): Return true if the exit
12854         state is changed.
12855         (move_or_delete_vzeroupper): Visit basic blocks using the
12856         work-list based algorithm based on vt_find_locations in
12857         var-tracking.c.
12858
12859         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12860
12861 2011-01-24  Nick Clifton  <nickc@redhat.com>
12862
12863         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12864         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12865         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
12866         then define __v850e1__.
12867         * doc/invoke.texi: Document -mv850es.
12868
12869 2011-01-24  Richard Henderson  <rth@redhat.com>
12870
12871         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12872         compound unordered comparisons.
12873         * config/rx/rx.c (rx_split_fp_compare): Remove.
12874         * config/rx/rx-protos.h: Update.
12875         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12876         (cbranchsf4): Don't call rx_split_fp_compare.
12877         (*cbranchsf4): Use rx_split_cbranch.
12878         (*cmpsf): Don't accept "i" constraint.
12879         (*conditional_branch): Only valid after reload.
12880         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
12881
12882 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12883
12884         PR target/47385
12885         * config/rs6000/altivec.md (vector constant splitters): Add
12886         support for creating vector single precision constants if -mvsx is
12887         used and we would create the constant using Altivec primitives.
12888
12889 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
12890             Richard Sandiford  <rdsandiford@googlemail.com>
12891
12892         PR rtl-optimization/47166
12893         * reload1.c (emit_reload_insns): Disable the spill_reg_store
12894         mechanism for PRE_MODIFY and POST_MODIFY.
12895         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12896         reloadreg.
12897
12898 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
12899
12900         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
12901
12902 2011-01-22  Jan Hubicka  <jh@suse.cz>
12903
12904         PR lto/47333
12905         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12906
12907 2011-01-22  Jan Hubicka  <jh@suse.cz>
12908
12909         PR tree-optimization/43884
12910         PR lto/44334
12911         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
12912         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
12913
12914 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
12915
12916         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12917         * config/s390/s390.c (s390_register_move_cost,
12918         s390_memory_move_cost): New.
12919         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12920
12921 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12922
12923         PR middle-end/47401
12924         * except.c (sjlj_assign_call_site_values): Move setting the
12925         crtl->uses_eh_lsda flag to ...
12926         (sjlj_mark_call_sites): ... here.
12927         (sjlj_emit_function_enter): Support NULL dispatch label.
12928         (sjlj_build_landing_pads): In a function with no landing pads
12929         that still has must-not-throw regions, generate code to register
12930         a personality function with empty LSDA.
12931
12932 2011-01-21  Richard Henderson  <rth@redhat.com>
12933
12934         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
12935
12936         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
12937
12938         * compare-elim.c: New file.
12939         * Makefile.in (OBJS-common): Add it.
12940         (compare-elim.o): New.
12941         * common.opt (fcompare-elim): New.
12942         * opts.c (default_options_table): Add OPT_fcompare_elim.
12943         * tree-pass.h (pass_compare_elim_after_reload): New.
12944         * passes.c (init_optimization_passes): Add it.
12945         * recog.h: Protect against re-inclusion.
12946         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
12947         * doc/invoke.texi (-fcompare-elim): Document it.
12948         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
12949         * doc/tm.texi: Rebuild.
12950
12951 2011-01-22  Nick Clifton  <nickc@redhat.com>
12952
12953         * config/rx/rx.md (cstoresf4): Pass comparison operator to
12954         rx_split_fp_compare.
12955
12956 2011-01-22  Nick Clifton  <nickc@redhat.com>
12957
12958         * config/rx/rx.md (UNSPEC_CONST): New.
12959         (deallocate_and_return): Wrap the amount popped off the stack in
12960         an UNSPEC_CONST in order to stop it being rejected by
12961         -mmax-constant-size.
12962         (pop_and_return): Add a "(return)" rtx.
12963         (call): Drop the immediate operand.
12964         (call_internal): Likewise.
12965         (call_value): Likewise.
12966         (call_value_internal): Likewise.
12967         (sibcall_internal): Likewise.
12968         (sibcall_value_internal): Likewise.
12969         (sibcall): Likewise.  Generate an explicit call using
12970         sibcall_internal.
12971         (sibcall_value): Likewise.
12972         (mov<>): FAIL if a constant operand is not legitimate.
12973         (addsi3_unpsec): New pattern.
12974
12975         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
12976         (ok_for_max_constant): New function.
12977         (gen_safe_add): New function.
12978         (rx_expand_prologue): Use gen_safe_add.
12979         (rx_expand_epilogue): Likewise.
12980         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
12981         UNSPEC CONSTs.
12982
12983 2011-01-21  Jeff Law  <law@redhat.com>
12984
12985         PR tree-optimization/47053
12986         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
12987         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
12988         statements are deleted.
12989         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
12990         is nonempty, then purge dead edges and cleanup the CFG.
12991
12992 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12993
12994         PR debug/47402
12995         Temporarily revert:
12996         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12997         PR debug/47106
12998         * tree-dfa.c (create_var_ann): Mark variable as used.
12999
13000 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13001
13002         PR middle-end/45566
13003         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13004         notes from other section in hot/cold partitioning even if
13005         last_action is -3.  Increment call_site_base.
13006
13007         PR rtl-optimization/47366
13008         * fwprop.c (forward_propagate_into): Return bool.  If
13009         any changes are made, -fnon-call-exceptions is used and
13010         REG_EH_REGION note is present, call purge_dead_edges
13011         and return true if it purged anything.
13012         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13013         any EH edges were purged.
13014
13015 2011-01-21  Jeff Law  <law@redhat.com>
13016
13017         PR rtl-optimization/41619
13018         * caller-save.c (setup_save_areas): Break out code to determine
13019         which hard regs are live across calls by examining the reload chains
13020         so that it is always used.
13021         Eliminate code which checked REG_N_CALLS_CROSSED.
13022
13023 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13024
13025         PR tree-optimization/47355
13026         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13027         NOP has non-debug uses beyond PHIs in new_bb.
13028
13029 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13030
13031         PR debug/47106
13032         * cfgexpand.c (account_used_vars_for_block): Only account vars
13033         that are annotated as used.
13034         (estimated_stack_frame_size): Don't set TREE_USED.
13035         * tree-dfa.c (create_var_ann): Mark variable as used.
13036
13037 2011-01-21  Richard Guenther  <rguenther@suse.de>
13038
13039         PR middle-end/47395
13040         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13041
13042 2011-01-21  Richard Guenther  <rguenther@suse.de>
13043
13044         PR tree-optimization/47365
13045         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13046         (vn_reference_lookup_pieces): Adjust.
13047         (vn_reference_lookup): Likewise.
13048         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13049         (vn_reference_lookup_3): Only look through kills if in
13050         VN_WALKREWRITE mode.
13051         (vn_reference_lookup_pieces): Adjust.
13052         (vn_reference_lookup): Likewise.
13053         (visit_reference_op_load): Likewise.
13054         (visit_reference_op_store): Likewise.
13055         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13056         (compute_avail): Likewise.
13057         (eliminate): Likewise.
13058
13059 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13060
13061         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13062         DECL_IGNORED_P non-reg vars if they are used.
13063
13064         PR tree-optimization/47391
13065         * varpool.c (const_value_known_p): Return false if
13066         decl is volatile.
13067
13068 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13069
13070         PR bootstrap/47215
13071         * config/i386/i386.c (ix86_local_alignment): Handle
13072         case for va_list_type_node is nil.
13073         (ix86_canonical_va_list_type): Likewise.
13074
13075 2011-01-21  Alan Modra  <amodra@gmail.com>
13076
13077         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13078         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13079
13080 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13081
13082         * config/arm/arm.md (define_attr type): Rename f_load
13083         and f_store to f_fpa_load and f_fpa_store. Update.
13084         (write_conflict): Deal with rename fallout.
13085         (*push_fp_multi): Likewise.
13086         * config/arm/fpa.md (f_load): Use f_fpa_load.
13087         (f_store): Use f_fpa_store.
13088         (*movsf_fpa): Likewise.
13089         (*movdf_fpa): Likewise.
13090         (*movxf_fpa): Likewise.
13091         (*thumb2_movsf_fpa): Likewise.
13092         (*thumb2_movdf_fpa): Likewise.
13093         (*thumb2_movxf_fpa): Likewise.
13094         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13095         f_loadd and f_stored.
13096         (*thumb2_movdi_vfp): Likewise.
13097         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13098         (*thumb2_movsi_vfp): Likewise.
13099         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13100         Use f_loads instead of f_load.
13101         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13102
13103 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13104
13105         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13106         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13107         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13108         (xtensa_mode_dependent_address_p): New function.
13109         (constantpool_address_p): Make static. Change return type to bool.
13110         Change argument type to const_rtx. Use CONST_INT_P predicate.
13111
13112 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13113
13114         PR debug/46583
13115         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13116
13117 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13118
13119         PR debug/47283
13120         * cfgexpand.c (expand_debug_expr): Instead of generating
13121         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13122         etc. handling.
13123
13124 2011-01-20  Richard Guenther  <rguenther@suse.de>
13125
13126         PR middle-end/47370
13127         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13128         the pointer operand of MEM_REFs.
13129
13130 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13131
13132         PR tree-optimization/46130
13133         * ipa-split.c (consider_split): If return_bb contains non-virtual
13134         PHIs other than for retval or if split_function would not adjust it,
13135         refuse to split.
13136
13137 2011-01-20  Richard Guenther  <rguenther@suse.de>
13138
13139         PR tree-optimization/47167
13140         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13141         Revert previous change, only avoid enumeral type changes.
13142
13143 2011-01-19  Mike Stump  <mikestump@comcast.net>
13144
13145         * doc/tm.texi.in (BRANCH_COST): Englishify.
13146         * doc/tm.texi (BRANCH_COST): Likewise.
13147
13148 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13149
13150         PR c++/47291
13151         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13152         (gen_scheduled_generic_parms_dies): New functions.
13153         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13154         generation for the end of CU compilation.
13155         (dwarf2out_finish): Generate template parameters DIEs here.
13156
13157 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13158
13159         PR debug/46240
13160         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13161         debug bind stmt on merge edges.
13162
13163 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13164
13165         PR debug/47079
13166         PR debug/46724
13167         * function.c (instantiate_expr): Instantiate incoming rtl of
13168         implicit arguments, and recurse on VALUE_EXPRs.
13169         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13170         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13171
13172 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13173
13174         * c-parser.c (c_parser_for_statement): Initialize
13175         collection_expression.
13176
13177 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13178
13179         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13180
13181 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13182
13183         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13184         (LINK_SHLIB_SPEC): Don't use %(link_path).
13185         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13186
13187 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13188
13189         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13190         (NO_SHARED_LIB_SUPPORT): Remove.
13191         (LINK_SHLIB_SPEC): Remove one conditional definition.
13192
13193 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13194
13195         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13196         %{call_shared}.
13197         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13198         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13199         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13200         %{call_shared} and conditionals on these options not being passed.
13201         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13202         %{call_shared}.
13203
13204 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13205
13206         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13207         simplify.
13208
13209         * ipa-split.c: Spelling fixes.
13210
13211 2011-01-19  Richard Henderson  <rth@redhat.com>
13212
13213         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13214         (*mulsi3): Likewise.
13215
13216         * longlong.h [__mn10300__] (count_leading_zeros): New.
13217         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13218         [__mn10300__] (add_ssaaaa, subddmmss): New.
13219         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13220         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13221
13222 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13223
13224         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13225
13226 2011-01-19  Richard Henderson  <rth@redhat.com>
13227
13228         * config/mn10300/mn10300.md (addsi3_flags): New.
13229         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13230         (subsi3_flags, subc_internal, subdi3): New.
13231         (subdi3_internal, *subdi3_degenerate): New.
13232         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13233
13234         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13235         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13236         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13237         * config/mn10300/mn10300-protos.h: Update.
13238         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13239         (return_ret): Likewise.  Rename from return_internal_regs.
13240         (return_internal): Remove.
13241
13242         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13243         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13244         (mn10300_legitimate_constant_p): Likewise.
13245         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13246         (mn10300_frame_size): New.
13247         (mn10300_expand_prologue): Use it.
13248         (mn10300_expand_epilogue): Likewise.
13249         (mn10300_initial_offset): Likewise.
13250         * config/mn10300/mn10300-protos.h: Update.
13251         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13252         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13253         (prologue, epilogue, return_internal): Tidy output code.
13254         (mn10300_store_multiple_operation, return): Likewise.
13255         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13256         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13257         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13258         (load_pic, am33_load_pic): New.
13259         (mn10300_load_pic0, mn10300_load_pic1): New.
13260
13261         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13262         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13263         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13264         (cc_flags_for_mode, cc_flags_for_code): New.
13265         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13266         overflow flag is not valid.  Validate that the flags we need
13267         for the comparison are valid.
13268         (mn10300_output_cmp): Remove.
13269         (mn10300_output_add): New.
13270         (mn10300_select_cc_mode): Use cc_flags_for_code.
13271         (mn10300_split_cbranch): New.
13272         (mn10300_match_ccmode): New.
13273         (mn10300_split_and_operand_count): New.
13274         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13275         to the function.
13276         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13277         (addsi3): ... here.  Use mn10300_output_add.
13278         (*addsi3_flags): New.
13279         (*am33_subsi3, *mn10300_subsi3): Merge...
13280         (subsi3): ... here.  Use attribute isa.
13281         (*subsi3_flags): New.
13282         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13283         when possible.
13284         (*am33_andsi3, *mn10300_andsi3): Merge...
13285         (andsi3): ... here.
13286         (*andsi3_flags): New.
13287         (andsi3 splitters): New.
13288         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13289         (iorsi3): ... here.
13290         (*iorsi3_flags): New.
13291         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13292         (xorsi3): ... here.
13293         (*xorsi3_flags): New.
13294         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13295         (one_cmplsi2): ... here.
13296         (*one_cmplsi2_flags): New.
13297         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13298         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13299         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13300         use matching constraints to eliminate a self-comparison.
13301         (*integer_conditional_branch): Rename from integer_conditional_branch.
13302         Use int_mode_flags to match CC_REG.
13303         (*cbranchsi4_btst, *btstsi): New.
13304         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13305         mn10300_split_cbranch.
13306         (*am33_cmpsf): Rename from am33_cmpsf.
13307         (*float_conditional_branch): Rename from float_conditional_branch.
13308         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13309         (zero_extendqisi2): ... here.
13310         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13311         (zero_extendhisi2): ... here.
13312         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13313         (extendqisi2): ... here.
13314         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13315         (extendhisi2): ... here.
13316         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13317         (ashlsi3): ... here.
13318         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13319         (lshrsi3): ... here.
13320         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13321         (ashrsi3): ... here.
13322         (consecutive add peephole): Remove.
13323         * config/mn10300/predicates.md (label_ref_operand): New.
13324         (int_mode_flags): New.
13325         (CCZN_comparison_operator): New.
13326
13327         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13328         (throughput_42_latency_43): New reservation.
13329         (mulsidi3, umulsidi3): New expanders.
13330         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13331         the MDR register to allocation; separately allocate the low and
13332         high parts of the DImode result.
13333         (umulsidi3_internal): Similarly.
13334         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13335         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13336         (udivsi3, umodsi3): Remove.
13337         (udivmodsi4, divmodsi4): New expanders.
13338         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13339         (*divmodsi4): Simiarly.
13340         (ext_internal): New.
13341
13342         * config/mn10300/constraints.md ("z"): New constraint.
13343         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13344         (FIXED_REGISTERS): Don't fix MDR.
13345         (CALL_USED_REGSITERS): Reformat nicely.
13346         (REG_ALLOC_ORDER): Add MDR.
13347         (enum regclass): Add MDR_REGS.
13348         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13349         (IRA_COVER_CLASSES): Add MDR_REGS.
13350         (REGNO_REG_CLASS): Handle MDR_REG.
13351         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13352         (mn10300_register_move_cost): Likewise.
13353         * config/mn10300/mn10300.md (MDR_REG): New.
13354         (*movsi_internal): Handle moves to/from MDR_REGS.
13355
13356         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13357         POST_MODIFY.
13358         (mn10300_secondary_reload): Tidy combination reload classes.
13359         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13360         addresses for AM33.  Allow symbolic offsets for reg+imm.
13361         (mn10300_regno_in_class_p): New.
13362         (mn10300_legitimize_reload_address): New.
13363         * config/mn10300/mn10300.h (enum reg_class): Remove
13364         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13365         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13366         SP_OR_GENERAL_REGS.
13367         (REG_CLASS_NAMES): Update to match.
13368         (REG_CLASS_CONTENTS): Likewise.
13369         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13370         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13371         (REGNO_IN_RANGE_P): Remove.
13372         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13373         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13374         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13375         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13376         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13377         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13378         (REGNO_GENERAL_P): New.
13379         (HAVE_POST_MODIFY_DISP): New.
13380         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13381         (LEGITIMIZE_RELOAD_ADDRESS): New.
13382         * config/mn10300/mn10300-protos.h: Update.
13383
13384         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13385         DATA_REGS for AM33 stack-pointer destination.
13386         (mn10300_preferred_output_reload_class): Likewise.
13387         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13388         into a form appropriate for ...
13389         (TARGET_SECONDARY_RELOAD): New.
13390         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13391         * config/mn10300/mn10300-protos.h: Update.
13392         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13393         reload_insi; use the "A" constraint for the scratch; handle AM33
13394         moves of sp to non-address registers.
13395
13396         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13397         (*movqi_internal): ... here.
13398         (*am33_movhi, *mn10300_movhi): Merge into...
13399         (*movhi_internal): ... here.
13400         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13401         as the source/destination of moves from/to SP.
13402         (movsf): Only allow for AM33-2.
13403         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13404         any integer constant constraint.  Only allow for AM33-2.  Tidy
13405         all of the alternative outputs.
13406         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13407         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13408         for MN103.
13409         (udivsi3, umodsi3): New patterns for MN103 only.
13410
13411 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13412
13413         * doc/tm.texi.in: Spell out that a lack of register class unions
13414         can lead to ICEs.
13415         * doc/tm.texi: Regenerate.
13416
13417 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13418
13419         PR rtl-optimization/47337
13420         * dce.c (check_argument_store): New function.
13421         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13422
13423         PR tree-optimization/47290
13424         * tree-eh.c (infinite_empty_loop_p): New function.
13425         (cleanup_empty_eh): Use it.
13426
13427 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13428
13429         PR target/46997
13430         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13431         (a64_expand_widen_sum): Ditto.
13432         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13433         (vec_extract_evenodd_help): Ditto.
13434         (vec_extract_evenv4hi): Ditto.
13435         (vec_extract_oddv4hi): Ditto.
13436         (vec_extract_evenv2si): Ditto.
13437         (vec_extract_oddv2si): Ditto.
13438         (vec_extract_evenv2sf): Ditto.
13439         (vec_extract_oddv2sf): Ditto.
13440         (vec_pack_trunc_v4hi: Ditto.
13441         (vec_pack_trunc_v2si): Ditto.
13442         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13443         (vec_interleave_highv8qi): Ditto.
13444         (mix1_r): Ditto.
13445         (vec_extract_oddv8qi): Ditto.
13446         (vec_interleave_lowv4hi): Ditto.
13447         (vec_interleave_highv4hi): Ditto.
13448         (vec_interleave_lowv2si): Ditto.
13449         (vec_interleave_highv2si): Ditto.
13450
13451 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13452
13453         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13454         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13455         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13456         (pa_c_mode_for_suffix): New.
13457         (TARGET_EXPAND_BUILTIN): Define.
13458         (TARGET_C_MODE_FOR_SUFFIX): Define.
13459         (pa_builtins): Define.
13460         (pa_init_builtins): Register __float128 type and init new support
13461         builtins.
13462         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13463         * config/pa/quadlib.c (_U_Qfcopysign): New.
13464
13465 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13466
13467         PR middle-end/46894
13468         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13469         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13470         are defined.
13471
13472 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13473
13474         PR tree-optimization/47179
13475         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13476         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13477
13478 2011-01-18  Richard Guenther  <rguenther@suse.de>
13479
13480         PR rtl-optimization/47216
13481         * emit-rtl.c: Include tree-flow.h.
13482         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13483         of replicating it with different semantics.
13484         * Makefile.in (emit-rtl.o): Adjust.
13485
13486 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13487
13488         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13489         (cortex_a9_dp): Handle neon types correctly.
13490
13491 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13492
13493         PR rtl-optimization/47299
13494         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13495         subtarget.  Use normal multiplication if both operands are constants.
13496         * expmed.c (expand_widening_mult): Don't try to optimize constant
13497         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13498         before using it.
13499
13500 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13501
13502         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13503         spacing after 'e.g.', typos, comma, hyphenation.
13504
13505 2011-01-17  Richard Henderson  <rth@redhat.com>
13506
13507         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13508         (rx_restricted_mem_operand): New.
13509         (rx_shift_operand): Use register_operand.
13510         (rx_source_operand, rx_compare_operand): Likewise.
13511         * config/rx/rx.md (addsi3_flags): New expander.
13512         (adddi3): Rewrite as expander.
13513         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13514         (subsi3_flags): New expander.
13515         (subdi3): Rewrite as expander.
13516         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13517
13518         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13519         (rx_init_builtins): Remove sat builtin.
13520         (rx_expand_builtin): Likewise.
13521         * config/rx/rx.md (ssaddsi3): New.
13522         (*sat): Rename from sat.  Represent the CC_REG input.
13523
13524         * config/rx/predicates.md (rshift_operator): New.
13525         * config/rx/rx.c (rx_expand_insv): Remove.
13526         * config/rx/rx-protos.h: Update.
13527         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13528         operand to the canonical position.
13529         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13530         (*bitclr, *bitclr_in_memory): Similarly.
13531         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13532         (insv): Retain the zero_extract in the expansion.
13533
13534         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13535         (bswaphi2, bitinvert, revw): Likewise.
13536
13537         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13538         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13539         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13540         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13541         (bitset, bitset_in_memory): Likewise.
13542         (bitinvert, bitinvert_in_memory): Likewise.
13543         (bitclr, bitclr_in_memory): Likewise.
13544         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13545         (rx_strend, rx_cmpstrn): Likewise.
13546         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13547         (bitop peep2 patterns): Remove.
13548
13549         * config/rx/rx.c (rx_match_ccmode): New.
13550         * config/rx/rx-protos.h: Update.
13551         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13552         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13553         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13554         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13555         (fix_truncsfsi2, floatsisf2): Likewise.
13556         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13557         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13558         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13559         (*subsi3_flags, *xorsi3_flags): New.
13560
13561         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13562
13563         * config/rx/rx.c (rx_print_operand): Remove workaround for
13564         unsplit comparison operations.
13565
13566         * config/rx/rx.md (movsicc): Split after reload.
13567         (*movsicc): Merge *movsieq and *movsine via match_operator.
13568         (*stcc): New pattern.
13569
13570         * config/rx/rx.c (rx_float_compare_mode): Remove.
13571         * config/rx/rx.h (rx_float_compare_mode): Remove.
13572         * config/rx/rx.md (cstoresi4): Split after reload.
13573         (*sccc): New pattern.
13574
13575         * config/rx/predicates.md (label_ref_operand): New.
13576         (rx_z_comparison_operator): New.
13577         (rx_zs_comparison_operator): New.
13578         (rx_fp_comparison_operator): New.
13579         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13580         Validate that the flags are set properly for the comparison.
13581         (rx_gen_cond_branch_template): Remove.
13582         (rx_cc_modes_compatible): Remove.
13583         (mode_from_flags): New.
13584         (flags_from_code): Rename from flags_needed_for_conditional.
13585         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13586         (rx_select_cc_mode): Likewise.
13587         (rx_split_fp_compare): New.
13588         (rx_split_cbranch): New.
13589         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13590         (*cbranchsi4): Use match_operator and rx_split_cbranch.
13591         (*cbranchsf4): Similarly.
13592         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
13593         match_operator and rx_split_cbranch.
13594         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13595         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
13596         (*cmpsi): Rename from cmpsi.
13597         (*tstsi): Rename from tstsi.
13598         (*cmpsf): Rename from cmpsf; use CC_Fmode.
13599         (*conditional_branch): Rename from conditional_branch.
13600         (*reveresed_conditional_branch): Remove.
13601         (b<code>): Remove expander.
13602         * config/rx/rx-protos.h: Update.
13603
13604         * config/rx/rx.c (rx_compare_redundant): Remove.
13605         * config/rx/rx.md (cmpsi): Don't use it.
13606         * config/rx/rx-protos.h: Update.
13607
13608         * config/rx/rx-modes.def (CC_F): New mode.
13609         * config/rx/rx.c (rx_select_cc_mode): New.
13610         * config/rx/rx.h (SELECT_CC_MODE): Use it.
13611         * config/rx/rx-protos.h: Update.
13612
13613 2011-01-17  Richard Henderson  <rth@redhat.com>
13614
13615         * except.c (dump_eh_tree): Fix stray ; after for statement.
13616
13617 2011-01-17  Richard Guenther  <rguenther@suse.de>
13618
13619         PR tree-optimization/47313
13620         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13621         handling before copying the body.  Properly deal with
13622         by-reference result in SSA form.
13623
13624 2011-01-17  Ian Lance Taylor  <iant@google.com>
13625
13626         PR target/47219
13627         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13628         (struct_value_alias_set): Don't define.
13629         (sparc_option_override): Don't set sparc_sr_alias_set and
13630         struct_value_alias_set.
13631         (save_or_restore_regs): Use gen_frame_mem rather than calling
13632         set_mem_alias_set.
13633         (sparc_struct_value_rtx): Likewise.
13634
13635 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
13636
13637         PR target/47318
13638         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
13639         (_mm_maskstore_pd): Likewise.
13640         (_mm_maskload_ps): Likewise.
13641         (_mm_maskstore_ps): Likewise.
13642         (_mm256_maskload_pd): Change mask to __m256i.
13643         (_mm256_maskstore_pd): Likewise.
13644         (_mm256_maskload_ps): Likewise.
13645         (_mm256_maskstore_ps): Likewise.
13646
13647         * config/i386/i386-builtin-types.def: Updated.
13648         (ix86_expand_special_args_builtin): Likewise.
13649
13650         * config/i386/i386.c (bdesc_special_args): Update
13651         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13652         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13653         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13654         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13655
13656         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13657         Use <avxpermvecmode> on mask register.
13658         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13659
13660 2011-01-17  Olivier Hainque  <hainque@adacore.com>
13661             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
13662             Eric Botcazou  <ebotcazou@adacore.com>
13663
13664         PR target/46655
13665         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13666         if <= USHRT_MAX in 32-bit mode.
13667
13668 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13669
13670         * doc/install.texi (Configuration, Specific): Wrap long
13671         lines in examples.  Allow line wrapping in long options
13672         and URLs where beneficial for PDF output.
13673
13674 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
13675
13676         * config/mips/mips.c (mips_classify_symbol): Don't return
13677         SYMBOL_PC_RELATIVE for nonlocal labels.
13678
13679 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13680
13681         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13682
13683 2011-01-15  Jan Hubicka  <jh@suse.cz>
13684
13685         PR tree-optimization/47276
13686         * ipa.c (function_and_variable_visibility): Do not try to mark alias
13687         declarations as needed.
13688
13689 2011-01-15  Martin Jambor  <mjambor@suse.cz>
13690
13691         * common.opt (fdevirtualize): New flag.
13692         * doc/invoke.texi (Option Summary): Document it.
13693         * opts.c (default_options_table): Add devirtualize flag.
13694         * ipa-prop.c (detect_type_change): Return immediately if
13695         devirtualize flag is not set.
13696         (detect_type_change_ssa): Likewise.
13697         (compute_known_type_jump_func): Likewise.
13698         (ipa_analyze_virtual_call_uses): Likewise.
13699
13700 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13701
13702         PR tree-optimization/45934
13703         PR tree-optimization/46302
13704         * ipa-prop.c (type_change_info): New type.
13705         (stmt_may_be_vtbl_ptr_store): New function.
13706         (check_stmt_for_type_change): Likewise.
13707         (detect_type_change): Likewise.
13708         (detect_type_change_ssa): Likewise.
13709         (compute_complex_assign_jump_func): Check for dynamic type change.
13710         (compute_complex_ancestor_jump_func): Likewise.
13711         (compute_known_type_jump_func): Likewise.
13712         (compute_scalar_jump_functions): Likewise.
13713         (ipa_analyze_virtual_call_uses): Likewise.
13714         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13715
13716 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13717
13718         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13719         * config/i386/i386.opt (msse5): New Alias.
13720
13721 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13722
13723         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13724         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13725         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13726         * config/sparc/sparc.h (CC1_SPEC): Likewise.
13727
13728 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13729
13730         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13731         -mcpu options.
13732         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13733         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13734         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13735         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13736         Likewise.
13737         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13738
13739 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13740
13741         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
13742
13743 2011-01-14  Mike Stump  <mikestump@comcast.net>
13744
13745         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13746         * config/fr30/fr30.md: Likweise
13747         (movsi_push): Likewise.
13748         (movsi_pop): Likewise.
13749         (enter_func): Likewise.
13750         * config/moxie/moxie.md (movsi_push): Likewise.
13751         (movsi_pop): Likewise.
13752
13753 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13754
13755         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13756         %{no_archive} %{exact_version}.
13757         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13758         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13759         %{no_archive} %{exact_version}.
13760         * config/mips/openbsd.h (LINK_SPEC): Likewise.
13761         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13762         * config/mips/vxworks.h: Likewise.
13763
13764 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13765
13766         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
13767
13768 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13769
13770         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13771         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13772
13773 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13774
13775         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13776         -nodefaultlib.
13777
13778 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13779
13780         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13781         for mcpu not cpu.
13782         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13783         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13784         not cpu.
13785         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13786         Don't handle -shlib.
13787
13788 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13789
13790         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13791         (CC1_SPEC): Don't handle -profile.
13792
13793 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13794
13795         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13796         * config/mips/mips.h (CC1_SPEC): Likewise.
13797
13798 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13799
13800         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13801         * config/mips/mips.h (CC1_SPEC): Likewise.
13802
13803 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13804
13805         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13806         * config/m32r/linux.h (LINK_SPEC): Likewise.
13807         * config/mips/linux.h (LINK_SPEC): Likewise.
13808         * config/mips/linux64.h (LINK_SPEC): Likewise.
13809         * config/sparc/linux.h (LINK_SPEC): Likewise.
13810         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13811         LINK_SPEC): Likewise.
13812         * config/xtensa/linux.h (LINK_SPEC): Likewise.
13813
13814 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13815
13816         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13817         %{version:-v}.
13818         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13819
13820 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13821
13822         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13823         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13824
13825 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13826
13827         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13828
13829 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13830
13831         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13832         supports -Bstatic/-Bdynamic.
13833         * configure: Regenerate.
13834
13835 2011-01-14  Jan Hubicka  <jh@suse.cz>
13836             Jack Howarth  <howarth@bromo.med.uc.edu>
13837
13838         PR target/46037
13839         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13840         when checking debug_info_level. Test write_symbols instead of
13841         debug_hooks->var_location when setting flag_var_tracking_uninit.
13842
13843 2011-01-14  Richard Guenther  <rguenther@suse.de>
13844
13845         PR tree-optimization/47179
13846         * target.def (ref_may_alias_errno): New target hook.
13847         * targhooks.h (default_ref_may_alias_errno): Declare.
13848         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13849         (default_ref_may_alias_errno): New function.
13850         * target.h (struct ao_ref_s): Declare.
13851         * tree-ssa-alias.c: Include target.h.
13852         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13853         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13854         (targhooks.o): Likewise.
13855         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13856         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13857
13858 2011-01-14  Richard Guenther  <rguenther@suse.de>
13859
13860         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
13861
13862 2011-01-14  Richard Guenther  <rguenther@suse.de>
13863
13864         PR tree-optimization/47280
13865         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13866         return CFG changes.
13867         (tree_ssa_forward_propagate_single_use_vars): Deal with
13868         CFG changes from associate_plusminus.
13869
13870 2011-01-14  Richard Guenther  <rguenther@suse.de>
13871
13872         PR middle-end/47281
13873         Revert
13874         2011-01-11  Richard Guenther  <rguenther@suse.de>
13875
13876         PR tree-optimization/46076
13877         * tree-ssa.c (useless_type_conversion_p): Conversions from
13878         unprototyped to empty argument list function types are useless.
13879
13880 2011-01-14  Richard Guenther  <rguenther@suse.de>
13881
13882         PR tree-optimization/47286
13883         * tree-ssa-structalias.c (new_var_info): Register variables are global.
13884
13885 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13886
13887         PR middle-end/46823
13888         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13889
13890 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
13891
13892         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13893         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13894         * config/xtensa/xtensa.c (xtensa_libcall_value,
13895         xtensa_function_value_regno_p): New functions.
13896         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13897
13898 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
13899
13900         PR c++/47213
13901         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13902         PE specific hook.
13903         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13904         New function prototype.
13905         * config/i386/winnt.c (i386_pe_assemble_visibility):
13906         Warn only if attribute was specified by user.
13907
13908 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13909
13910         PR target/47251
13911         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13912         floating point.
13913         (floatunsdidf2_fcfidu): Ditto.
13914
13915 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13916
13917         * config/s390/s390.c (print_operand_address): Replace 'error' with
13918         'output_operand_lossage'.
13919         (print_operand): Likewise.
13920
13921 2011-01-13  Jeff Law  <law@redhat.com>
13922
13923         PR rtl-optimization/39077
13924         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
13925         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
13926         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
13927         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
13928         * gcse.c (prune_insertions_deletions): New function.
13929         (compute_pre_data): Use it.
13930
13931 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
13932
13933         PR debug/PR46973
13934         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
13935         static function.
13936         (prune_unused_types_mark): Use it.
13937
13938 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
13939
13940         PR rtl-optimization/45352
13941         * sel-sched.c: Update copyright years.
13942         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
13943         in the advancing loop when we have issued issue_rate insns.
13944
13945 2011-01-12  Richard Henderson  <rth@redhat.com>
13946
13947         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
13948         (TARGET_MD_ASM_CLOBBERS): New.
13949
13950         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
13951         (TARGET_DELEGITIMIZE_ADDRESS): New.
13952
13953         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
13954         (clzsi2, *bsch): New patterns.
13955
13956         * config/mn10300/mn10300.md (INT): New mode iterator.
13957         (*mov<INT>_clr): New pattern, and peep2 to generate it.
13958
13959         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
13960         flag_split_wide_types.
13961
13962         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
13963         (mn10300_trampoline_init): Rewrite without a template, an immediate
13964         load and a direct branch.
13965         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
13966
13967 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
13968
13969         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13970         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
13971         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
13972         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13973
13974 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
13975
13976         PR debug/47209
13977         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
13978         of type.
13979
13980 2011-01-12  Jan Hubicka  <jh@suse.cz>
13981
13982         PR driver/47244
13983         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
13984         (PLUGIN_COND_CLOSE): New macro.
13985         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
13986
13987 2011-01-12  Richard Guenther  <rguenther@suse.de>
13988
13989         PR lto/47259
13990         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
13991         register variables in a MEM_REF.
13992
13993 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
13994
13995         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
13996         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
13997         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
13998         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13999         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14000         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14001         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14002         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14003         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14004         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14005         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14006         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14007         * config/gnu-user.h: New.  Copied from linux.h.
14008         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14009         GNU_USER_TARGET_STARTFILE_SPEC.
14010         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14011         GNU_USER_TARGET_ENDFILE_SPEC.
14012         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14013         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14014         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14015         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14016         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14017         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14018         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14019         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14020         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14021         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14022         * config/arm/linux-eabi.h (CC1_SPEC): Use
14023         GNU_USER_TARGET_CC1_SPEC.
14024         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14025         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14026         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14027         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14028         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14029         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14030         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14031         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14032
14033 2011-01-12  Richard Guenther  <rguenther@suse.de>
14034
14035         PR other/46946
14036         * doc/invoke.texi (ffast-math): Document it is turned on
14037         with -Ofast.
14038
14039 2011-01-12  Jan Hubicka  <jh@suse.cz>
14040
14041         PR tree-optimization/47233
14042         * opts.c (common_handle_option): Disable ipa-reference with profile
14043         feedback.
14044
14045 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14046
14047         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14048         error message.
14049
14050 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14051
14052         * c-parser.c (c_lex_one_token): Updated and reindented some
14053         comments.  No changes in code.
14054
14055 2011-01-11  Ian Lance Taylor  <iant@google.com>
14056
14057         * godump.c (go_output_var): Don't output the variable if there is
14058         already a type with the same name.
14059
14060 2011-01-11  Ian Lance Taylor  <iant@google.com>
14061
14062         * godump.c (go_format_type): Don't generate float80.
14063
14064 2011-01-11  Richard Henderson  <rth@redhat.com>
14065
14066         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14067         declaration.  Rewrite for both speed and size.
14068         (mn10300_address_cost_1): Remove.
14069         (mn10300_register_move_cost): New.
14070         (mn10300_memory_move_cost): New.
14071         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14072         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14073         extensions, shifts, BSWAP, CLZ.
14074         (mn10300_wide_const_load_uses_clr): Remove.
14075         (TARGET_REGISTER_MOVE_COST): New.
14076         (TARGET_MEMORY_MOVE_COST): New.
14077         * config/mn10300/mn10300-protos.h: Update.
14078         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14079
14080         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14081         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14082         * config/mn10300/mn10300-protos.h: Update.
14083         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14084         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14085         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14086         (*test_int_bitfield, *test_byte_bitfield): Remove.
14087         (*bit_test, *subreg_bit_test): Remove.
14088         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14089
14090         * config/mn10300/constraints.md ("c"): Rename from "A".
14091         ("A", "D"): New constraint letters.
14092         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14093         (fmssf4, fnmasf4, fnmssf4): Likewise.
14094
14095         * config/mn10300/mn10300.md (isa): New attribute.
14096         (enabled): New attribute.
14097
14098         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14099         (abssf2, negsf2): Define only for hardware fp.
14100         (sqrtsf2): Reformat.
14101         (addsf3, subsf3, mulsf3): Merge expander and insn.
14102
14103         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14104         (DEBUGGER_AUTO_OFFSET): Remove.
14105         (DEBUGGER_ARG_OFFSET): Remove.
14106
14107         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14108         Emit register stores with the same offsets as the hardware.
14109         (mn10300_store_multiple_operation): Don't check that the register
14110         save offsets are monotonic.
14111         * config/mn10300/mn10300-protos.h: Update.
14112
14113         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14114
14115         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14116         in terms of the value on the stack, not the MDR register.
14117
14118 2011-01-11  Jan Hubicka  <jh@suse.cz>
14119
14120         PR lto/45721
14121         PR lto/45375
14122         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14123         (symbol_alias_set_destroy, symbol_alias_set_contains,
14124         propagate_aliases_backward): Declare.
14125         * lto-streamer-out.c (struct sets): New sturcture.
14126         (trivally_defined_alias): New function.
14127         (output_alias_pair_p): Rewrite.
14128         (output_unreferenced_globals): Fix output of alias pairs.
14129         (produce_symtab): Likewise.
14130         * ipa.c (function_and_variable_visibility): Set weak alias destination
14131         as needed in lto.
14132         * varasm.c (symbol_alias_set_t): Remove.
14133         (symbol_alias_set_destroy): Export.
14134         (propagate_aliases_forward, propagate_aliases_backward): New functions
14135         based on ...
14136         (compute_visible_aliases): ... this one; remove.
14137         (trivially_visible_alias): New
14138         (trivially_defined_alias): New.
14139         (remove_unreachable_alias_pairs): Rewrite.
14140         (finish_aliases_1): Reorganize code checking if alias is defined.
14141         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14142         in LTO mode.
14143
14144 2011-01-11  Richard Guenther  <rguenther@suse.de>
14145
14146         PR tree-optimization/46076
14147         * tree-ssa.c (useless_type_conversion_p): Conversions from
14148         unprototyped to empty argument list function types are useless.
14149
14150 2011-01-11  Richard Guenther  <rguenther@suse.de>
14151
14152         PR middle-end/45235
14153         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14154         volatile MEMs as MEM_READONLY_P.
14155
14156 2011-01-11  Richard Guenther  <rguenther@suse.de>
14157
14158         PR tree-optimization/47239
14159         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14160
14161 2011-01-11  Jeff Law  <law@redhat.com>
14162
14163         PR tree-optimization/47086
14164         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14165         IVs from statements that might throw.
14166
14167 2011-01-10  Jan Hubicka  <jh@suse.cz>
14168
14169         PR lto/45375
14170         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14171
14172 2011-01-10  Jan Hubicka  <jh@suse.cz>
14173
14174         PR lto/45375
14175         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14176         when correcting profile.
14177
14178 2011-01-10  Jan Hubicka  <jh@suse.cz>
14179
14180         PR lto/46083
14181         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14182         DECL_FINI_PRIORITY.
14183         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14184         Restore DECL_FINI_PRIORITY.
14185
14186 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14187
14188         * doc/gimple.texi: Fix quoting of multi-word return values in
14189         @deftypefn statements.  Ensure presence of return value.  Wrap
14190         overlong @deftypefn lines.
14191         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14192         descriptions of removed functions.
14193         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14194         of multi-word return value in @deftypefn statement.
14195
14196 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14197
14198         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14199         (Conditional Expressions, Logical Operators)
14200         (Statement and operand traversals): Do not indent smallexample
14201         code.  Fix duplicate function argument in example.
14202
14203 2011-01-10  Jeff Law  <law@redhat.com>
14204
14205         PR tree-optimization/47141
14206         * ipa-split.c (split_function): Handle case where we are
14207         returning a value and the return block has a virtual operand phi.
14208
14209 2011-01-10  Jan Hubicka  <jh@suse.cz>
14210
14211         PR tree-optimization/47234
14212         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14213         (pass_feedback_split_functions): Declare.
14214         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14215         tree-profile.
14216         * ipa-split.c (gate_split_functions): Update comments; disable
14217         split-functions for profile_arc_flag and branch_probabilities.
14218         (gate_feedback_split_functions): New function.
14219         (execute_feedback_split_functions): New function.
14220         (pass_feedback_split_functions): New global var.
14221
14222 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14223
14224         PR lto/46760
14225         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14226         calling gimple_call_set_cannot_inline.
14227
14228 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14229
14230         * config/darwin-sections.def: Remove unused section.
14231
14232 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14233
14234         PR c++/47218
14235         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14236
14237 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14238
14239         PR objc/47232
14240         * c-parser.c (c_parser_declaration_or_fndef): Improved
14241         error message.
14242
14243 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14244
14245         * config/i386/winnt.c (i386_pe_start_function): Make sure
14246         to switch back to function's section.
14247
14248 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14249
14250         PR gcc/46902
14251         PR testsuite/46912
14252         * plugin.c: Move include of dlfcn.h from here...
14253         * system.h: ... to here.
14254
14255 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14256
14257         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14258         file name.
14259         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14260         two extra empty pages in PDF output.
14261
14262 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14263
14264         PR objc/47078
14265         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14266         for error recovery purposes behave as if it was not specified so
14267         that the default type is usd.
14268
14269 2011-01-07  Jan Hubicka  <jh@suse.cz>
14270
14271         PR tree-optmization/46469
14272         * ipa.c (function_and_variable_visibility): Clear needed flags on
14273         nodes with external decls; handle weakrefs merging correctly.
14274
14275 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14276
14277         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14278         not false.
14279
14280 2011-01-07  Jan Hubicka  <jh@suse.cz>
14281
14282         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14283         and no longer claim that gold is required for linker plugin.
14284         * configure: Regenerate.
14285         * gcc.c (PLUGIN_COND): New macro.
14286         (LINK_COMMAND_SPEC): Use it.
14287         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14288         * config.in (HAVE_LTO_PLUGIN): New.
14289         * configure.ac (--with-lto-plugin): New parameter; autodetect
14290         HAVE_LTO_PLUGIN.
14291
14292 2011-01-07  Jan Hubicka  <jh@suse.cz>
14293
14294         PR tree-optimization/46367
14295         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14296         when we can update original.
14297         (cgraph_mark_inline_edge): Sanity check.
14298         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14299
14300 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14301
14302         * config/spu/spu.h (ASM_COMMENT_START): Define.
14303
14304 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14305
14306         PR driver/42445
14307         * gcc.c (%>S): New.
14308         (SWITCH_KEEP_FOR_GCC): Likewise.
14309         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14310         (do_spec_1): Handle "%>".
14311
14312         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14313
14314 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14315
14316         PR target/47201
14317         * config/i386/i386.c (ix86_delegitimize_address): If
14318         simplify_gen_subreg fails, return orig_x.
14319
14320         PR bootstrap/47187
14321         * value-prof.c (gimple_stringop_fixed_value): Handle
14322         lhs of the call properly.
14323
14324 2011-01-07  Jan Hubicka  <jh@suse.cz>
14325
14326         PR lto/45375
14327         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14328
14329 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14330
14331         * target.def (function_switched_text_sections): New hook.
14332         * doc/tm.texi: Regenerated.
14333         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14334         * final.c (default_function_switched_text_sections): New.
14335         (final_scan_insn): Call function_switched_text_sections when a
14336         mid-function section change occurs.
14337         * output.h (default_function_switched_text_sections): Declare.
14338         * config/darwin-protos.h (darwin_function_switched_text_sections):
14339         Likewise.
14340         * config/darwin.c (darwin_function_switched_text_sections): New.
14341         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14342
14343 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14344
14345         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14346         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14347         the secondary code fragment when outputting for DWARF == 2.
14348
14349 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14350
14351         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14352         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14353         Remove.
14354         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14355         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14356
14357 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14358
14359         PR debug/46704
14360         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14361         when it is not empty.
14362
14363 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14364
14365         Bobcat Enablement
14366         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14367         (case ${target}): Add btver1.
14368         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14369         -march=native recognize btver1 processors.
14370         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14371         btver1 def_and_undef
14372         * config/i386/i386.c (struct processor_costs btver1_cost): New
14373         btver1 cost table.
14374         (m_BTVER1): New definition.
14375         (m_AMD_MULTIPLE): Includes m_BTVER1.
14376         (initial_ix86_tune_features): Add btver1 tune.
14377         (processor_target_table): Add btver1 entry.
14378         (static const char *const cpu_names): Add btver1 entry.
14379         (software_prefetching_beneficial_p): Add btver1.
14380         (ix86_option_override_internal): Add btver1 instruction sets.
14381         (ix86_issue_rate): Add btver1.
14382         (ix86_adjust_cost): Add btver1.
14383         * config/i386/i386.h (TARGET_BTVER1): New definition.
14384         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14385         (enum processor_type): Add PROCESSOR_BTVER1.
14386         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14387
14388 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14389
14390         PR target/43309
14391         * config/i386/i386.c (legitimize_tls_address)
14392         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14393         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14394         (tls_initial_exec_64_sun): New pattern.
14395
14396 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14397
14398         * doc/invoke.texi (Overall Options): Improve wording and markup
14399         of the description of -wrapper.
14400
14401 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14402
14403         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14404         rdynamic, threads): New Driver options.
14405
14406 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14407
14408         PR target/38118
14409         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14410         if coming from .tdata.
14411         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14412
14413 2011-01-06  Jan Hubicka  <jh@suse.cz>
14414
14415         PR lto/47188
14416         * collect2.c (main): Do not enable LTOmode when plugin is active.
14417
14418 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14419
14420         PR other/45915
14421         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14422         --version output if supported.
14423         * configure: Regenerate.
14424
14425 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14426
14427         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14428         Driver options.
14429
14430 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14431
14432         PR c/47150
14433         * c-convert.c (convert): When converting a complex expression
14434         other than COMPLEX_EXPR to a different complex type, ensure
14435         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14436         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14437         when converting COMPLEX_TYPE.
14438
14439 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14440
14441         PR tree-optimization/47139
14442         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14443         only the last reduction value is used outside the loop.  Update
14444         documentation.
14445
14446 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14447
14448         * config/rtems.opt: New.
14449         * config.gcc (*-*-rtems*): Use rtems.opt.
14450
14451 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14452
14453         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14454         processors do not support 3DNow instructions.
14455
14456 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14457
14458         * config/spu/spu.c (spu_option_override): Set parameter
14459         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14460
14461 2011-01-05  Jan Hubicka  <jh@suse.cz>
14462
14463         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14464         at the command line.
14465
14466 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14467
14468         PR lto/47162
14469         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14470         deltas on streamed outgoing edges.
14471         (output_node_opt_summary): Output info for outgoing edges only when
14472         the node is in new parameter set.
14473         (output_cgraph_opt_summary): New parameter set, passed to the two
14474         aforementioned functions.  Update its forward declaration and its
14475         callee too.
14476
14477 2011-01-05  Tom Tromey  <tromey@redhat.com>
14478
14479         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14480         operator to c_finish_omp_atomic.
14481         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14482         (build_unary_op): Update.
14483         (build_modify_expr): Update.
14484         (build_asm_expr): Update.
14485
14486 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14487
14488         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14489         newly inserted insns.
14490         (pad_bb): Likewise.
14491         (spu_emit_branch_hint): Likewise.
14492         (insert_hbrp_for_ilb_runout): Likewise.
14493         (spu_machine_dependent_reorg): Call df_finish_pass after
14494         schedule_insns returns.
14495
14496 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14497
14498         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14499
14500 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14501
14502         PR tree-optimization/47005
14503         * tree-sra.c (struct access): Add 'non_addressable' bit.
14504         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14505         (decide_one_param_reduction): Return 0 if the parameter is passed by
14506         reference and one of the accesses in the group is non_addressable.
14507
14508 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14509
14510         PR tree-optimization/47056
14511         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14512         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14513         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14514
14515 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14516
14517         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14518         initializer.  Skip view conversions from aggregate types.
14519
14520 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14521
14522         PR bootstrap/47055
14523         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14524
14525 2011-01-04  Philipp Thomas  <pth@suse.de>
14526
14527         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14528         obvious typo.
14529
14530 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14531
14532         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14533         on empty epilogue sequences.
14534
14535 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14536
14537         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14538         non-static): New Driver options.
14539
14540 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14541
14542         PR driver/47137
14543         * gcc.c (default_compilers[]): Set combinable field to 0
14544         for all assembly languages.
14545
14546 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14547
14548         * config/mips/loongson3a.md: New file.
14549         * config/mips/mips.md: Include loongson3a.md.
14550         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14551         TUNE_LOONGSON_3A.
14552
14553 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14554
14555         PR middle-end/47017
14556         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14557         instead of convert_memory_address_addr_space on the base expression.
14558
14559 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14560
14561         * config/spu/spu.c (spu_option_override): Update error text
14562         for bad -march= / -mtune= values.
14563
14564 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14565
14566         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14567         if branch-hint optimization will be performed.
14568
14569 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14570
14571         PR tree-optimization/47148
14572         * ipa-split.c (split_function): Convert arguments to
14573         DECL_ARG_TYPE if possible.
14574
14575         PR tree-optimization/47155
14576         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14577         when computing uns.
14578
14579         PR rtl-optimization/47157
14580         * combine.c (try_combine): If undobuf.other_insn becomes
14581         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14582         and set *new_direct_jump_p too.
14583
14584 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14585
14586         PR tree-optimization/47021
14587         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14588
14589 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14590
14591         * gcc.c (process_command): Update copyright notice dates.
14592         * gcov.c (print_version): Likewise.
14593         * gcov-dump.c (print_version): Likewise.
14594         * mips-tfile.c (main): Likewise.
14595         * mips-tdump.c (main): Likewise.
14596
14597 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14598
14599         PR tree-optimization/46801
14600         * tree-sra.c (type_internals_preclude_sra_p): Check whether
14601         aggregate fields start at byte boundary instead of the bit-field flag.
14602
14603 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14604
14605         PR driver/47137
14606         * gcc.c (main): Revert revision 168407.
14607
14608 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14609
14610         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14611
14612 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14613
14614         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14615         vector optab to expand vector/scalar shift, update gimple to vector.
14616
14617 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14618
14619         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14620         a thunk.
14621
14622 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14623
14624         PR tree-optimization/46984
14625         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14626         HOST_WIDE_INT.
14627         (cgraph_create_indirect_edge): Fixed line length.
14628         (cgraph_indirect_call_info): Declare.
14629         (cgraph_make_edge_direct) Update declaration.
14630         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14631         (cgraph_create_indirect_edge): Use it.
14632         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
14633         callees.
14634         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14635         the new thunk_delta representation.
14636         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14637         HOST_WIDE_INT.
14638         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14639         (ipa_read_indirect_edge_info): Likewise.
14640         * lto-cgraph.c (output_edge_opt_summary): New function.
14641         (output_node_opt_summary): Call it on all outgoing edges.
14642         (input_edge_opt_summary): New function.
14643         (input_node_opt_summary): Call it on all outgoing edges.
14644
14645 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
14646
14647         PR driver/47137
14648         * gcc.c (main): Don't check have_o when settting combine_inputs.
14649
14650 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14651
14652         * regrename.c: Add general comment describing the pass.
14653         (struct du_head): Remove 'length' field.
14654         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14655         (regrename_optimize): Do not sort chains.  Rework comments, add others.
14656         Force renaming to the preferred class (if any) in the first pass and do
14657         not consider registers that belong to it in the second pass.
14658         (create_new_chain): Do not set 'length' field.
14659         (scan_rtx_reg): Likewise.
14660
14661 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
14662
14663         PR tree-optimization/47140
14664         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14665         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14666         to bit_value_binop.
14667
14668         PR rtl-optimization/47028
14669         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14670         parm_birth_insn instead of at the beginning of first bb.
14671
14672 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
14673
14674         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14675         Remove the word "see" before "@pxref".
14676         * doc/rtl.texi: Remove the word "see" before "@pxref".
14677
14678 2011-01-01  Jan Hubicka  <jh@suse.cz>
14679
14680         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14681         memory.
14682
14683 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
14684
14685         PR target/38662
14686         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
14687
14688 \f
14689 Copyright (C) 2011 Free Software Foundation, Inc.
14690
14691 Copying and distribution of this file, with or without modification,
14692 are permitted in any medium without royalty provided the copyright
14693 notice and this notice are preserved.