OSDN Git Service

* postreload-gcse.c (gcse_after_reload_main): Add calls to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4         statistics_counter_event.
5         * tree-ssa-copyrename.c (stats): Define.
6         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
7         statistics_counter_event.
8         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
9         (bswap_stats, widen_mul_stats): Define.
10         (insert_reciprocals): Increment rdivs_inserted.
11         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
12         rfuncs_inserted.  Add calls to statistics_counter_event.
13         (execute_cse_sincos_1): Increment inserted.
14         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
15         statistics_counter_event.
16         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
17         of bswap_stats.  Add calls to statistics_counter_event.
18         (convert_mult_to_widen): Increment widen_mults_inserted.
19         (convert_plusminus_to_widen): Increment maccs_inserted.
20         (convert_mult_to_fma): Increment fmas_inserted.
21         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
22         calls to statistics_counter_event.
23
24 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
25
26         PR rtl-optimization/48455
27         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
28         `temp_costs->mem_cost'.
29
30 2011-04-13  Jan Hubicka  <jh@suse.cz>
31
32         * ipa-inline.h: New file.
33         * ipa-inline-analysis.c: New file. Broken out of ...
34         * ipa-inline.c: ... this file; update toplevel comment;
35         include ipa-inline.h
36         (inline_summary): Move to ipa-inline.h
37         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
38         ipa-inline-analysis.c.
39         (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
40         move to ipa-inline-analysis.c
41         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
42         to estimate_edge_growth.
43         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
44         rename to estimate_size_after_inlining.
45         (cgraph_mark_inline_edge): Update for new naming convention.
46         (cgraph_check_inline_limits): Likewise.
47         (cgraph_edge_badness): Likewise.
48         (cgraph_decide_recursive_inlining): Likewise.
49         (cgraph_decide_inlining_of_small_functions): Likewise.
50         (cgraph_decide_inlining_incrementally): Likewise.
51         (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
52         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
53         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
54         (compute_inline_parameters): Likewise.
55         (compute_inline_parameters_for_current): Likewise.
56         (pass_inline_parameters): Likewise.
57         (inline_indirect_intraprocedural_analysis): Likewise.
58         (analyze_function): Rename to inline_analyze_function; likewise.
59         (add_new_function): Move to ipa-inline-analysis.c.
60         (inline_generate_summary): Likewise.
61         (inline_read_summary): Likewise.
62         (inline_write_summary): Likewise.
63         * Makefile.in (ipa-inline-analysis.c): New file.
64
65 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
66
67         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
68         * configure: Regenerate.
69
70 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
71
72         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
73         instead of tree_common.
74         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
75         Likewise.
76         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
77         TS_TYPED rather than TS_COMMON.
78         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
79
80 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
81
82         PR target/45263
83         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
84         r20 around calls of __tablejump_elpm__
85
86 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
87
88         PR middle-end/48591
89         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
90         NULL.
91         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
92
93 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
94
95         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
96         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
97         (cfi_vec): New typedef.
98         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
99         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
100         (cie_cfi_vec): New static variable.
101         (cie_cfi_head): Delete.
102         (add_cfi): Accept a cfi_vec * as first argument. All callers and
103         declaration changed. Use vector rather than list operations.
104         (new_cfi): Don't initialize the dw_cfi_next field.
105         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
106         rather than list operations.
107         (lookup_cfa): Use vector rather than list operations.
108         (output_cfis): New argument upto. Accept a cfi_vec rather than
109         a dw_cfi_ref list head as argument. All callers changed.
110         Iterate over the vector using upto as a maximum index.
111         (output_all_cfis): New static function.
112         (output_fde): Use vector rather than list operations. Use the
113         new upto argument for output_cfis rather than manipulating a
114         list.
115         (dwarf2out_begin_prologue): Change initializations to match
116         new struct members.
117         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
118         from the vector length rather than searching for the end of a list.
119         Use output_all_cfis.
120         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
121
122 2011-04-13  Nick Clifton  <nickc@redhat.com>
123
124         * config/rx/rx.md (movmemsi): Do not use this pattern when
125         volatile pointers are involved.
126
127 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
128
129         * config/i386/sse.md (pinsrbits): Remove.
130         (sse2_packsswb): Merge with *avx_packsswb.
131         (sse2_packssdw): Merge with *avx_packssdw.
132         (sse2_packuswb): Merge with *avx_packuswb.
133         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
134         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
135         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
136         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
137         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
138         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
139         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
140         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
141         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
142         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
143         (sse2_loadld): Merge with *avx_loadld.
144         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
145         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
146         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
147         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
148         (vec_concatv2di): Merge with *vec_concatv2di_avx.
149
150 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
151
152         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
153         calling TREE_CHAIN.
154         * print-tree.c (print_node): Likewise.
155         * tree-inline.c (copy_tree_r): Likewise.
156         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
157         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
158         instead of TS_COMMON.
159         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
160         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
161         (copy_node_stat): Zero TREE_CHAIN only if necessary.
162         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
163         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
164         ...and these...
165         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
166         * tree.h: ...here.
167         (TREE_CHAIN): Check for a TS_COMMON structure.
168         (TREE_TYPE): Check for a TS_TYPED structure.
169
170 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
171
172         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
173         cgraph_get_create_node instead of cgraph_node.
174
175 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
176
177         * c-parser.c (c_parser_initelt): Updated call to
178         objc_build_message_expr.
179         (c_parser_postfix_expression): Likewise.
180
181 2011-04-12  Kai Tietz  <ktietz@redhat.com>
182
183         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
184         MASK_MS_BITFIELD_LAYOUT bit.
185
186 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
187
188         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
189         assert it is always true.
190         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
191         moves.
192
193 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
194
195         * c-parser.c (c_lex_one_token): Rewritten conditional used when
196         compiling Objective-C to be more efficient.
197
198 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
199
200         * opts-common.c (decode_cmdline_options_to_array): Remove variable
201         argv_copied.
202
203 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
204
205         * recog.h, genoutput.c, optabs.c: Revert last patch.
206
207 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
208
209        PR target/48090
210        * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
211
212 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
213
214         * recog.h (insn_operand_data): Add an "allows_mem" field.
215         * genoutput.c (output_operand_data): Initialize it.
216         * optabs.c (maybe_legitimize_operand_same_code): New function.
217         (maybe_legitimize_operand): Use it when matching the original
218         op->value.
219
220 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
221
222         * genpreds.c (process_define_predicate): Move most processing
223         to gensupport.c.  Continue to validate the expression.
224         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
225         (process_define_predicate): Move processing to gensupport.c.
226         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
227         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
228         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
229         argument.
230         (valid_predicate_name_p): New function, split out from old
231         genpreds.c:process_define_predicate.
232         (process_define_predicate): New function, combining code from
233         old genpreds.c and genrecog.c functions.
234         (process_rtx): Call it for DEFINE_PREDICATE and
235         DEFINE_SPECIAL_PREDICATE.
236
237 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
238
239         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
240         size of a '%A' memory reference.
241         (T_DREG, T_QREG): New neon_builtin_type_bits.
242         (arm_init_neon_builtins): Assert that the load and store operands
243         are neon_struct_operands.
244         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
245         (NEON_ARG_MEMORY): New builtin_arg.
246         (neon_dereference_pointer): New function.
247         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
248         Handle NEON_ARG_MEMORY.
249         (arm_expand_neon_builtin): Update after above interface changes.
250         Use NEON_ARG_MEMORY for loads and stores.
251         * config/arm/predicates.md (neon_struct_operand): New predicate.
252         * config/arm/iterators.md (V_two_elem): Tweak formatting.
253         (V_three_elem): Use BLKmode for accesses that have no associated mode.
254         (V_four_elem): Tweak formatting.
255         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
256         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
257         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
258         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
259         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
260         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
261         (neon_vst4<mode>): Replace pointer operand with a memory operand.
262         Use %A in the output template.
263         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
264         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
265         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
266         the width of the memory access.  Remove post-increment.
267         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
268
269 2011-04-12  Nick Clifton  <nickc@redhat.com>
270
271         * config/v850/v850.c (expand_prologue): Do not use the CALLT
272         instruction for interrupt handlers if the target is the basic V850
273         architecture.
274         (expand_epilogue): Likewise.
275
276 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
277
278         PR rtl-optimization/48549
279         * combine.c (propagate_for_debug): Also stop after BB_END of
280         this_basic_block.  Process LAST and just stop processing after it.
281         (combine_instructions): If last_combined_insn has been deleted,
282         set last_combined_insn to its PREV_INSN.
283
284 2011-04-12  Richard Guenther  <rguenther@suse.de>
285
286         PR tree-optimization/46076
287         * gimple.h (struct gimple_statement_call): Add fntype field.
288         (gimple_call_fntype): Adjust.
289         (gimple_call_set_fntype): New function.
290         * gimple.c (gimple_build_call_1): Set the call function type.
291         * gimplify.c (gimplify_call_expr): Preserve the function
292         type the frontend used for the call.
293         (gimplify_modify_expr): Likewise.
294         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
295         function type.
296         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
297         function type.
298         * tree-ssa.c (useless_type_conversion_p): Function pointer
299         conversions are useless.
300
301 2011-04-12  Martin Jambor  <mjambor@suse.cz>
302
303         * cgraph.h (cgraph_node): Remove function declaration.
304         (cgraph_create_node): Declare.
305         (cgraph_get_create_node): Likewise.
306         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
307         Updated all callers.
308         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
309         the decl does not already exist.  Call cgraph_get_create_node instead
310         of cgraph_node.
311         (cgraph_get_create_node): New function.
312         (cgraph_same_body_alias): Update comment.
313         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
314         assert it does not return NULL.
315         (cgraph_update_edges_for_call_stmt): Likewise.
316         (cgraph_clone_edge): Likewise.
317         (cgraph_create_virtual_clone): Likewise.
318         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
319         instead of cgraph_node.
320         (cgraph_add_new_function): Call cgraph_create_node or
321         cgraph_get_create_node instead of cgraph_node.
322         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
323         instead of cgraph_node.
324         (record_eh_tables): Likewise.
325         (mark_address): Likewise.
326         (mark_load): Likewise.
327         (build_cgraph_edges): Call cgraph_get_create_node instead
328         of cgraph_node.
329         (rebuild_cgraph_edges): Likewise.
330         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
331         instead of cgraph_node.
332         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
333         cgraph_node.
334         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
335         cgraph_create_node instead of cgraph_node.
336         * c-decl.c (finish_function): Call cgraph_get_create_node instead
337         of cgraph_node.
338         * lto-cgraph.c (input_node): Likewise.
339         * lto-streamer-in.c (input_function): Likewise.
340         * varasm.c (mark_decl_referenced): Likewise.
341         (assemble_alias): Likewise.
342
343 2011-04-12  Martin Jambor  <mjambor@suse.cz>
344
345         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
346         instead of cgraph_node and assert it does not return NULL.
347         * lto-streamer-in.c (lto_read_body): Likewise.
348         * omp-low.c (new_omp_context): Likewise.
349         (create_task_copyfn): Likewise.
350         * tree-emutls.c (lower_emutls_function_body): Likewise.
351         * matrix-reorg.c (transform_allocation_sites): Likewise.
352
353 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
354
355         PR c/48552
356         * c-typeck.c (build_asm_expr): Error out on attempts to use
357         void type outputs or inputs for constraints that allow reg or
358         don't allow memory.
359
360 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
361             Richard Earnshaw  <rearnsha@arm.com>
362
363         PR target/48250
364         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
365         to use sign-magnitude offsets. Reject unsupported unaligned
366         cases. Add detailed description in comments.
367         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
368         condition from TARGET_32BIT to TARGET_ARM.
369
370 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
371
372         * tree.h (struct typed_tree): New.
373         (struct tree_common): Include it instead of tree_base.
374         (TREE_TYPE): Update for new location of type field.
375         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
376         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
377         (union tree_node): Add typed field.
378         * treestruct.def (TS_TYPED): New.
379         * lto-streamer.c (check_handled_ts_structures): Handle it.
380         * tree.c (MARK_TS_TYPED): New macro.
381         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
382
383 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
384
385         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
386         (force_nonfallthru): Do not alter the loop nest if no basic block
387         was created.
388
389 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
390
391         * config/i386/sse.md (VI): New mode iterator.
392         (SSEMODEI): Remove.
393         (AVX256MODEI): Ditto.
394         (AVXMODEF4P): Ditto.
395         (avxvecpsmode): Ditto.
396         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
397         (sse2_andnot<mode>3): New expander.
398         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
399         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
400         (<any_logic:code><mode>3): Use VI mode iterator.
401         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
402         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
403         (*andnottf3): Handle AVX three-operand constraints.
404         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
405
406 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
407             Robert Millan  <rmh@gnu.org>
408
409         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
410         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
411         GNU_USER_DYNAMIC_LINKER64): Define.
412         (REG_NAME): Don't undefine.
413         (MD_UNWIND_SUPPORT): Undefine.
414         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
415         (REG_NAME): Don't undefine.
416         (MD_UNWIND_SUPPORT): Undefine.
417         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
418
419 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
420
421         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
422         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
423
424 2011-04-11  Xinliang David Li  <davidxl@google.com>
425
426         * value-profile.c (check_ic_target): New function.
427         (gimple_ic_transform): Sanity check indirect call target.
428         * gimple-low.c (gimple_check_call_args): Interface change.
429         (gimple_check_call_matching_types): New function.
430         * tree-inline.c (tree_can_inline_p): Call new function.
431
432 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
433
434         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
435         tree-pretty-print.h & realmpfr.h.
436
437 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
438
439         PR middle-end/48464
440         * ira.c (setup_pressure_classes): Fix typo in loop condition.
441         (setup_allocno_and_important_classes): Ditto.
442
443 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
444
445         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
446         GNU_USER_DYNAMIC_LINKER.
447         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
448         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
449         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
450         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
451         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
452         GNU_USER_TARGET_OS_CPP_BUILTINS.
453         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
454         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
455         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
456         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
457         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
458         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
459         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
460         GNU_USER_TARGET_OS_CPP_BUILTINS.
461         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
462         GNU_USER_DYNAMIC_LINKER.
463         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
464         GNU_USER_TARGET_OS_CPP_BUILTINS.
465         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
466         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
467         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
468         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
469         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
470         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
471         GNU_USER_DYNAMIC_LINKER64): Remove.
472         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
473         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
474         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
475         GNU_USER_DYNAMIC_LINKER.
476         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
477         GNU_USER_TARGET_OS_CPP_BUILTINS.
478         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
479         GNU_USER_TARGET_OS_CPP_BUILTINS.
480         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
481         to GNU_USER_TARGET_OS_CPP_BUILTINS.
482         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
483         GNU_USER_TARGET_OS_CPP_BUILTINS.
484         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
485         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
486         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
487         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
488         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
489         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
490         GNU_USER_DYNAMIC_LINKER.
491         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
492         GNU_USER_TARGET_OS_CPP_BUILTINS.
493         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
494         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
495         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
496         GNU_USER_DYNAMIC_LINKER.
497         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
498         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
499         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
500         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
501         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
502         GNU_USER_DYNAMIC_LINKER.
503         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
504         GNU_USER_DYNAMIC_LINKERN32.
505         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
506         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
507         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
508         GNU_USER_DYNAMIC_LINKER32.
509         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
510         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
511         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
512         GNU_USER_DYNAMIC_LINKER.
513         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
514         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
515         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
516         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
517         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
518         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
519         GNU_USER_DYNAMIC_LINKER32.
520         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
521         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
522         GNU_USER_DYNAMIC_LINKER.
523         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
524         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
525         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
526         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
527         GNU_USER_DYNAMIC_LINKER64.
528         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
529         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
530         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
531         GNU_USER_DYNAMIC_LINKER.
532         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
533         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
534         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
535         GNU_USER_DYNAMIC_LINKER.
536         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
537         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
538         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
539         GNU_USER_DYNAMIC_LINKER32.
540         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
541         GNU_USER_DYNAMIC_LINKER64.
542         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
543         GNU_USER_DYNAMIC_LINKER64.
544         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
545         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
546         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
547         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
548         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
549
550 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
551
552         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
553         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
554         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
555         GNU_USER_DYNAMIC_LINKER.
556         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
557         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
558         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
559         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
560         GNU_USER_DYNAMIC_LINKER64.
561         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
562         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
563         GNU_USER_LINK_EMULATION.
564         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
565         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
566         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
567         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
568         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
569         CPP_SPEC, CC1_SPEC): Remove.
570         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
571         (GNU_USER_DYNAMIC_LINKER): Define.
572         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
573         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
574         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
575         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
576         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
577         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
578         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
579         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
580         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
581         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
582         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
583         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
584         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
585         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
586         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
587         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
588         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
589         GNU_USER_DYNAMIC_LINKER.
590         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
591         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
592         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
593         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
594         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
595         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
596         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
597         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
598         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
599         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
600
601 2011-04-11  Kai Tietz  <ktietz@redhat.com>
602
603         PR target/9601
604         PR target/11772
605         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
606         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
607         comment.
608         (ix86_is_msabi_thiscall): Removed.
609         (ix86_is_type_thiscall): Likewise.
610         (ix86_get_callcvt): New function.
611         (ix86_comp_type_attributes): Simplify check.
612         (ix86_function_regparm): Use ix86_get_callcvt for calling
613         convention attribute checks.
614         (ix86_return_pops_args): Likewise.
615         (ix86_static_chain): Likewise.
616         (x86_this_parameter): Likewise.
617         (x86_output_mi_thunk): Likewise.
618         (ix86_function_type_abi): Optimize check for types without attributes.
619         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
620         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
621         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
622         by flag-values.
623         (IX86_BASE_CALLCVT): Helper macro.
624         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
625         Use ix86_get_callcvt for calling convention attribute checks and avoid
626         symbol-decoration for stdcall in TARGET_RTD case.
627         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
628         Likewise.
629         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
630         for declaration.
631
632 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
633
634         * config/i386/sse.md (VI_128): New mode iterator.
635         (VI12_128): Rename from SSEMODE12.
636         (VI14_128): Rename from SSEMODE14.
637         (VI124_128): New mode iterator.
638         (VI24_128): Rename from SSEMODE248.
639         (VI248_128): Rename from SSEMODE248.
640         (SSEMODE124C8): Remove.
641         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
642         (*sse2_<plusminus_insn><mode>3): Merge with
643         *avx_<plusminus_insn><mode>3.
644         (*mulv8hi3): Merge with *avx_mulv8hi3.
645         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
646         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
647         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
648         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
649         (ashr<mode>3): Merge with *avx_ashr<mode>3.
650         (lshr<mode>3): Merge with *avx_lshr<mode>3.
651         (ashl<mode>3): Merge with *avx_ashl<mode>3.
652         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
653         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
654         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
655         (*<smaxmin:code>v8hi3): Ditto.
656         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
657         (*<smaxmin:code>v16qi3): Ditto.
658         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
659         (*sse2_eq<mode>3): Ditto.
660         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
661         (*sse2_gt<mode>3): Ditto.
662         (vcondv2di): Split out of vcond<mode>.
663         (vconduv2di): Split out of vcondu<mode>.
664
665 2011-04-11  Richard Guenther  <rguenther@suse.de>
666
667         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
668         before calling tree_low_cst.
669
670 2011-04-11  Richard Guenther  <rguenther@suse.de>
671
672         * stor-layout.c (layout_type): Compute all array index size operations
673         in the original type.
674         (initialize_sizetypes): Add comment.
675         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
676
677 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
678
679         * common.opt (Tbss=, Tdata=, Ttext=): New options.
680
681 2011-04-11  Martin Jambor  <mjambor@suse.cz>
682
683         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
684         of cgraph_node, handle NULL return value.
685         (cgraph_global_info): Likewise.
686         (cgraph_rtl_info): Likewise.
687         * tree-inline.c (estimate_num_insns): Likewise.
688         * gimplify.c (unshare_body): Likewise.
689         (unvisit_body): Likewise.
690         (gimplify_body): Likewise.
691         * predict.c (optimize_function_for_size_p): Likewise.
692         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
693         (call_may_clobber_ref_p_1): Likewise.
694         * varasm.c (function_section_1): Likewise.
695         (assemble_start_function): Likewise.
696
697 2011-04-11  Martin Jambor  <mjambor@suse.cz>
698
699         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
700         of cgraph_node.
701         * final.c (rest_of_clean_state): Likewise.
702         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
703         * passes.c (pass_init_dump_file): Likewise.
704         (execute_all_ipa_transforms): Likewise.
705         (function_called_by_processed_nodes_p): Likewise.
706         * predict.c (maybe_hot_frequency_p): Likewise.
707         (probably_never_executed_bb_p): Likewise.
708         (compute_function_frequency): Likewise.
709         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
710         (unnest_nesting_tree_1): Likewise.
711         (lower_nested_functions): Likewise.
712         * tree-optimize.c (execute_fixup_cfg): Likewise.
713         (tree_rest_of_compilation): Likewise.
714         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
715         * tree-sra.c (ipa_early_sra): Likewise.
716         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
717         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
718         * ipa.c (record_cdtor_fn): Likewise.
719         * ipa-inline.c (cgraph_early_inlining): Likewise.
720         (compute_inline_parameters_for_current): Likewise.
721         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
722         * ipa-pure-const.c (local_pure_const): Likewise.
723         * ipa-split.c (split_function): Likewise.
724         (execute_split_functions): Likewise.
725         * cgraphbuild.c (build_cgraph_edges): Likewise.
726         (rebuild_cgraph_edges): Likewise.
727         (cgraph_rebuild_references): Likewise.
728         (remove_cgraph_callee_edges): Likewise.
729         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
730         (verify_cgraph_node): Likewise.
731         (cgraph_analyze_functions): Likewise.
732         (cgraph_preserve_function_body_p): Likewise.
733         (save_inline_function_body): Likewise.
734         (save_inline_function_body): Likewise.
735         * tree-inline.c (copy_bb): Likewise.
736         (optimize_inline_calls): Likewise.
737
738 2011-04-11  Martin Jambor  <mjambor@suse.cz>
739
740         PR tree-optimization/48195
741         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
742         ipa_check_create_edge_args.
743         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
744         ipa_check_create_edge_args.
745         * ipa-inline.c (inline_generate_summary): Do not call
746         ipa_check_create_node_params and ipa_check_create_edge_args.
747         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
748         ipa_check_create_edge_args.
749
750 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
751
752         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
753         instead of loop.
754         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
755         * function.c (record_hard_reg_sets): Likewise.
756         * ira.c (compute_regs_asm_clobbered): Likewise.
757         * sched-deps.c (sched_analyze_1): Likewise.
758         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
759
760 2011-04-09  Xinliang David Li  <davidxl@google.com>
761
762         PR tree-optimization/PR48484
763         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
764         has_valid_pred lazily
765
766 2011-04-09  Duncan Sands  <baldrick@free.fr>
767
768         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
769
770 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
771
772         * combine.c (combine_validate_cost): Adjust comments.  Set registered
773         cost of I0 to zero at the end, if any.
774
775 2011-04-08  Xinliang David Li  <davidxl@google.com>
776
777         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
778         to insane profile data.
779
780 2011-04-08  Xinliang David Li  <davidxl@google.com>
781
782         * final.c (dump_basic_block_info): New function.
783         (final): Dump basic block.
784         (final_scan_insn): Remove old dump.
785
786 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
787
788         PR target/47829
789         * config.gcc (i386-*-freebsd): Disable unwind table generation for
790         crtbegin/crtend.
791
792 2011-04-08  Michael Matz  <matz@suse.de>
793
794         PR middle-end/48389
795         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
796         functions.
797         (rebuild_jump_labels): Call rebuild_jump_labels_1.
798         * rtl.h (rebuild_jump_labels_chain): Declare.
799         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
800         insns inserted on edges.
801
802 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
803
804         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
805         * config/arm/arm-arches.def: New.
806         * config/arm/arm-opts.h: New.
807         * config/arm/genopt.sh: New.
808         * config/arm/arm-tables.opt: New (generated).
809         * config/arm/arm.c (arm_handle_option, arm_target_help,
810         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
811         (all_architectures): Get most table contents from arm-arches.def.
812         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
813         arm_selected_tune here.
814         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
815         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
816         (march=, mcpu=, mtune=): Use Enum and Var.
817         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
818         (arm.o): Update dependencies.
819
820 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
821
822         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
823         of header_file.
824         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
825         (write_typed_alloc_defns): Likewise.
826         (main): Calls write_typed_alloc_defns with output_header.
827
828 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
829
830         PR inline-asm/48435
831         * ira-color.c (setup_profitable_hard_regs): Add comments.
832         Don't take prohibited hard regs into account.
833         (setup_conflict_profitable_regs): Rename to
834         get_conflict_profitable_regs.
835         (check_hard_reg_p): Check prohibited hard regs.
836
837 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
838
839         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
840         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
841         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
842
843 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
844
845         PR target/48366
846         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
847         move from floating point to shift amount register .
848         (emit_move_sequence): Remove secondary reload support for floating
849         point to shift amount amount register copies.
850         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
851         amount register copies.
852         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
853         register, return false if mode isn't a scalar integer mode.
854         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
855
856 2011-04-08  Richard Guenther  <rguenther@suse.de>
857
858         * gimple.c (gimple_call_flags): Remove kludge.
859
860 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
861
862         * sel-sched.c (sel_region_init): Move call to
863         sel_setup_region_sched_flags after setup_current_loop_nest.
864
865 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
866
867         PR rtl-optimization/48272
868         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
869         init_insn_reg_pressure_info.  Adjust a caller.
870         * sched-int.h (init_insn_reg_pressure_info): Declare.
871         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
872         when sched-pressure is enabled.
873
874 2011-04-08  Richard Guenther  <rguenther@suse.de>
875
876         * gimple.c (gimple_set_modified): Do not queue calls to
877         MODIFIED_NORETURN_CALLS here ...
878         * tree-ssa-operands.c (update_stmt_operands): ... but here.
879
880 2011-04-08  Richard Guenther  <rguenther@suse.de>
881
882         PR lto/48467
883         * toplev.c (lang_dependent_init): Do not open asm_out_file
884         in WPA mode, nor perform debug machinery initialization.
885         (finalize): Do not unlink asm_out_file in WPA mode.
886
887 2011-04-08  Richard Guenther  <rguenther@suse.de>
888
889         * gimple.h (gimple_call_fntype): New function.
890         (gimple_call_return_type): Use it.
891         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
892         * gimple-low.c (gimple_check_call_args): Likewise.
893         * gimple.c (gimple_call_flags): Likewise.
894         (gimple_call_arg_flags): Likewise.
895         (gimple_call_return_flags): Likewise.
896         * tree-cfg.c (verify_gimple_call): Likewise.
897         (do_warn_unused_result): Likewise.
898         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
899         * value-prof.c (gimple_ic_transform): Fix fndecl check.
900
901 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
902
903         PR rtl-optimization/48235
904         * sel-sched.c (code_motion_process_successors): Recompute the last
905         insn in basic block if control flow changed.
906         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
907         Update condition for ilist_remove.
908
909 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
910
911         PR rtl-optimization/48302
912         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
913         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
914         it to record added preheader blocks.
915         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
916         on to sel_add_loop_preheaders.
917         (sel_region_init): Move call to setup_current_loop_nest after
918         sel_init_bbs.
919
920 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
921
922         PR target/48273
923         * cfgloop.h (loop_has_exit_edges): New helper.
924         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
925         non-clonable.
926         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
927         that have no exit edges.
928
929 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
930
931         PR rtl-optimization/48442
932         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
933         all callers.  Adjust assert.
934
935 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
936
937         PR tree-optimization/48377
938         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
939         is_packed to true even for types with smaller TYPE_ALIGN than
940         TYPE_SIZE.
941
942 2011-04-08  Richard Guenther  <rguenther@suse.de>
943
944         PR bootstrap/48513
945         * doc/tm.texi: Re-generate.
946
947 2011-04-08  Wei Guozhi  <carrot@google.com>
948
949         PR target/47855
950         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
951         * config/arm/arm.c (arm_attr_length_push_multi): New function.
952         * config/arm/arm.md (*push_multi): Change the length computation to
953         call a C function.
954
955 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
956
957         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
958         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
959         * doc/tm.texi: Regenerate.
960         * system.h (ASM_OUTPUT_BSS): Poison.
961         * varasm.c (asm_output_bss): Remove function.
962         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
963
964         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
965         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
966         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
967         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
968         Likewise.
969         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
970         Likewise.
971         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
972         Likewise.
973         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
974
975 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
976
977         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
978         EnumValue lines.
979
980 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
981
982         * config/m68k/m68k.c (m68k_handle_option): Don't handle
983         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
984         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
985         OPT_mcpu32.
986         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
987         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
988         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
989         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
990         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
991         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
992         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
993         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
994         options.  Don't map other m68k options manually.  Don't handle
995         old-style options as canonical.
996         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
997         * doc/install.texi (m68k-*-*): Document binutils version requirement.
998
999 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1000
1001         * basic-block.h (force_nonfallthru): Move to...
1002         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1003         (force_nonfallthru): ...here.
1004         * cfghooks.c (force_nonfallthru): New function.
1005         * cfgrtl.c (force_nonfallthru): Rename into...
1006         (rtl_force_nonfallthru): ...this.
1007         (commit_one_edge_insertion): Do not set AUX field.
1008         (commit_edge_insertions): Do not discover new basic blocks.
1009         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1010         (cfg_layout_rtl_cfg_hooks): Likewise.
1011         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1012         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
1013         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1014
1015 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
1016
1017         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1018         Remove macros.
1019
1020 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
1021
1022         * config/i386/sse.md: Update copyright year.
1023         (avxcvtvecmode): Remove.
1024         (sse_movhlps): Merge with *avx_movhlps.
1025         (sse_movlhps): Merge with *avx_movlhps.
1026         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1027         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1028         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1029         (sse_loadhps): Merge with *avx_loadhps.
1030         (sse_storelps): Merge with *avx_storelps.
1031         (sse_loadlps): Merge with *avx_loadlps.
1032         (sse_movss): Merge with *avx_movss.
1033         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1034         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1035         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1036         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1037         (vec_set<mode>_0): Ditto.
1038         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1039         (sse4_1_insertps): Merge with *avx_insertps.
1040         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1041         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1042         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1043         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1044         (sse2_storehpd): Merge with *avx_storehpd.
1045         (sse2_loadhpd): Merge with *avx_loadhpd.
1046         (sse2_loadlpd): Merge with *avx_loadlpd.
1047         (sse2_movsd): Merge with *avx_movsd.
1048         (*vec_concatv2df): Merge with *vec_concatv2df.
1049
1050 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
1051
1052         PR debug/48343
1053         * combine.c (combine_instructions): Add last_combined_insn,
1054         update it if insn is after it, pass it to all try_combine calls.
1055         (try_combine): Add last_combined_insn parameter, pass it instead of
1056         i3 to propagate_for_debug.
1057
1058 2011-04-07  Nick Clifton  <nickc@redhat.com>
1059
1060         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1061         to handle MDR <-> data register transfers.
1062         (movhi_internal): Likewise.
1063
1064 2011-04-07  Alan Modra  <amodra@gmail.com>
1065
1066         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1067         previous stack info.
1068
1069 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1070
1071         PR target/43920
1072         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
1073         flow_find_cross_jump.  Swap variables to implement backward replacement.
1074         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1075
1076 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1077
1078         PR target/43920
1079         * cfgcleanup.c (walk_to_nondebug_insn): New function.
1080         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
1081         and bb2.
1082         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1083         src1 or src2.  Redirect edges to the last basic block.  Update
1084         frequency and count on multiple basic blocks in case of fallthru.
1085
1086 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1087
1088         PR target/43920
1089         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1090         function.
1091         (old_insns_match_p): Change return type.  Replace return false/true
1092         with return dir_none/dir_both.  Use can_replace_by.
1093         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
1094         direction from dir_p.  Register replacement direction in dir, last_dir
1095         and afterlast_dir.  Handle new return type of old_insns_match_p using
1096         merge_dir.  Return replacement direction in dir_p.
1097         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1098         return type of old_insns_match_p.
1099         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1100         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1101         flow_find_cross_jump.
1102         * basic-block.h (enum replace_direction): New type.
1103         (flow_find_cross_jump): Add parameter to declaration.
1104
1105 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1106
1107         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1108         (AVXMODEDCVTPS2DQ): Ditto.
1109         (VEC_FLOAT_MODE): Ditto.
1110         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
1111         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1112         (<any_logic:code><mode>3): Use VF mode iterator.
1113         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1114         Use VF mode iterator.
1115         (copysign<mode>3): Use VF mode iterator.
1116         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
1117         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1118         (*<any_logic:code><MODEF:mode>3): Merge with
1119         *avx_<any_logic:code><MODEF:mode>3.
1120         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
1121         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
1122         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
1123         (avx_cvtdq2ps<avxmodesuffix>): Remove.
1124         (sse2_cvtdq2ps): Use %v modifier.
1125         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
1126         (avx_cvtps2dq<avxmodesuffix>): Remove.
1127         (sse2_cvtps2dq): Use %v modifier.
1128         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
1129         (avx_cvttps2dq<avxmodesuffix>): Remove.
1130         (sse2_cvttps2dq): Use %v modifier.
1131         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
1132         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
1133         (sse2_cvtsd2siq): Fix insn template.
1134         (sse2_cvtsd2siq_2): Ditto.
1135         (sse2_cvttsd2siq): Ditto.
1136         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
1137         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
1138
1139 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1140
1141         * gcov-io.c: Use GCC Runtime Library Exception.
1142
1143 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
1144
1145         PR debug/48466
1146         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
1147         as base_reg whatever register reg has been eliminated to, instead
1148         of hardcoding STACK_POINTER_REGNUM.
1149
1150 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * doc/tm.texi.in: Document C target hooks as separate from general
1153         target hooks.
1154         * doc/tm.texi: Regenerate.
1155         * genhooks.c (struct hook_desc): Add docname field.
1156         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
1157         docname field.
1158         (hook_array): Include c-target.def.
1159         (emit_documentation): Use docname field in output.
1160         (emit_init_macros): Take docname argument.  Only emit definitions
1161         for hooks matching docname.
1162         (main): Expect additional arguments in all cases.  Pass argument
1163         to emit_init_macros.
1164         * target.def: Move initial macro definitions and comments to
1165         target-hooks-macros.h.
1166         (gcc_targetcm): Move to c-family/c-target.def.
1167         * target.h (targetcm): Move declaration to c-family/c-target.h.
1168         * targhooks.c (default_handle_c_option): Move to
1169         c-family/c-opts.c.
1170         * targhooks.h (default_handle_c_option): Move declaration to
1171         c-family/c-common.h.
1172         * target-hooks-macros.h: New file.
1173         * config.gcc (target_has_targetcm): Define and use to add to
1174         c_target_objs and cxx_target_objs.
1175         * config/default-c.c: New file.
1176         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
1177         of target.h and target-def.h.
1178         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
1179         (darwin_objc_construct_string, darwin_cfstring_ref_p,
1180         darwin_check_cfstring_format_arg): Make static.
1181         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1182         TARGET_STRING_OBJECT_REF_TYPE_P,
1183         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
1184         * config/darwin-protos.h (darwin_objc_construct_string,
1185         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1186         declare.
1187         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1188         TARGET_STRING_OBJECT_REF_TYPE_P,
1189         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1190         * config/t-darwin (darwin-c.o): Update dependencies.
1191         * system.h (TARGET_HAS_TARGETCM): Poison.
1192         * Makefile.in (TARGET_H): Update.
1193         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1194         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1195         (default-c.o): New target.
1196         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1197         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1198         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
1199         c-target.def.
1200         (build/genhooks.o): Update dependencies.
1201
1202 2011-04-06  Richard Guenther  <rguenther@suse.de>
1203
1204         * ipa-inline.c (enum inlining_mode): Remove.
1205         (cgraph_flatten): Use some other token.
1206         (cgraph_edge_early_inlinable_p): New function, split out from ...
1207         (cgraph_perform_always_inlining): New function, split out from ...
1208         (cgraph_decide_inlining_incrementally): ... here.
1209         (cgraph_mark_inline_edge): Adjust.
1210         (cgraph_early_inlining): Re-structure.
1211         (pass_early_inline): Require SSA form.
1212
1213 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
1214             Julian Brown  <julian@codesourcery.com>
1215             Mark Shinwell  <shinwell@codesourcery.com>
1216
1217         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1218         LO_REGS only for Thumb-1.
1219         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1220         be used in short instructions when optimising for size on Thumb-2.
1221
1222 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1223
1224         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1225         associated with user returns to be preserved.
1226
1227 2011-04-06  Tristan Gingold  <gingold@adacore.com>
1228
1229         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1230         symbol_queue_size, DBXOUT_DECR_NESTING,
1231         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1232         if XCOFF_DEBUGGING_INFO.
1233
1234 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         * config/i386/i386.md (attribute isa): New.
1237         (attribute enabled): New.
1238         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1239         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1240         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1241         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1242         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1243         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1244         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1245         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1246
1247         * config/i386/sse.md (VF): New mode iterator.
1248         (VF1): Ditto.
1249         (VF2): Ditto.
1250         (VF_128): Ditto.
1251         (SSEMODEF4): Remove.
1252         (attribute sse): Handle V8SF and V4DF modes.
1253         (<absneg:code><mode>2): Use VF mode iterator.
1254         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
1255         mode iterator.
1256         (<plusminus_insn><mode>3): Use VF mode iterator.
1257         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1258         Use VF mode iterator.
1259         (<sse>_vm<plusminus_insn><mode>3): Merge with
1260         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
1261         (mul<mode>3): Use VF mode iterator.
1262         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
1263         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
1264         mode iterator.
1265         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
1266         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
1267         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
1268         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
1269         mode iterator.
1270         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
1271         Use VF1 mode iterator.
1272         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
1273         (sqrt<VF2:mode>2): New expander.
1274         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
1275         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
1276         and sqrtv2df2.  Use VF mode iterator.
1277         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
1278         mode iterator.
1279         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
1280         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
1281         Use VF1 mode iterator.
1282         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
1283         (<smaxmin:code><mode>3): Use VF mode iterator.
1284         (*<smaxmin:code><mode>3_finite): Merge with
1285         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
1286         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1287         (<sse>_vm<smaxmin:code><mode>2): Merge with
1288         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
1289         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
1290         mode iterator.
1291         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
1292         mode iterator.
1293         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
1294         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
1295         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
1296         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
1297         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
1298         VF mode iterator.
1299         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
1300         Use VF_128 mode iterator.
1301         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
1302         mode iterator.
1303         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
1304         VF_128 mode iterator.
1305         (vcond<mode>): Use VF mode iterator.
1306         * config/i386/predicates.md (sse_comparison_operator): Merge with
1307         avx_comparison_float_operator.  Do not declare as special_predicate.
1308         * config/i386/i386.c (struct builtin_description): Update for renamed
1309         compare patterns.
1310         (ix86_expand_args_builtin): Ditto.
1311         (ix86_expand_sse_compare_mask): Ditto.
1312
1313 2011-04-06  Richard Guenther  <rguenther@suse.de>
1314
1315         * tree-inline.c (estimate_num_insns): For calls simply account
1316         for all passed arguments and a used return value.
1317
1318 2011-04-06  Richard Guenther  <rguenther@suse.de>
1319
1320         PR tree-optimization/47663
1321         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
1322         call_stmt_time fields.
1323         (cgraph_edge_inlinable_p): Declare.
1324         (cgraph_edge_recursive_p): New inline function.
1325         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
1326         (cgraph_clone_edge): Copy it.
1327         * ipa-inline.c (cgraph_estimate_edge_time): New function.
1328         Account for call stmt time.
1329         (cgraph_estimate_time_after_inlining): Take edge argument.
1330         (cgraph_estimate_edge_growth): Account call stmt size.
1331         (cgraph_estimate_size_after_inlining): Take edge argument.
1332         (cgraph_mark_inline_edge): Adjust.
1333         (cgraph_check_inline_limits): Likewise.
1334         (cgraph_recursive_inlining_p): Remove.
1335         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
1336         (cgraph_decide_recursive_inlining): Take edge argument and
1337         adjust.
1338         (cgraph_decide_inlining_of_small_functions): Do not avoid
1339         diags for recursive inlining here.
1340         (cgraph_flatten): Adjust.
1341         (cgraph_decide_inlining_incrementally): Likewise.
1342         (estimate_function_body_sizes): Remove call cost handling.
1343         (compute_inline_parameters): Initialize caller edge call costs.
1344         (cgraph_estimate_edge_growth): New function.
1345         (cgraph_estimate_growth): Use it.
1346         (cgraph_edge_badness): Likewise.
1347         (cgraph_check_inline_limits): Take an edge argument.
1348         (cgraph_decide_inlining_of_small_functions): Adjust.
1349         (cgraph_decide_inlining): Likewise.
1350         * tree-inline.c (estimate_num_insns): Only account for call
1351         return value if it is used.
1352         (expand_call_inline): Avoid diagnostics on recursive inline
1353         functions here.
1354         * lto-cgraph.c (lto_output_edge): Output edge call costs.
1355         (input_edge): Input edge call costs.
1356
1357 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1358
1359         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
1360
1361 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1362
1363         * doc/invoke.texi (Spec Files): Fix typo.
1364
1365 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1366
1367         * profile.c (branch_prob): Move declaration of local variable.  Remove
1368         obsolete ??? comment.  Expand the location explicitly instead of using
1369         the LOCATION_FILE and LOCATION_LINE macros.
1370
1371 2011-04-06  Wei Guozhi  <carrot@google.com>
1372
1373         PR target/47855
1374         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
1375         (arm_cond_branch): Likewise.
1376         (arm_cond_branch_reversed): Likewise.
1377         (arm_jump): Likewise.
1378         (push_multi): Likewise.
1379         * config/arm/constraints.md (Py): New constraint.
1380
1381 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1382
1383         PR bootstrap/48471
1384         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
1385         Move these...
1386         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
1387         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
1388         #ifdef DBX_DEBUGGING_INFO.
1389
1390 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1391
1392         PR bootstrap/48403
1393         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1394         if old and new states differ.
1395
1396 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
1399         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
1400         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1401         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
1402         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
1403         mcfv4e): Use Alias.
1404         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
1405         ColdFire options to -mcpu= options.
1406
1407 2011-04-05  Jeff Law  <law@redhat.com>
1408
1409         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
1410         check if BB is a successor of LOOP->header and return
1411         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
1412
1413 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1414
1415         * cprop.c (struct reg_use): Remove.
1416         (reg_use_table): Make an array of RTX.
1417         (find_used_regs, constprop_register, local_cprop_pass,
1418         bypass_block): Simplify users of reg_use_table.
1419         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
1420         on one of the uses found by find_used_regs.
1421
1422 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1423
1424         PR bootstrap/48469
1425         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
1426         declaration.
1427
1428 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1429
1430         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
1431         as an rtx.
1432         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
1433
1434 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1435
1436         PR middle-end/48441
1437         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
1438
1439 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1440
1441         * combine.c: Include obstack.h.
1442         (struct insn_link): Define.
1443         (uid_log_links): Adjust type.
1444         (FOR_EACH_LOG_LINK): New macro.
1445         (insn_link_obstack): Declare.
1446         (alloc_insn_link): Define.
1447         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
1448         type of link variables.
1449         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
1450         (try_combine, record_promoted_values, distribute_notes): Likewise.
1451         (distribute_links): Likewise.  Tweak prototype.
1452         (clear_log_links): Delete.
1453         (adjust_for_new_dest): Call alloc_insn_link.
1454         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
1455
1456 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1457
1458         * gcse.c (modify_mem_list): Convert to an array of VECs.
1459         (canon_modify_mem_list, compute_transp): Tweak formatting.
1460         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
1461         (load_killed_in_block_p): Likewise.
1462         (record_last_mem_set_info): Likewise.
1463         (clear_modify_mem_tables): Likewise.
1464
1465 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1466
1467         PR middle-end/48461
1468         * function.c (emit_use_return_register_into_block): Only define if
1469         HAVE_return.
1470
1471 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
1472
1473         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
1474
1475 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1476
1477         * config/rx/rx-opts.h: New.
1478         * config/rx/rx.c (rx_cpu_type): Remove.
1479         (rx_handle_option): Don't assert that global structures are in
1480         use.  Access variables via opts pointer.  Defer most handling of
1481         OPT_mint_register_.  Use error_at.
1482         (rx_option_override): Handle deferred OPT_mint_register_ here.
1483         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
1484         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
1485         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
1486         (rx_cpu_types): New Enum and EnumValue entries.
1487         (mint-register=): Use Defer and use Var accordingly.
1488
1489 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1490
1491         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
1492         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
1493         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
1494         Move these...
1495         (debug_free_queue, debug_nesting, symbol_queue_index):
1496         ...and these...
1497         * dbxout.c: ...to here.  Make static.
1498
1499 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1500
1501         * gcse.c (modify_pair): Define.  Define a VEC of it.
1502         (canon_modify_mem_list): Convert to an array of VECs.
1503         (free_insn_expr_list_list): Delete.
1504         (clear_modify_mem_tables): Call VEC_free instead.
1505         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
1506         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
1507         (canon_list_insert, compute_transp): Likewise.
1508
1509 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1510
1511         PR target/43920
1512         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
1513         for size.
1514
1515 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1516
1517         PR target/43920
1518         * function.c (emit_use_return_register_into_block): New function.
1519         (thread_prologue_and_epilogue_insns): Use
1520         emit_use_return_register_into_block.
1521
1522 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1523
1524         PR target/43920
1525         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
1526         insn.
1527
1528 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1529
1530         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
1531
1532 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
1533
1534         * config/arm/arm.md (define_constants for unspec): Replace with
1535         define_c_enum.
1536         (define_constants for unspecv): Replace with define_c_enum.
1537         * config/arm/neon.md (define_constants for unspec): Replace with
1538         define_c_enum.
1539
1540 2011-04-04  Richard Henderson  <rth@redhat.com>
1541
1542         PR bootstrap/48400
1543         * dwarf2out.c (output_line_info): Always emit line info from
1544         at least one section.
1545         (dwarf2out_init): Create text_section_line_info here ...
1546         (set_cur_line_info_table): ... not here.
1547
1548 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
1549
1550         PR target/48380
1551         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
1552         not called.
1553
1554         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
1555
1556 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
1557
1558         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
1559         (expr_equiv_p): Remove.
1560         (insert_set_in_table): Look at <dest, src> pair instead of expr.
1561         (hash_scan_set): Update call to insert_set_in_table.
1562         (dump_hash_table): Dump <dest, src> pair.
1563         (lookup_set): Simplify.  Lookup <dest, src> pair.
1564         (compute_transp): Remove, fold heavily simplified code into...
1565         (compute_local_properties): ...here.  Expect COMP and TRANSP
1566         unconditionally.
1567         (find_avail_set): Take set directly from struct expr.
1568         (find_bypass-set): Likewise.
1569         (bypass_block): Likewise.
1570         (cprop_insn): Likewise.  Remove redundant INSN_P test.
1571
1572         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
1573         checks on form of COND from find_implicit_sets to here.
1574         (find_implicit_sets): Cleanup control flow. Split critical edges
1575         if it exposes implicit sets.  Allocate/resize implicit_sets as
1576         necessary.
1577         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
1578         changed something.  Run df_analyze after find_implicit_sets if any
1579         edges were split.  Do not allocate implicit_sets here.
1580
1581         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
1582         (gcse_obstack): Renamed to cprop_obstack.
1583         (GNEW, GNEWVEC, GNEWVAR): Remove.
1584         (gmalloc): Remove.
1585         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
1586         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
1587         (gcse_alloc): Likewise, and rename to cprop_alloc.
1588         (alloc_gcse_men, free_gcse_mem): Remove.
1589         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
1590         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
1591         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
1592
1593         * cprop.c (oprs_not_set_p): Remove.
1594         (mark_set, mark_clobber): Remove.
1595         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
1596         (reg_not_set_p): New function.
1597         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
1598         (cprop_insn): Likewise.
1599         (cprop_jump): Use FOR_EACH_EDGE.
1600
1601 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
1602
1603         PR bootstrap/48403
1604         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
1605         (rank_for_schedule): Use scheduled_insns vector instead of
1606         last_scheduled_insn.
1607         (ok_for_early_queue_removal): Likewise.
1608         (queue_to_ready): Search forward in nonscheduled_insns_begin if
1609         we have a dbg_cnt.
1610         (choose_ready): Likewise.
1611         (commit_schedule): Use VEC_iterate.
1612         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
1613         a dbg_cnt, use it and ensure the first insn is in the ready list.
1614         (haifa_sched_init): Allocate scheduled_insns.
1615         (sched_extend_ready_list): Don't allocate it; reserve space.
1616         (haifa_sched_finish): Free it.
1617
1618 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1619
1620         * optc-gen.awk: Always remove type from Variable entry before
1621         recording in var_seen.
1622
1623 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
1624
1625         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
1626         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
1627         call to tidy_fallthru_edges.
1628
1629 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1630
1631         * doc/options.texi (ToLower): Document.
1632         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
1633         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
1634         * opts.h (cl_option): Add cl_tolower field.
1635         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
1636         arguments with lowercase strings.
1637         * config/rx/rx.opt (mcpu=): Add ToLower.
1638         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
1639         argument.
1640
1641 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1642
1643         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
1644
1645 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1646
1647         * config/vax/vax.c: Include reload.h.
1648
1649 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
1650
1651         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
1652         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1653         (sparc_preferred_reload_class): New function.
1654
1655 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
1656
1657         PR debug/48401
1658         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1659         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
1660
1661 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
1662
1663         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
1664         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
1665
1666 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
1667
1668         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
1669         (ASM_OUTPUT_ALIGNED_BSS): Define.
1670
1671 2011-04-03  Michael Matz  <matz@suse.de>
1672
1673         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
1674         and next_slot members.
1675         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
1676         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
1677         (lto_streamer_cache_append): Declare.
1678         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
1679         unsigned index, remove offset parameter, ensure that we append
1680         or update existing entries.
1681         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
1682         parameter, update next_slot for append.
1683         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
1684         parameter.
1685         (lto_streamer_cache_insert_at): Likewise.
1686         (lto_streamer_cache_append): New function.
1687         (lto_streamer_cache_lookup): Use unsigned index.
1688         (lto_streamer_cache_get): Likewise.
1689         (lto_record_common_node): Don't test tree_node_can_be_shared.
1690         (preload_common_node): Adjust call to lto_streamer_cache_insert.
1691         (lto_streamer_cache_delete): Don't free offsets member.
1692         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
1693         (lto_output_string_with_length): Use lto_output_data_stream.
1694         (lto_output_tree_header): Remove ix parameter, don't write it.
1695         (lto_output_builtin_tree): Likewise.
1696         (lto_write_tree): Adjust callers to above, don't track and write
1697         offset, write unsigned index.
1698         (output_unreferenced_globals): Don't emit all global vars.
1699         (write_global_references): Use unsigned indices.
1700         (lto_output_decl_state_refs): Likewise.
1701         (write_symbol): Likewise.
1702         * lto-streamer-in.c (lto_input_chain): Move earlier.
1703         (input_function): Use unsigned index.
1704         (input_alias_pairs): Don't read and then ignore all global vars.
1705         (lto_materialize_tree): Remove ix_p parameter, don't read index,
1706         don't pass it back, use lto_streamer_cache_append.
1707         (lto_register_var_decl_in_symtab): Use unsigned index.
1708         (lto_register_function_decl_in_symtab): Likewise.
1709         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
1710         index.
1711         (lto_get_builtin_tree): Don't read index, use
1712         lto_streamer_cache_append.
1713         (lto_read_tree): Adjust call to lto_materialize_tree.
1714
1715         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
1716         don't use function calls in arguments to MIN.
1717
1718         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
1719         twice.
1720
1721         * gimple.c (gimple_type_leader_entry): Mark deletable.
1722
1723 2011-04-03  Alan Modra  <amodra@gmail.com>
1724
1725         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
1726
1727 2011-04-03  Michael Matz  <matz@suse.de>
1728
1729         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
1730         an integer.
1731         * tree.h (tree_decl_non_common.vindex): Adjust comment.
1732
1733 2011-04-03  Michael Matz  <matz@suse.de>
1734
1735         * cgraphbuild.c (record_reference): Canonicalize constructor values.
1736         * gimple-fold.c (canonicalize_constructor_val): Accept being called
1737         without function context.
1738         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
1739         current_function_decl and cfun.
1740
1741 2011-04-03  Michael Matz  <matz@suse.de>
1742
1743         * tree.c (decl_init_priority_insert): Don't create entry for
1744         default priority.
1745         (decl_fini_priority_insert): Ditto.
1746         (fields_compatible_p, find_compatible_field): Remove.
1747         * tree.h (fields_compatible_p, find_compatible_field): Remove.
1748         * gimple.c (gimple_compare_field_offset): Adjust block comment.
1749
1750 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
1751
1752         * combine.c (try_combine): Remove useless local variable.
1753
1754 2011-04-03  Richard Guenther  <rguenther@suse.de>
1755             Ira Rosen  <ira.rosen@linaro.org>
1756
1757         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
1758         non-variable offsets and compare the remaining bases of the two
1759         accesses instead of looking for exact same data-ref.
1760
1761 2011-04-02  Kai Tietz  <ktietz@redhat.com>
1762
1763         PR target/48416
1764         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
1765
1766         * i386.c (ix86_is_msabi_thiscall): New helper function.
1767         (ix86_is_type_thiscall): New helper function.
1768         (ix86_comp_type_attributes): Handle thiscall for method-functions
1769         special.
1770         (init_cumulative_args): Likewise.
1771         (find_drap_reg): Likewise.
1772         (ix86_static_chain): Likewise.
1773         (x86_this_parameter): Likewise.
1774         (x86_output_mi_thunk): Likewise.
1775
1776 2011-04-01  Olivier Hainque  <hainque@adacore.com>
1777             Nicolas Setton  <setton@adacore.com>
1778             Eric Botcazou  <ebotcazou@adacore.com>
1779
1780         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
1781         (add_gnat_descriptive_type_attribute): New function.
1782         (gen_array_type_die): Call it.
1783         (gen_enumeration_type_die): Likewise.
1784         (gen_struct_or_union_type_die): Likewise.
1785         (modified_type_die): Likewise.
1786         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
1787         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
1788         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
1789
1790 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR bootstrap/48148
1793         * dwarf2out.c (resolve_addr): Don't call force_decl_die
1794         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
1795
1796         Revert:
1797         2011-03-17  Richard Guenther  <rguenther@suse.de>
1798
1799         PR bootstrap/48148
1800         * lto-cgraph.c (input_overwrite_node): Clear the abstract
1801         origin for decls in other ltrans units.
1802         (input_varpool_node): Likewise.
1803
1804 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1805
1806         PR middle-end/48335
1807         * expr.c (expand_assignment): Handle all possibilities
1808         if TO_RTX is CONCAT.
1809         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
1810         (store_split_bit_field): If SUBREG_REG (op0) or
1811         op0 itself has smaller mode than word, return it
1812         for offset 0 and const0_rtx for out-of-bounds stores.
1813         If word is const0_rtx, skip it.
1814
1815 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
1816
1817         * config/h8300/h8300.c (print_operand_address): Rename to...
1818         (h8300_print_operand_address): ...this. Make static. Adjust comments.
1819         Call h8300_print_operand and h8300_print_operand_address instead of
1820         print_operand and print_operand_address. Declare.
1821         (print_operand): Renake to...
1822         (h8300_print_operand): ...this. Make static. Adjust comments.
1823         Call h8300_print_operand instead of print_operand. Declare.
1824         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
1825         (h8300_register_move_cost): Likewise.
1826         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
1827         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
1828         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
1829         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
1830         * config/h8300/h8300-protos.h (print_operand): Delete.
1831         (print_operand_address): Delete.
1832
1833 2011-04-01  Richard Henderson  <rth@redhat.com>
1834
1835         PR 48400
1836         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
1837         in strict mode before dwarf4.  Re-order tests to early out
1838         before switching sections.
1839
1840 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
1841
1842         * config/h8300/constraints.md: New file.
1843         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
1844         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
1845         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
1846         * config/h8300/predicates.md (bit_operand): Likewise.
1847         (incdec_operand): Use satisfies_constraint_M and
1848         satisfies_constraint_O.  Don't use C code block.
1849         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
1850         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
1851         (compute_mov_length): Use satisfies_constraint_G.
1852         (fix_bit_operand): Use satisfies_constraint_U.
1853         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
1854         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
1855         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
1856         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
1857         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
1858         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
1859         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1860         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
1861         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
1862         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
1863         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
1864         (EXTRA_MEMORY_CONSTRAINT): Delete.
1865
1866 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
1867             Michael Meissner  <meissner@linux.vnet.ibm.com>
1868
1869         PR target/48262
1870         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
1871         operands, as per the specifications.
1872
1873         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
1874         (vec_extract_evenv4sf): Ditto.
1875         (vec_extract_evenv8hi): Ditto.
1876         (vec_extract_evenv16qi): Ditto.
1877         (vec_extract_oddv4si): Ditto.
1878
1879 2011-03-31  Mark Wielaard  <mjw@redhat.com>
1880
1881         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
1882         high_pc attribute if the CU has no associated code. Only output
1883         DW_AT_entry_pc for CU if not generating strict dwarf and
1884         dwarf_version < 4.
1885
1886 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
1887
1888         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
1889         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
1890         out of ...
1891         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
1892         * final.c (final_start_function): Call the new function rather
1893         than using a NULL argument for dwarf2out_frame_debug.
1894
1895         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
1896         that contains the prologue.
1897
1898         * haifa-sched.c (queue_insn): New arg REASON.  All callers
1899         changed.  Print it in debugging output.
1900
1901         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
1902
1903         * sched-ebb.c (begin_schedule_ready): Remove second argument.
1904         Split most of the code into...
1905         (begin_move_insn): ... here.  New function.
1906         (ebb_sched_info): Add a pointer to it.
1907         * haifa-sched.c (scheduled_insns): New static variable.
1908         (sched_extend_ready_list): Allocate it.
1909         (schedule_block): Use it to record the order of scheduled insns.
1910         Perform RTL changes to move insns only after all scheduling
1911         decisions have been made.
1912         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
1913         begin_move_insn field.
1914         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1915         * sched-int.h (struct haifa_sched_info): Remove second argument
1916         from begin_schedule_ready hook.  Add new member begin_move_insn.
1917         * sched-rgn.c (begin_schedule_ready): Remove second argument.
1918         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
1919
1920         * haifa-sched.c (prune_ready_list): New function, broken out of
1921         schedule_block.
1922         (schedule_block): Use it.
1923
1924 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1925
1926         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
1927
1928 2011-04-01  Kai Tietz  <ktietz@redhat.com>
1929
1930         * config.gcc (*-*-mingw*): Allow as option the
1931         posix threading model.
1932         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
1933         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
1934         definition.
1935         (CPP_SPEC): Add pthread/no-pthread handling.
1936         (LIB_SPEC): Likewise.
1937         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
1938         (LIB_SPEC): Likewise.
1939         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
1940         flag to pass -pthread option for shared libgcc build.
1941         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
1942         for shared libgcc build.
1943         * config/i386/t-mingw-pthread: New file.
1944         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
1945         New define to enable use of library pthread by default.
1946         * config/i386/mingw.opt (pthread): New driver option.
1947         (no-pthread): New driver option.
1948         * config/i386/cygming.opt: Make sure trailing empty line is retained.
1949         * config/i386/mingw-w64.opt: Likewise.
1950
1951 2011-04-01  Gary Funck <gary@intrepid.com>
1952
1953         * c-decl.c (grokdeclarator): Fix formatting.
1954
1955 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1956
1957         * expr.c (emit_block_move_via_movmem): Use n_generator_args
1958         instead of n_operands.
1959         (set_storage_via_setmem): Likewise.
1960         * optabs.c (maybe_gen_insn): Likewise.
1961         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
1962         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
1963         (mips_expand_builtin_direct): Likewise.
1964         * config/spu/spu.c (expand_builtin_args): Likewise.
1965
1966 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1967
1968         * recog.h (insn_data_d): Add n_generator_args.
1969         * genoutput.c (data): Likewise.
1970         (output_insn_data): Print it.
1971         (max_opno, num_dups): Delete.
1972         (scan_operands): Just fill in "d->operand[...]".
1973         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
1974
1975 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1976
1977         * gensupport.h (pattern_stats): New structure.
1978         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
1979         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
1980         (max_operand_1, max_operand_vec): Delete.
1981         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
1982
1983 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
1984
1985         * emit-rtl.c (emit_pattern_after_setloc): New function.
1986         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
1987         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
1988         (emit_pattern_after): New function.
1989         (emit_insn_after, emit_jump_insn_after): Call it.
1990         (emit_call_insn_after, emit_debug_insn_after): Likewise.
1991         (emit_pattern_before_setloc): New function.
1992         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
1993         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
1994         Likewise.
1995         (emit_pattern_before): New function.
1996         (emit_insn_before, emit_jump_insn_before): Call it.
1997         (emit_call_insn_before, emit_debug_insn_before): Likewise.
1998
1999 2011-03-31  Richard Henderson  <rth@redhat.com>
2000
2001         * dwarf2out.c (dw_separate_line_info_ref): Remove.
2002         (dw_separate_line_info_entry): Remove.
2003         (enum dw_line_info_opcode): New.
2004         (dw_line_info_entry): Use it.
2005         (dw_line_info_table, dw_line_info_table_p): New.
2006         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2007         (line_info_table, line_info_label_num): Remove.
2008         (line_info_table_in_use): Remove.
2009         (separate_line_info_table): Remove.
2010         (separate_line_info_table_allocated): Remove.
2011         (separate_line_info_table_in_use): Remove.
2012         (LINE_INFO_TABLE_INCREMENT): Remove.
2013         (line_info_label_num): New.
2014         (cur_line_info_table): New.
2015         (text_section_line_info, cold_text_section_line_info): New.
2016         (separate_line_info): New.
2017         (SEPARATE_LINE_CODE_LABEL): Remove.
2018         (print_dwarf_line_table): Remove.
2019         (debug_dwarf): Don't dump it.
2020         (output_one_line_info_table): New.
2021         (output_line_info): Use it.
2022         (new_line_info_table): New.
2023         (set_cur_line_info_table): New.
2024         (dwarf2out_switch_text_section): Use it.
2025         (dwarf2out_begin_function): Likewise.
2026         (push_dw_line_info_entry): New.
2027         (dwarf2out_source_line): Rewrite for new line info tables.
2028         (dwarf2out_init): Remove dead initailizations.
2029
2030 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2031
2032         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
2033         various flags.
2034         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2035         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2036         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2037         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2038         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2039         * opt-functions.awk (flag_init, switch_bit_fields): New.
2040         (switch_flags): Don't handle flags moved to bit-fields.  Don't
2041         generate CL_MISSING_OK or CL_SAVE.
2042         * optc-gen.awk: Update to generate bit-field output as well as
2043         flags field.
2044         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2045         bit-field instead of CL_REJECT_DRIVER flag.
2046         * opts-common.c (generate_canonical_option,
2047         decode_cmdline_option): Use bit-fields instead of CL_* flags.
2048         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2049         instead of CL_REJECT_NEGATIVE flag.
2050         * toplev.c (print_switch_values): Use cl_report bit-field instead
2051         of CL_REPORT flag.
2052
2053 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2054
2055         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2056         a zero minimum index only if it is redundant.
2057
2058 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2059
2060         PR rtl-optimization/48381
2061         * ira-color.c (assign_hard_reg): Use hard reg set intersection
2062         instead of ira_class_hard_reg_index for calculating conflicting
2063         hard registers.
2064
2065 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
2066
2067         * cprop.c: Clean up hash table building.
2068         (reg_avail_info): Remove.
2069         (oprs_available_p): Remove.
2070         (record_last_reg_set_info): Remove.
2071         (record_last_set_info): Remove.
2072         (reg_available_p): New function.
2073         (gcse_constant_p): Do not treat unfolded conditions as constants.
2074         (make_set_regs_unavailable): New function.
2075         (hash_scan_set): Simplify with new reg_available_p.
2076         (compute_hash_table_work): Traverse insns stream only once.
2077         Do not compute reg_avail_info. Traverse insns in reverse order.
2078         Record implicit sets after recording explicit sets from the block.
2079
2080 2011-03-31  Michael Matz  <matz@suse.de>
2081
2082         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2083
2084 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
2085
2086         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2087         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2088         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2089         (h8300_mode_dependent_address_p): New function.
2090         (h8300_get_index): Make static.
2091
2092 2011-03-31  Jeff Law  <law@redhat.com>
2093
2094         * reload1.c (elimination_effects): Fix typo in recent change.
2095
2096         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2097         typo potentially leading to null pointer dereference.
2098
2099         * caller-save.c (new_saved_hard_reg): Eliminate return value.
2100         (setup_save_areas): Corresponding changes to avoid useless
2101         assignments.
2102
2103         * jump.c (reversed_comparison_code_parts): Avoid successive return
2104         statements when REVERSE_CONDITION is defined.
2105
2106         * expr.c (expand_assignment): Avoid useless assignments.
2107         (expand_expr_real_1): Likewise.
2108         (expand_expr_real_2): Avoid useless statements.
2109
2110         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2111
2112         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2113
2114         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
2115         statements.
2116
2117         * stmt.c (expand_expr_stmt): Avoid useless assignment.
2118
2119 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2120
2121         PR target/47109
2122         * doc/tm.texi.in (TARGET_VERSION): Remove.
2123         * doc/tm.texi: Regenerate.
2124         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
2125         * collect2.c (main): Don't use TARGET_VERSION.
2126         * mips-tdump.c (main): Don't use TARGET_VERSION.
2127         * mips-tfile.c (main): Don't use TARGET_VERSION.
2128         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
2129         * config/rs6000/vxworksae.h: Remove.
2130         * config/alpha/alpha.h (TARGET_VERSION): Remove.
2131         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
2132         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
2133         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
2134         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2135         * config/arm/arm.h (TARGET_VERSION): Remove.
2136         * config/arm/coff.h (TARGET_VERSION): Remove.
2137         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
2138         * config/arm/elf.h (TARGET_VERSION): Remove.
2139         * config/arm/freebsd.h (TARGET_VERSION): Remove.
2140         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
2141         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
2142         * config/arm/pe.h (TARGET_VERSION): Remove.
2143         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
2144         * config/arm/semi.h (TARGET_VERSION): Remove.
2145         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
2146         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
2147         * config/arm/vxworks.h (TARGET_VERSION): Remove.
2148         * config/avr/avr.h (TARGET_VERSION): Remove.
2149         * config/bfin/bfin.h (TARGET_VERSION): Remove.
2150         * config/fr30/fr30.h (TARGET_VERSION): Remove.
2151         * config/frv/frv.h (TARGET_VERSION): Remove.
2152         * config/h8300/h8300.h (TARGET_VERSION): Remove.
2153         * config/i386/cygwin.h (TARGET_VERSION): Remove.
2154         * config/i386/darwin.h (TARGET_VERSION): Remove.
2155         * config/i386/darwin64.h (TARGET_VERSION): Remove.
2156         * config/i386/djgpp.h (TARGET_VERSION): Remove.
2157         * config/i386/freebsd.h (TARGET_VERSION): Remove.
2158         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
2159         * config/i386/gnu.h (TARGET_VERSION): Remove.
2160         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
2161         * config/i386/i386elf.h (TARGET_VERSION): Remove.
2162         * config/i386/linux.h (TARGET_VERSION): Remove.
2163         * config/i386/linux64.h (TARGET_VERSION): Remove.
2164         * config/i386/lynx.h (TARGET_VERSION): Remove.
2165         * config/i386/mingw32.h (TARGET_VERSION): Remove.
2166         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
2167         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
2168         * config/i386/netware.h (TARGET_VERSION): Remove.
2169         * config/i386/nto.h (TARGET_VERSION): Remove.
2170         * config/i386/openbsd.h (TARGET_VERSION): Remove.
2171         * config/i386/vxworks.h (TARGET_VERSION): Remove.
2172         * config/ia64/elf.h (TARGET_VERSION): Remove.
2173         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
2174         * config/ia64/hpux.h (TARGET_VERSION): Remove.
2175         * config/ia64/linux.h (TARGET_VERSION): Remove.
2176         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2177         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
2178         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2179         * config/lm32/lm32.h (TARGET_VERSION): Remove.
2180         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
2181         * config/m32c/m32c.h (TARGET_VERSION): Remove.
2182         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
2183         * config/m32r/m32r.h (TARGET_VERSION): Remove.
2184         * config/m68k/linux.h (TARGET_VERSION): Remove.
2185         * config/m68k/m68k.h (TARGET_VERSION): Remove.
2186         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2187         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2188         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2189         * config/mep/mep.h (TARGET_VERSION): Remove.
2190         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2191         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2192         * config/mips/iris6.h (MACHINE_TYPE): Remove.
2193         * config/mips/linux.h (TARGET_VERSION): Remove.
2194         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2195         * config/mips/vxworks.h (TARGET_VERSION): Remove.
2196         * config/mmix/mmix.h (TARGET_VERSION): Remove.
2197         * config/mn10300/linux.h (TARGET_VERSION): Remove.
2198         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2199         * config/pa/pa.h (TARGET_VERSION): Remove.
2200         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2201         * config/picochip/picochip.h (TARGET_VERSION): Remove.
2202         * config/rs6000/aix.h (TARGET_VERSION): Remove.
2203         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2204         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2205         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2206         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2207         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2208         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2209         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2210         * config/rs6000/linux.h (TARGET_VERSION): Remove.
2211         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2212         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2213         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2214         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2215         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2216         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2217         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2218         * config/s390/linux.h (TARGET_VERSION): Remove.
2219         * config/s390/s390.h (TARGET_VERSION): Remove.
2220         * config/s390/tpf.h (TARGET_VERSION): Remove.
2221         * config/score/score.h (TARGET_VERSION): Remove.
2222         * config/sh/linux.h (TARGET_VERSION): Remove.
2223         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2224         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2225         * config/sh/sh.h (TARGET_VERSION): Remove.
2226         * config/sh/sh64.h (TARGET_VERSION): Remove.
2227         * config/sh/superh.h (TARGET_VERSION): Remove.
2228         * config/sh/vxworks.h (TARGET_VERSION): Remove.
2229         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2230         * config/sparc/linux.h (TARGET_VERSION): Remove.
2231         * config/sparc/linux64.h (TARGET_VERSION): Remove.
2232         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2233         TARGET_NAME32, TARGET_NAME): Remove.
2234         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2235         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2236         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2237         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2238         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2239         * config/spu/spu.h (TARGET_VERSION): Remove.
2240         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2241         * config/v850/v850.h (TARGET_VERSION): Remove.
2242         * config/vax/linux.h (TARGET_VERSION): Remove.
2243         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2244         * config/xtensa/elf.h (TARGET_VERSION): Remove.
2245         * config/xtensa/linux.h (TARGET_VERSION): Remove.
2246
2247 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2248
2249         PR target/48142
2250         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2251         frame-related from frame-unrelated adjustments to the stack pointer.
2252
2253 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
2254
2255         * common.opt (fdebug-types-section): Move earlier.
2256         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
2257
2258 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
2259
2260         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
2261         var.
2262
2263 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
2264
2265         * tree.h (CASE_CHAIN): Define.
2266         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
2267         (gimple_redirect_edge_and_branch): Likewise.
2268
2269 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2270
2271         PR middle-end/48367
2272         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
2273         calculation.
2274
2275 2011-03-30  Jeff Law  <law@redhat.com>
2276
2277         * PR bootstrap/48371
2278         * reload1.c (reload): Fix botch in last change.
2279
2280         * reload.h (struct reload): Fix typo introduced in last change.
2281
2282 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2283
2284         * config/arm/arm.opt (mhard-float, msoft-float): Mark
2285         Undocumented.  Remove help text.
2286         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
2287         -mhard-float.
2288
2289 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2290
2291         * doc/options.texi (NegativeAlias): Document.
2292         (Alias): Mention NegativeAlias.
2293         * opt-functions.awk: Handle NegativeAlias.
2294         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
2295         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
2296         * opts.h (CL_NEGATIVE_ALIAS): Define.
2297         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
2298         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
2299         OPT_mspe_.
2300         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
2301         Alias entries.
2302         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2303         mno-spe and mno-isel instead of mspe=no and -misel=no.
2304
2305 2011-03-29  Mark Wielaard  <mjw@redhat.com>
2306
2307         * common.opt (fdebug-types-section): New flag.
2308         * doc/invoke.texi: Document new -fno-debug-types-section flag.
2309         * dwarf2out.c (use_debug_types): New define.
2310         (struct die_struct): Mark die_id with GTY desc use_debug_types.
2311         (print_die): Guard output of type unit signatures using
2312         use_debug_types.
2313         (build_abbrev_table): Replace assert of dwarf_version >= 4
2314         with assert on use_debug_types.
2315         (size_of_die): Likewise.
2316         (unmark_dies): Likewise.
2317         (value_format): Decide AT_ref_external form on use_debug_types.
2318         (output_die): Replace dwarf_version version check guard with
2319         use_debug_types where appropriate.
2320         (modified_type_die): Likewise.
2321         (gen_reference_type_die): Likewise.
2322         (dwarf2out_start_source_file): Likewise.
2323         (dwarf2out_end_source_file): Likewise.
2324         (prune_unused_types_walk_attribs): Likewise.
2325         (dwarf2out_finish): Likewise.
2326
2327 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2328
2329         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
2330
2331 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2332
2333         PR rtl-optimization/48332
2334         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
2335         mode of input operand N and modeN to its actual mode.
2336
2337 2011-03-30  Jeff Law  <law@redhat.com>
2338
2339         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
2340         define accessor macro.
2341         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
2342         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
2343         (reg_equiv_init): Likewise.
2344         (reg_equivs_size): New variable.
2345         (reg_equiv_init_size): Remove.
2346         (allocate_initial_values): Move prototype to here from....
2347         * integrate.h (allocate_initial_values): Remove prototype.
2348         * integrate.c: Include reload.h.
2349         (allocate_initial_values): Corresponding changes.
2350         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
2351         (fix_reg_equiv_init, no_equiv): Corresponding changes.
2352         (update_equiv_regs): Corresponding changes.
2353         (ira): Corresponding changes.
2354         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
2355         (push_secondary_reload): Corresponding changes.
2356         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
2357         (make_memloc, find_reloads_address): Corresponding changes.
2358         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
2359         (find_reloads_address_1): Corresponding changes.
2360         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
2361         (refers_to_regno_for_reload_p): Corresponding changes.
2362         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
2363         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
2364         * reload1.c: Include ggc.h.
2365         (grow_reg_equivs): New function.
2366         (replace_pseudos_in, reload): Corresponding changes.
2367         (calculate_needs_all_insns, alter_regs): Corresponding changes.
2368         (eliminate_regs_1, elimination_effects): Corresponding changes.
2369         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
2370         (delete_output_reload): Likewise.
2371         * caller-save.c (mark_referenced_regs): Corresponding changes.
2372         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
2373         * frv/predicates.md (frv_load_operand): Corresponding changes.
2374         * microblaze/microblaze.c (double_memory_operand): Corresponding
2375         changes.
2376         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
2377         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
2378         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
2379         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
2380         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
2381         changes.
2382         * pa/pa.c (emit_move_sequence): Corresponding changes.
2383         * vax/vax.c (nonindexed_address_p): Corresponding changes.
2384
2385 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2386
2387         PR target/47551
2388         * config/arm/arm.c (coproc_secondary_reload_class): Handle
2389         structure modes.  Don't check neon_vector_mem_operand for
2390         vector or structure modes.
2391
2392 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2393             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2394
2395         PR target/43590
2396         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
2397         operand 1 and reshuffle the operands to match.
2398         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
2399
2400 2011-03-30  Christian Schüler  <cschueler@gmx.de>
2401
2402         PR driver/48208
2403         * config/c.opt (F): Added 'Driver' to -F option.
2404
2405         PR driver/48260
2406         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
2407           handler function.
2408         * config/darwin.opt: Added '-arch' option.
2409
2410 2011-03-30  Nick Clifton  <nickc@redhat.com>
2411
2412         * config/rx/rx.md: Add peepholes and patterns to combine
2413         extending loads and simple arithmetic instructions.
2414         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
2415         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
2416         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
2417         modes to use pre-decrement and post-increment addressing.
2418         (rx_is_restricted_memory_address): Add range checking of REG+INT
2419         addresses.
2420         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
2421         (rx_memory_move_cost): Adjust cost of stores.
2422         (rx_adjust_insn_length): New function.
2423
2424 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
2425
2426         PR c/48305
2427         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
2428         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
2429         matching arg00/arg01 types.
2430
2431 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2432
2433         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
2434         last_location to UNKNOWN_LOCATION.
2435
2436 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2437
2438         PR target/48349
2439         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
2440         FLOAT_SSE_REGS.
2441
2442 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2443             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2444
2445         PR bootstrap/48337
2446         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
2447         Init(PROCESSOR_V7).
2448         (sparc_cpu): Likewise.
2449         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
2450         PROCESSOR_V7.
2451
2452 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2453
2454         PR target/48336
2455         PR middle-end/48342
2456         PR rtl-optimization/48345
2457         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
2458         hard regs for given mode from profitable regs when doing secondary
2459         allocation.
2460
2461 2011-03-29  Jeff Law  <law@redhat.com>
2462
2463         PR bootstrap/48327
2464         * tree-ssa-threadupdate.c (struct redirection_data): Remove
2465         do_not_duplicate field.
2466         (lookup_redirection_data): Corresponding changes.
2467         (create_duplicates): Always create a template block.
2468         (redirect_edges): Remove code which reused the original block
2469         when it was going to become unreachable code.
2470         (thread_block): Don't set do_not_duplicate field.
2471
2472 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
2473
2474         * lto-opts.c (register_user_option_p, lto_register_user_option):
2475         Make type argument unsigned.
2476         * lto-streamer.h (lto_register_user_option): Make type argument
2477         unsigned.
2478         * opth-gen.awk: Make CL_* macros unsigned.
2479         * opts-common.c (find_opt): Make lang_mask argument unsigned.
2480         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
2481         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
2482         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
2483         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
2484         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
2485         (find_opt): Make lang_mask argument unsigned.
2486
2487 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2488
2489         PR rtl-optimization/48331
2490         PR rtl-optimization/48334
2491         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
2492         for any used algorithm.
2493
2494 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2495
2496         * ira-conflicts.c (build_object_conflicts): Add unused attribute
2497         to parent_max.
2498
2499 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
2500
2501         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
2502         (alpha_option_override): Don't set alpha_sr_alias_set.
2503         (emit_frame_store_1): Use gen_frame_mem rather than calling
2504         set_mem_alias_set.
2505         (alpha_expand_epilogue): Ditto.
2506
2507 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
2508
2509         PR tree-optimization/48290
2510         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
2511         vectorization, check that relevant phis in the basic block after
2512         the inner loop are really inner loop's exit phis.
2513
2514 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
2515
2516         PR debug/48190
2517         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
2518         (cached_dw_loc_list_def): New structure.
2519         (cached_dw_loc_list): New typedef.
2520         (cached_dw_loc_list_table): New variable.
2521         (cached_dw_loc_list_table_hash): New function.
2522         (cached_dw_loc_list_table_eq): Likewise.
2523         (add_location_or_const_value_attribute): Take a bool cache_p.
2524         Cache the list when the parameter is true.
2525         (gen_formal_parameter_die): Update caller.
2526         (gen_variable_die): Likewise.
2527         (dwarf2out_finish): Likewise.
2528         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
2529         while generating debug info for the decl.
2530         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
2531         (dwarf2out_init): Initialize cached_dw_loc_list_table.
2532         (resolve_addr): Cache the result of resolving a chain of
2533         location lists.
2534
2535 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
2536
2537         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
2538         conflict object hard regset nodes have intersecting hard reg sets.
2539
2540         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
2541         after regstat_init_n_sets_and_refs.
2542
2543         * ira.c: Add more comments at the top.
2544         (setup_stack_reg_pressure_class, setup_pressure_classes):
2545         Add comments how we compute the register pressure classes.
2546         (setup_allocno_and_important_classes): Add more comments.
2547         (setup_class_translate_array, reorder_important_classes)
2548         (setup_reg_class_relations): Add comments.
2549
2550         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
2551         start of the file.
2552
2553         * ira-color.c: Add 2011 to the Copyright line.
2554         (assign_hard_reg):  Add more comments.
2555         (improve_allocation): Ditto.
2556
2557         * ira-costs.c: Add 2011 to the Copyright line.
2558         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
2559         comments.
2560         (setup_regno_cost_classes_by_mode): Ditto.
2561
2562         Initial patches from ira-improv branch:
2563
2564         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2565
2566         * ira-build.c: (ira_create_object): Remove initialization of
2567         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
2568         (ira_create_allocno): Remove initialization of
2569         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
2570         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
2571         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2572         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
2573         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
2574         Initialize ALLOCNO_ADD_DATA.
2575         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
2576         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
2577         ALLOCNO_REG.
2578         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
2579         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
2580
2581         * ira.c (ira_reallocate): Remove.
2582         (setup_pressure_classes): Call
2583         ira_init_register_move_cost_if_necessary.  Use
2584         ira_register_move_cost instead of ira_get_register_move_cost.
2585         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
2586         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
2587
2588         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
2589         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2590         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
2591         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
2592         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
2593         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
2594         Fix formatting.
2595         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
2596         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2597         (struct allocno_color_data): New.
2598         (allocno_color_data_t): New typedef.
2599         (allocno_color_data): New definition.
2600         (ALLOCNO_COLOR_DATA): New macro.
2601         (struct object_color_data): New.
2602         (object_color_data_t): New typedef.
2603         (object_color_data): New definition.
2604         (OBJECT_COLOR_DATA): New macro.
2605         (update_copy_costs, calculate_allocno_spill_cost): Call
2606         ira_init_register_move_cost_if_necessary.  Use
2607         ira_register_move_cost instead of ira_get_register_move_cost.
2608         (move_spill_restore, update_curr_costs): Ditto.
2609         (allocno_spill_priority): Make it inline.
2610         (color_pass): Allocate and free allocno_color_dat and object_color_data.
2611         (struct coalesce_data, coalesce_data_t): New.
2612         (allocno_coalesce_data): New definition.
2613         (ALLOCNO_COALESCE_DATA): New macro.
2614         (merge_allocnos, coalesced_allocno_conflict_p): Use
2615         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
2616         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
2617         (coalesce_allocnos): Ditto.
2618         (setup_coalesced_allocno_costs_and_nums): Ditto.
2619         (collect_spilled_coalesced_allocnos): Ditto.
2620         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
2621         (setup_slot_coalesced_allocno_live_ranges): Ditto.
2622         (coalesce_spill_slots): Ditto.
2623         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
2624         free allocno_coalesce_data.
2625
2626         * ira-conflicts.c: Fix formatting.
2627         (process_regs_for_copy): Call
2628         ira_init_register_move_cost_if_necessary.  Use
2629         ira_register_move_cost instead of ira_get_register_move_cost.
2630         (build_object_conflicts): Optimize.
2631
2632         * ira-costs.c (record_reg_classes): Optimize.  Call
2633         ira_init_register_move_cost_if_necessary.  Use
2634         ira_register_move_cost, ira_may_move_in_cost, and
2635         ira_may_move_out_cost instead of ira_get_register_move_cost and
2636         ira_get_may_move_cost.
2637         (record_address_regs): Ditto.
2638         (scan_one_insn): Optimize.
2639         (find_costs_and_classes): Optimize.
2640         (process_bb_node_for_hard_reg_moves): Call
2641         ira_init_register_move_cost_if_necessary.  Use
2642         ira_register_move_cost instead of ira_get_register_move_cost.
2643
2644         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
2645         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
2646         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
2647         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
2648         definitions.
2649         (ira_initiate_emit_data, ira_finish_emit_data)
2650         (create_new_allocno): New functions.
2651         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
2652         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
2653         Use ira_register_move_cost instead of ira_get_register_move_cost.
2654
2655         * ira-int.h: Fix some comments.
2656         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
2657         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2658         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
2659         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
2660         add_data.
2661         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
2662         bitfield after mode.  Make hard_regno a short int.  Make
2663         hard_regno short.  Remove first_coalesced_allocno and
2664         next_coalesced_allocno.  Move mem_optimized_dest_p,
2665         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
2666         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
2667         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
2668         temp, colorable_p.  Add new member add_data.
2669         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
2670         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
2671         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
2672         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
2673         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
2674         (ALLOCNO_ADD_DATA): New macro.
2675         (ira_emit_data_t): New typedef.
2676         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
2677         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
2678         from struct ira_allocno.
2679         (ALLOCNO_EMIT_DATA): New macro.
2680         (ira_allocno_emit_data, allocno_emit_reg): New.
2681         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
2682         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
2683         (OBJECT_ADD_DATA): New macro.
2684         (ira_reallocate): Remove.
2685         (ira_initiate_emit_data, ira_finish_emit_data): New.
2686         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
2687         (ira_init_register_move_cost_if_necessary): New.
2688         (ira_object_conflict_iter_next): Merge into
2689         ira_object_conflict_iter_cond.
2690         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
2691
2692         * ira-live.c: (process_single_reg_class_operands): Call
2693         ira_init_register_move_cost_if_necessary.  Use
2694         ira_register_move_cost instead of ira_get_register_move_cost.
2695
2696         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2697
2698         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
2699
2700         * ira-costs.c: Fix formatting.
2701         (cost_classes, cost_classes_num): Remove.
2702         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
2703         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
2704         (cost_classes_del, cost_classes_htab): New.
2705         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
2706         (initiate_regno_cost_classes, setup_cost_classes): New.
2707         (setup_regno_cost_classes_by_aclass): New.
2708         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
2709         (record_reg_classes): Use regno_cost_classes instead of
2710         cost_classes.  Move checking opposite operand up.
2711         (record_address_regs): Use regno_cost_classes
2712         instead of cost_classes.
2713         (scan_one_insn): Ditto.  Use always general register.
2714         (print_allocno_costs): Use regno_cost_classes instead of
2715         cost_classes.
2716         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
2717         (find_costs_and_classes): Set up cost classes for each registers.
2718         Use also their mode for this.  Use regno_cost_classes instead of
2719         cost_classes.
2720         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
2721         cost_classes.
2722         (free_ira_costs, ira_init_costs): Don't use cost_classes.
2723         (ira_costs, ira_set_pseudo_classes): Call
2724         initiate_regno_cost_classes and finish_regno_cost_classes.
2725
2726         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
2727
2728         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
2729
2730         * target.def (ira_cover_classes): Remove.
2731
2732         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
2733
2734         * doc/tm.texi.in: Ditto.
2735
2736         * ira-conflicts.c: Remove mentioning cover classes from the file.
2737         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
2738         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
2739
2740         * targhooks.c (default_ira_cover_classes): Remove.
2741
2742         * targhooks.h (default_ira_cover_classes): Ditto.
2743
2744         * haifa-sched.c: Remove mentioning cover classes from the file.
2745         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2746         ira_pressure_classes and ira_pressure_classes_num instead of
2747         ira_reg_class_cover_size and ira_reg_class_cover.  Use
2748         sched_regno_pressure_class instead of sched_regno_cover_class.
2749         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
2750         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2751
2752         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
2753         classes from the file.
2754         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
2755         (struct object_hard_regs, struct object_hard_regs_node): New.
2756         (struct ira_object): New members profitable_hard_regs,
2757         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
2758         (struct ira_allocno): Rename cover_class to aclass.  Rename
2759         cover_class_cost and updated_cover_class_cost to class_cost and
2760         updated_class_cost.  Remove splay_removed_p and
2761         left_conflict_size.  Add new members colorable_p.
2762         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
2763         (ALLOCNO_COLORABLE_P): New macro.
2764         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
2765         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
2766         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
2767         (OBJECT_...): Rename parameter C to O.
2768         (OBJECT_PROFITABLE_HARD_REGS): New macro.
2769         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
2770         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
2771         (struct target_ira_int): New members x_ira_max_memory_move_cost,
2772         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
2773         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
2774         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
2775         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
2776         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
2777         x_ira_reg_class_subunion.
2778         (ira_max_memory_move_cost, ira_max_register_move_cost)
2779         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
2780         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
2781         (ira_important_class_nums, ira_reg_class_superunion): New macros.
2782         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
2783         (ira_reg_class_union): Rename to ira_reg_class_subunion.
2784         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2785         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2786         (ira_tune_allocno_costs_and_cover_classes): Rename to
2787         ira_tune_allocno_costs.
2788         (ira_debug_hard_regs_forest): New.
2789         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
2790         (ira_object_conflict_iter_next): Fix comments.
2791         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
2792         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
2793         cover_class to aclass.
2794         (ira_allocate_and_accumulate_costs): Ditto.
2795         (ira_allocate_and_set_or_copy_costs): Ditto.
2796
2797         * opts.c (decode_options): Remove ira_cover_class check.
2798
2799         * ira-color.c: Remove mentioning cover classes from the file.  Use
2800         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
2801         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
2802         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2803         (splay-tree.h): Remove include.
2804         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
2805         before copy_freq_compare_func.
2806         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
2807         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
2808         New definitions.
2809         (hard_regs_roots, hard_regs_node_vec): Ditto.
2810         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
2811         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
2812         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
2813         (create_new_object_hard_regs_node): Ditto.
2814         (add_new_object_hard_regs_node_to_forest): Ditto.
2815         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
2816         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
2817         Ditto.
2818         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
2819         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
2820         (remove_unused_object_hard_regs_nodes): Ditto.
2821         (enumerate_object_hard_regs_nodes): Ditto.
2822         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
2823         (object_hard_regs_subnode_t): Ditto.
2824         (struct object_hard_regs_subnode): Ditto.
2825         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
2826         (setup_object_hard_regs_subnode_index): Ditto.
2827         (get_object_hard_regs_subnodes_num): Ditto.
2828         (form_object_hard_regs_nodes_forest): Ditto.
2829         (finish_object_hard_regs_nodes_tree): Ditto.
2830         (finish_object_hard_regs_nodes_forest): Ditto.
2831         (allocnos_have_intersected_live_ranges_p): Rename to
2832         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2833         (pseudos_have_intersected_live_ranges_p): Rename to
2834         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2835         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
2836         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
2837         (update_copy_costs): Remove assert.  Skip cost update if the hard
2838         reg does not belong the class.
2839         (assign_hard_reg): Process only profitable hard regs.
2840         (uncolorable_allocnos_num): Make it scalar.
2841         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2842         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
2843         and ira_reg_class_max_nregs.
2844         (bucket_allocno_compare_func): Check frequency first.
2845         (sort_bucket): Add compare function as a parameter.
2846         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
2847         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
2848         (push_allocno_to_stack): Rewrite for checking new allocno
2849         colorability.
2850         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
2851         (push_only_colorable): Pass new parameter to sort_bucket.
2852         (push_allocno_to_spill): Remove.
2853         (allocno_spill_priority_compare): Make it inline and rewrite.
2854         (splay_tree_allocate, splay_tree_free): Remove.
2855         (allocno_spill_sort_compare): New function.
2856         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
2857         build and use splay tree.  Choose first allocno in uncolorable
2858         allocno bucket to spill.  Remove setting spill cost.
2859         (all_conflicting_hard_regs): Remove.
2860         (setup_allocno_available_regs_num): Check only profitable hard
2861         regs.  Print info about hard regs nodes.
2862         (setup_allocno_left_conflicts_size): Remove.
2863         (put_allocno_into_bucket): Don't call
2864         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
2865         (improve_allocation): New.
2866         (color_allocnos): Call setup_profitable_hard_regs,
2867         form_object_hard_regs_nodes_forest, improve_allocation,
2868         finish_object_hard_regs_nodes_forest.  Setup spill cost.
2869         (print_loop_title): Use pressure classes.
2870         (color_allocnso): Ditto.
2871         (do_coloring): Remove allocation and freeing splay_tree_node_pool
2872         and allocnos_for_spilling.
2873         (ira_sort_regnos_for_alter_reg): Don't setup members
2874         {first,next}_coalesced_allocno.
2875         (color): Remove allocating and freeing removed_splay_allocno_vec.
2876         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
2877         prohibited_class_mode_regs.
2878
2879         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
2880         formatting.
2881         (update_allocno_pressure_excess_length): Use pressure classes.
2882         (inc_register_pressure, dec_register_pressure): Check for pressure
2883         class.
2884         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
2885         pressure class.  Use ira_reg_class_nregs instead of
2886         ira_reg_class_max_nregs.
2887         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
2888         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
2889         (single_reg_class): Use ira_reg_class_nregs instead of
2890         ira_reg_class_max_nregs.
2891         (process_bb_node_lives): Use pressure classes.
2892
2893         * ira-emit.c: Remove mentioning cover classes from the file.  Use
2894         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2895         (change_loop): Use pressure classes.
2896         (modify_move_list): Call ira_set_allocno_class instead of
2897         ira_set_allocno_cover_class.
2898
2899         * ira-build.c: Remove mentioning cover classes from the file.  Use
2900         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
2901         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
2902         ALLOCNO_UPDATED_CLASS_COST instead of
2903         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2904         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
2905         (ira_create_allocno): Remove initialization of
2906         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
2907         ALLOCNO_COLORABLE_P.
2908         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2909         Update conflict regs for the objects.
2910         (create_cap_allocno): Remove assert.  Don't propagate
2911         ALLOCNO_AVAILABLE_REGS_NUM.
2912         (ira_free_allocno_costs): New function.
2913         (finish_allocno): Change a part of code into call of
2914         ira_free_allocno_costs.
2915         (low_pressure_loop_node_p): Use pressure classes.
2916         (object_range_compare_func): Don't compare classes.
2917         (setup_min_max_conflict_allocno_ids): Ditto.
2918
2919         * loop-invariant.c: Remove mentioning cover classes from the file.
2920         Use ira_pressure_classes and ira_pressure_classes_num instead of
2921         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
2922         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
2923         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2924         Use reg_allocno_class instead of reg_cover_class.
2925         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
2926         STACK_REG_COVER_CLASS.
2927         (get_regno_cover_class): Rename to get_regno_pressure_class.
2928         (move_loop_invariants): Initialize and finalize regstat.
2929
2930         * ira.c: Remove mentioning cover classes from the file.  Add
2931         comments about coloring without cover classes.  Use ALLOCNO_CLASS
2932         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2933         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
2934         setup_class_subset_and_memory_move_costs.
2935         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
2936         (setup_cover_and_important_classes): Rename to
2937         setup_allocno_and_important_classes.
2938         (setup_class_translate_array): New.
2939         (setup_class_translate): Call it for allocno and pressure classes.
2940         (cover_class_order): Rename to allocno_class_order.
2941         (comp_reg_classes_func): Use ira_allocno_class_translate instead
2942         of ira_class_translate.
2943         (reorder_important_classes): Set up ira_important_class_nums.
2944         (setup_reg_class_relations): Set up ira_reg_class_superunion.
2945         (print_class_cover): Rename to print_classes.  Add parameter.
2946         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2947         Print pressure classes too.
2948         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
2949         setup_reg_subclasses.
2950         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2951         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2952         (setup_prohibited_class_mode_regs): Use
2953         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
2954         (clarify_prohibited_class_mode_regs): New function.
2955         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
2956         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
2957         (ira_init_once): Initialize them.
2958         (free_register_move_costs): Process them.
2959         (ira_init): Move calls of find_reg_classes and
2960         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
2961         Call clarify_prohibited_class_mode_regs.
2962         (ira_no_alloc_reg): Remove.
2963         (too_high_register_pressure_p): Use pressure classes.
2964
2965         * sched-deps.c: Remove mentioning cover classes from the file.
2966         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2967         ira_pressure_classes and ira_pressure_classes_num instead of
2968         ira_reg_class_cover_size and ira_reg_class_cover.
2969         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
2970         sched_regno_pressure_class instead of sched_regno_cover_class.
2971         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
2972         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2973
2974         * ira.h: Add 2010 to Copyright.
2975         (ira_no_alloc_reg): Remove external.
2976         (struct target_ira): Rename x_ira_hard_regno_cover_class,
2977         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
2978         x_ira_class_translate to x_ira_hard_regno_allocno_class,
2979         x_ira_allocno_classes_num, x_ira_allocno_classes, and
2980         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
2981         x_ira_pressure_classes, x_ira_pressure_class_translate, and
2982         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
2983         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
2984         x_ira_no_alloc_regs.
2985         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2986         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
2987         ira_allocno_classes_num and ira_allocno_classes.
2988         (ira_class_translate): Rename to ira_allocno_class_translate.
2989         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
2990         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
2991         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2992         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
2993         (ira_no_alloc_regs): New.
2994
2995         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
2996         classes from the file.  Use ALLOCNO_CLASS instead of
2997         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
2998         ALLOCNO_COVER_CLASS_COST.
2999         (regno_cover_class): Rename to regno_aclass.
3000         (record_reg_classes): Use ira_reg_class_subunion instead of
3001         ira_reg_class_union.
3002         (record_address_regs): Check overflow.
3003         (scan_one_insn): Ditto.
3004         (print_allocno_costs): Print total mem cost fore regional allocation.
3005         (print_pseudo_costs): Use REG_N_REFS.
3006         (find_costs_and_classes): Use classes intersected with them on the
3007         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
3008         ira_reg_class_union.  Use ira_allocno_class_translate and
3009         regno_aclass instead of ira_class_translate and regno_cover_class.
3010         Modify code for finding regno_aclass.  Setup preferred classes for
3011         the next pass.
3012         (setup_allocno_cover_class_and_costs): Rename to
3013         setup_allocno_class_and_costs.  Use regno_aclass instead of
3014         regno_cover_class.  Use ira_set_allocno_class instead of
3015         ira_set_allocno_cover_class.
3016         (init_costs, finish_costs): Use regno_aclass instead of
3017         regno_cover_class.
3018         (ira_costs): Use setup_allocno_class_and_costs instead of
3019         setup_allocno_cover_class_and_costs.
3020         (ira_tune_allocno_costs_and_cover_classes): Rename to
3021         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
3022         by processing objects.  Use ira_reg_class_max_nregs instead of
3023         ira_reg_class_nregs.
3024
3025         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3026
3027         * sched-int.h: Remove mentioning cover classes from the file.
3028         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3029
3030         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
3031         classes from the file.
3032         (struct reg_pref): Rename coverclass into allocnoclass.
3033         (reg_cover_class): Rename to reg_allocno_class.
3034
3035         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
3036
3037         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
3038
3039         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3040
3041         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
3042
3043         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
3044
3045         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
3046
3047         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
3048
3049         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
3050
3051         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
3052
3053         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
3054
3055         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
3056         (i386_ira_cover_classes): Ditto.
3057
3058         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3059
3060         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
3061
3062         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
3063
3064         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
3065
3066         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
3067
3068         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
3069
3070         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
3071         (mips_ira_cover_classes): Ditto.
3072
3073         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
3074
3075         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
3076
3077         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
3078
3079         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
3080
3081         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
3082
3083         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
3084         (IRA_COVER_CLASSES_VSX): Ditto.
3085
3086         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
3087         (rs6000_ira_cover_classes): Ditto.
3088
3089         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
3090
3091         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
3092
3093         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
3094
3095         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
3096
3097         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
3098
3099         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
3100
3101         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
3102
3103         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
3104
3105         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
3106
3107         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
3108
3109 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
3110
3111         PR debug/48253
3112         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
3113         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
3114         dw_fde_unlikely_section_end_label, cold_in_std_section,
3115         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
3116         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
3117         fields.
3118         (output_fde): Use dw_fde_second_{begin,end} if second is
3119         true, otherwise dw_fde_{begin,end}.
3120         (output_call_frame_info): Test dw_fde_second_begin != NULL
3121         instead of dw_fde_switched_sections.
3122         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
3123         fields, initialize new fields.  Initialize in_std_section
3124         unconditionally from the first partition.
3125         (dwarf2out_end_epilogue): Don't override dw_fde_end when
3126         dw_fde_second_begin is non-NULL.
3127         (dwarf2out_switch_text_section): Stop initializing removed
3128         dw_fde_struct fields, initialize new fields, initialize
3129         also dw_fde_end here.  Set dw_fde_switch_cfi even when
3130         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
3131         (struct var_loc_list_def): Add last_before_switch field.
3132         (arange_table, arange_table_allocated, arange_table_in_use,
3133         ARANGE_TABLE_INCREMENT, add_arange): Removed.
3134         (size_of_aranges): Count !in_std_section and !second_in_std_section
3135         hunks in fdes, instead of looking at arange_table_in_use.
3136         (output_aranges): Add aranges_length argument, don't call
3137         size_of_aranges here.  Instead of using aranges_table*
3138         emit ranges for fdes when !in_std_section resp.
3139         !second_in_std_section.
3140         (dw_loc_list): Break ranges crossing section switch.
3141         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
3142         use dw_fde_second_end instead of dw_fde_end as end of last range.
3143         (gen_subprogram_die): Don't call add_arange.  Use
3144         dw_fde_{begin,end} for first partition and if switched
3145         section dw_fde_second_{begin,end} for the second.
3146         (var_location_switch_text_section_1,
3147         var_location_switch_text_section): New functions.
3148         (dwarf2out_begin_function): Initialize cold_text_section even
3149         when function_section () isn't text_section.
3150         (prune_unused_types): Don't walk arange_table.
3151         (dwarf2out_finish): Don't needlessly test
3152         flag_reorder_blocks_and_partition when testing cold_text_section_used.
3153         If info_section_emitted, call size_of_aranges and if it indicates
3154         non-empty .debug_aranges, call output_aranges with the computed
3155         size.  Stop using removed dw_fde_struct fields, use
3156         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
3157         for second.
3158
3159         PR debug/48203
3160         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
3161         create ENTRY_VALUE if incoming or address of incoming's MEM
3162         is a hard REG.
3163         * dwarf2out.c (mem_loc_descriptor): Don't emit
3164         DW_OP_GNU_entry_value of DW_OP_fbreg.
3165         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
3166         on ENTRY_VALUE is able to find the canonical parameter VALUE.
3167         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
3168         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
3169         ENTRY_VALUE_EXPs.
3170         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
3171         is a REG_P or MEM_P with REG_P address, compute hash directly
3172         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
3173         (preserve_only_constants): Don't clear VALUES forwaring
3174         ENTRY_VALUE to some other VALUE.
3175
3176 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
3177
3178         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
3179         instead of GEN_INT.
3180
3181 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3182
3183         * cfgexpand.c (expand_gimple_cond): Always set the source location and
3184         block before expanding the statement.
3185         (expand_gimple_stmt_1): Likewise.  Set them here...
3186         (expand_gimple_stmt): ...and not here.  Tidy.
3187         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3188         unknown.
3189
3190 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3191
3192         * Makefile.in: New rule for cprop.o.
3193         * gcse.c: Move constant/copy propagation to cprop.c.
3194         (compute_local_properties): Only handle expression tables.
3195         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3196         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3197         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3198         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3199         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3200         compute_cprop_data, find_used_regs, try_replace_reg,
3201         find_avail_set, cprop_jump, constprop_register, cprop_insn,
3202         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3203         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3204         find_bypass_set, reg_killed_on_edge, bypass_block,
3205         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3206         execute_rtl_cprop, pass_rtl_cprop): Move to...
3207         * cprop.c: ...here.  New file, constant/copy propagation for RTL
3208         moved from gcse.c to here with minor cleanups in duplicated code.
3209
3210 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3211
3212         * config/i386/i386.c (flag_opts): Fix a typo in
3213         -mavx256-split-unaligned-store.
3214
3215 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3216
3217         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3218         LIBCALL_VALUE): Remove macros.
3219         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3220         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3221         (h8300_function_value, h8300_libcall_value,
3222         h8300_function_value_regno_p): New functions.
3223
3224 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3225
3226         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3227
3228 2011-03-28  Jeff Law  <law@redhat.com>
3229
3230         * tree-ssa-threadupdate.c (redirect_edges): Call
3231         create_edge_and_update_destination_phis as needed.
3232         (create_edge_and_update_destination_phis): Accept new BB argument.
3233         All callers updated.
3234         (thread_block): Do not update the profile when threading around
3235         intermediate blocks.
3236         (thread_single_edge): Likewise.
3237         (determine_bb_domination_status): If BB is not a successor of the
3238         loop header, return NONDOMINATING.
3239         (register_jump_thread): Note when we register a jump thread around
3240         an intermediate block.
3241         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3242         (thread_across_edge): Use it.
3243
3244 2011-03-28  Tristan Gingold  <gingold@adacore.com>
3245
3246         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3247         when for_return is 2.
3248
3249 2011-03-28  Jeff Law  <law@redhat.com>
3250
3251         * var-tracking.c (canonicalize_values_mark): Delete unused
3252         lhs assignment.
3253         (canonicalize_values_star, set_variable_part): Likewise.
3254         (clobber_variable_part, delete_variable_part): Likewise.
3255
3256 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3257
3258         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
3259
3260 2011-03-28  Martin Jambor  <mjambor@suse.cz>
3261
3262         * tree-inline.c (expand_call_inline): Do not check that destination
3263         node is analyzed.
3264         (optimize_inline_calls): Assert that destination node is analyzed.
3265         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
3266         not call tree_lowering_passes.
3267         * cgraph.h (cgraph_analyze_function): Declare.
3268         * cgraphunit.c (cgraph_analyze_function): Make public.
3269
3270 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
3271
3272         * config/sparc/sparc-opts.h: New.
3273         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
3274         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
3275         (sparc_option_override): Store processor_type enumeration rather
3276         than string in cpu_default.  Remove name and enumeration from
3277         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
3278         without using sparc_select.  Use target_flags_explicit instead of
3279         fpu_option_set.
3280         * config/sparc/sparc.h (enum processor_type): Move to
3281         sparc-opts.h.
3282         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
3283         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
3284         HeaderInclude entry.
3285         (mcpu=, mtune=): Use Var and Enum.
3286         (sparc_processor_type): New Enum and EnumValue entries.
3287
3288 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3289             Iain Sandoe  <iains@gcc.gnu.org>
3290
3291         PR target/48245
3292         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
3293
3294 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3295
3296         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
3297         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
3298         Insert new statements at it in lieu of STMT.
3299         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
3300         * tree-vect-stmts.c (vectorizable_store): Likewise.
3301         (vectorizable_load): Likewise.
3302
3303 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
3304
3305         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
3306         (divtf3): Ditto.
3307         (multf3): Ditto.
3308         (subtf3): Ditto.
3309
3310 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3311
3312         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
3313         unaligned 256bit load/store.
3314         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
3315         (*avx_movdqu<avxmodesuffix>): Likewise.
3316
3317 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3318
3319         PR target/48288
3320         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
3321         * config/pa/pa.md (iordi3): Use new predicate in expander.
3322         (iorsi3): Likewise.
3323
3324 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
3325
3326         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
3327         FUNCTION_VALUE_REGNO_P): Remove macros.
3328         * config/mips/mips-protos.h (mips_function_value): Remove.
3329         * config/mips/mips.c (mips_function_value): Rename to...
3330         (mips_function_value_1): ... this. Make static.  Handle receiving
3331         the function type in 'fn_decl_or_type' argument.
3332         (mips_function_value, mips_libcall_value,
3333         mips_function_value_regno_p): New function.
3334         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3335         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3336
3337 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3338
3339         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
3340         and -mavx256-split-unaligned-store.
3341         (ix86_option_override_internal): Split 32-byte AVX unaligned
3342         load/store by default.
3343         (ix86_avx256_split_vector_move_misalign): New.
3344         (ix86_expand_vector_move_misalign): Use it.
3345
3346         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
3347         -mavx256-split-unaligned-store.
3348
3349         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
3350         256bit load/store.  Generate unaligned store on misaligned memory
3351         operand.
3352         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
3353         256bit load/store.
3354         (*avx_movdqu<avxmodesuffix>): Likewise.
3355
3356         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
3357         -mavx256-split-unaligned-store.
3358
3359 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3360
3361         PR target/38598
3362         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
3363         Update commentary.
3364
3365 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3366
3367         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
3368         opno arguments with an expand_operand.  Use create_input_operand.
3369         (mips_prepare_builtin_target): Delete.
3370         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
3371         functions.
3372         (mips_expand_builtin_direct): Use create_output_operand and
3373         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
3374         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
3375         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
3376
3377 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
3378
3379         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
3380         function.
3381         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3382
3383 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3384
3385         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
3386         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
3387         basic blocks and call commit_edge_insertions directly.
3388         (fixup_abnormal_edges): Move from here to...
3389         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
3390         on the edges and return whether some have actually been inserted.
3391         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
3392         compensation code.
3393
3394 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
3395
3396         PR rtl-optimization/48144
3397         * sel-sched-ir.c (merge_history_vect): Factor out from ...
3398         (merge_expr_data): ... here.
3399         (av_set_intersect): Rename to av_set_code_motion_filter.
3400         Update all callers.  Call merge_history_vect when an expression
3401         is found in both sets.
3402         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
3403
3404 2011-03-26  Alan Modra  <amodra@gmail.com>
3405
3406         * config/rs6000/predicates.md (word_offset_memref_op): Handle
3407         cmodel medium addresses.
3408         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
3409         64-bit gpr loads and stores.
3410         (rs6000_secondary_reload_ppc64): New function.
3411         * config/rs6000/rs6000-protos.h: Declare it.
3412         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
3413
3414 2011-03-26  Alan Modra  <amodra@gmail.com>
3415
3416         PR target/47487
3417         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
3418         GNU Go in traceback table.
3419
3420 2011-03-25  Richard Henderson  <rth@redhat.com>
3421
3422         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
3423         if there are exactly 6 operands.
3424         (set_storage_via_setmem): Similarly.
3425
3426 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3427
3428         * collect2.c (write_c_file_stat): Handle backslash
3429         as right-hand directory separator.
3430         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
3431         checking just for slash.
3432         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
3433         instead of checking for trailing slash.
3434         * gcc.c (record_temp_file): Use filename_cmp instead
3435         of strcmp.
3436         (do_spec_1): Likewise.
3437         (replace_outfile_spec_function): Likewise.
3438         (is_directory): Use filename_ncmp instead of strncmp.
3439         (print_multilib_info): Likewise.
3440         * gcov.c (find_source): Use filename_cmp instead
3441         instead of strcmp.
3442         (make_gcov_file_name): Fix order of slash/backslash
3443         checks.
3444         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
3445         (add_standard_paths): Likewise.
3446         * mips-tfile.c (saber_stop): Handle backslash.
3447         * prefix.c (update_path): Use filename_ncmp instead of
3448         strncmp.
3449         * profile.c (output_location): Use filename_cmp instead
3450         of strcmp.
3451         * read-md.c (handle_toplevel_file): Handle backslash.
3452         * tlink.c (frob_extension):  Likewise.
3453         * tree-cfg.c (same_line_p): Use filename_cmp instead of
3454         strcmp.
3455         * tree-dump.c (dequeue_and_dump): Handle backslash.
3456         * tree.c (get_file_function_name): Likewise.
3457         * gengtype.c (read_input_list): Likewise.
3458         (get_file_realbasename): Likewise.
3459         (get_output_file_with_visibility): Use filename_cmp
3460         instead of strcmp.
3461
3462 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
3463
3464         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
3465         case to VFPv1.
3466
3467 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3468
3469         * fold-const.c (expr_location_or): New function.
3470         (fold_truth_not_expr): Call it.
3471
3472 2011-03-25  Jeff Law  <law@redhat.com>
3473
3474         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
3475         va_end.
3476         * c-family/c-common.c (def_fn_type): Likewise.
3477         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
3478         * emit-rtl.c (gen_rtvec): Likewise.
3479         * lto/lto-lang.c (def_fn_type): Likewise.
3480
3481 2011-03-25  Richard Guenther  <rguenther@suse.de>
3482
3483         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
3484         also generate copies.
3485         (fini_copy_prop): Handle constant values properly.
3486
3487 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
3488
3489         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
3490         mode size instead of bitsize with DWARF2_ADDR_SIZE.
3491         (hash_loc_operands, compare_loc_operands): Handle
3492         DW_OP_GNU_entry_value.
3493
3494 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3495
3496         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
3497         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
3498         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
3499         comment and use macro TARGET_64BIT_MS_ABI instead.
3500         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
3501         and change default behavior for 32-bit MS_ABI.
3502         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
3503         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
3504         32-bit, too.
3505         (ix86_cfun_abi): Likewise.
3506         (ix86_maybe_switch_abi): Adjust comment.
3507         (init_cumulative_args): Check for bit-ness in MS_ABI case.
3508         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
3509         instead of checking for SYSV_ABI.
3510         (ix86_nsaved_sseregs): Likewise.
3511         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
3512         to 16 bytes.
3513         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
3514         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
3515         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
3516         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
3517         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
3518
3519 2011-03-25  Richard Guenther  <rguenther@suse.de>
3520
3521         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
3522         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3523         (verify_gimple): Remove.
3524         * tree-cfg.c (verify_gimple_call): Merge verification
3525         from verify_stmts.
3526         (verify_gimple_phi): Merge verification from verify_stmts.
3527         (verify_gimple_label): New function.
3528         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
3529         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3530         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
3531         (verify_stmts): Rename to verify_gimple_in_cfg.
3532         (verify_gimple_in_cfg): New function.
3533         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
3534         * tree-ssa.c (verify_ssa): Likewise.
3535         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
3536
3537 2011-03-25  Richard Guenther  <rguenther@suse.de>
3538
3539         * passes.c (init_optimization_passes): Add FRE pass after
3540         early SRA.
3541
3542 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
3543             Andrew Stubbs  <ams@codesourcery.com>
3544
3545         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
3546         for Cortex-A8.
3547         (arm_movdi_vfp_cortexa8): New pattern.
3548         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
3549         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
3550         instructions when tuning for Cortex-A8.  Set attribute "arch".
3551         * config/arm/arm.md: Move include arm-tune.md up a bit.
3552         (define_attr "arch"): Add "onlya8" and "nota8" values.
3553         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
3554
3555 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3556
3557         PR bootstrap/48282
3558         Revert:
3559         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3560
3561         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3562         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3563         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3564         * passes.c (init_optimization_passes): Move
3565         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3566
3567 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3568
3569         * c-typeck.c (comptypes_internal): Replace target
3570         hook call of comp_type_attributes by version in tree.c file.
3571         * gimple.c (gimple_types_compatible_p_1): Likewise.
3572         * tree-ssa.c (useless_type_conversion_p): Likewise.
3573         * tree.c (build_type_attribute_qual_variant): Likewise.
3574         (attribute_value_equal): New static helper function.
3575         (comp_type_attributes): New function.
3576         (merge_attributes): Use attribute_value_equal for comparison.
3577         (attribute_list_contained): Likewise.
3578         * tree.h (comp_type_attributes): New prototype.
3579
3580 2011-03-25  Richard Guenther  <rguenther@suse.de>
3581
3582         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
3583         of complex types at -O0.
3584         (verify_gimple_assign_binary): Likewise.
3585         (verify_gimple_assign_ternary): Likewise.
3586
3587 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3588
3589         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
3590         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
3591
3592 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3593
3594         PR debug/48041
3595         * dwarf2out.c (output_abbrev_section): Only write table when
3596         abbrev_die_table_in_use > 1.
3597
3598 2011-02-24  Richard Henderson  <rth@redhat.com>
3599
3600         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
3601         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
3602         (alpha_expand_unaligned_load_words): Use extql.
3603         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
3604         (emit_insxl): Handle all modes for consistency.
3605
3606 2011-02-24  Richard Henderson  <rth@redhat.com>
3607
3608         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
3609         (alpha_expand_unaligned_load): Likewise.
3610         (alpha_expand_unaligned_store): Likewise.
3611         (alpha_expand_unaligned_load_words): Likewise.
3612         (alpha_expand_unaligned_store_words): Likewise.
3613         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
3614         (alpha_split_lock_test_and_set_12): Likewise.
3615         (print_operand, alpha_fold_builtin_extxx): Likewise.
3616         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
3617         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
3618         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
3619         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
3620         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
3621         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
3622         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
3623         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
3624         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
3625         (extwl, extll, extql): Similarly.
3626         (inswh, inslh, insqh): Similarly.
3627         (mskbl, mskwl, mskll, mskql): Similarly.
3628         (mskwh, msklh, mskqh): Similarly.
3629
3630 2011-02-24  Richard Henderson  <rth@redhat.com>
3631
3632         * config/alpha/alpha.md (attribute isa): Add er, ner.
3633         (attribute enabled): Handle them.
3634         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
3635
3636 2011-02-24  Richard Henderson  <rth@redhat.com>
3637
3638         * config/alpha/alpha.md (attribute isa): Add vms.
3639         (attribute enabled): Handle it.
3640         (*movsf): Merge *movsf_{nofix,fix,nofp}.
3641         (*movdf): Merge *movdf_{nofix,fix,nofp}.
3642         (*movtf): Rename from *movtf_internal for consistency.
3643         (*movsi): Merge with *movsi_nt_vms.
3644         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
3645         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
3646         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
3647         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
3648
3649 2011-02-24  Richard Henderson  <rth@redhat.com>
3650
3651         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
3652         (extendqisi2, extendhisi2): Likewise.
3653         (extendqidi2): Simplify BWX/non-BWX expansions.
3654         (extendhidi2): Similarly.
3655
3656 2011-02-24  Richard Henderson  <rth@redhat.com>
3657
3658         * config/alpha/alpha.md (attribute isa): New.
3659         (attribute enabled): New.
3660         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
3661         (zero_extendqisi2, zero_extendqidi2): Similarly.
3662         (zero_extendhisi2, zero_extendhidi2): Similarly.
3663         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
3664
3665 2011-02-24  Richard Henderson  <rth@redhat.com>
3666
3667         * config/alpha/predicates.md (input_operand): Revert last change;
3668         update comment to mention 32-bit VMS rather than Windows.
3669
3670 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3671
3672         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3673         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3674         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3675         * passes.c (init_optimization_passes): Move
3676         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3677
3678 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3679
3680         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
3681
3682 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3683
3684         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
3685         correctly.
3686
3687 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
3688
3689         PR debug/48204
3690         * simplify-rtx.c (simplify_const_unary_operation): Call
3691         real_convert when changing mode class with FLOAT_EXTEND.
3692
3693 2011-03-24  Nick Clifton  <nickc@redhat.com>
3694
3695         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
3696         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
3697         * config/rx/rx.c (rx_option_override): Set align_jumps,
3698         align_loops and align_labels if not set by the user.
3699         (rx_align_for_label): New function.
3700         (rx_max_skip_for_label): New function.
3701         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
3702         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
3703         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
3704         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
3705         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
3706
3707 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3708
3709         PR rtl-optimization/48263
3710         * optabs.c (expand_binop_directly): Reinstate convert_modes code
3711         and original commutative_p handling.  Use maybe_gen_insn.
3712
3713 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3714
3715         * reload.c (find_reloads_subreg_address): Add address_reloaded
3716         parameter and return true there if the full address has been
3717         reloaded.
3718         (find_reloads_toplev): Pass address_reloaded flag.
3719         (find_reloads_address_1): Don't use address_reloaded parameter.
3720
3721 2011-03-24  Jeff Law  <law@redhat.com>
3722
3723         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
3724         unused variable "ann".
3725         (remove_unused_locals): Likewise.
3726
3727         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
3728         statement.
3729
3730         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
3731         after it is freed.
3732
3733 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3734
3735         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
3736         for invalid symbolic addresses.
3737         (s390_secondary_reload): Don't use s390_check_symref_alignment for
3738         larl operands.
3739
3740 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3741
3742         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
3743         the argument in calls to fold_truth_not_expr.
3744
3745 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3746
3747         * tree.c (record_node_allocation_statistics): New function.
3748         (make_node_stat, copy_node_stat, build_string): Call it.
3749         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
3750         (build1_stat, build_omp_clause): Likewise.
3751
3752 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3753
3754         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
3755         last commit.
3756
3757 2011-03-24  Richard Guenther  <rguenther@suse.de>
3758
3759         PR tree-optimization/48271
3760         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
3761         blocks that still exist.
3762
3763 2011-03-24  Richard Guenther  <rguenther@suse.de>
3764
3765         PR tree-optimization/48270
3766         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
3767         not free datarefs before ddrs.
3768
3769 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3770
3771         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
3772         from the address built for a reference with variable offset.
3773
3774 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3775
3776         PR target/48237
3777         * config/i386/i386.md (*movdf_internal_rex64): Do not split
3778         alternatives that can be handled with movq or movabsq insn.
3779         (*movdf_internal): Disable for !TARGET_64BIT.
3780         (*movdf_internal_nointeger): Ditto.
3781         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
3782
3783 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3784
3785         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3786         (FUNCTION_ARG_ADVANCE): Likewise.
3787         * tm.texi.in: Change references to them to hook references.
3788         * tm.texi: Regenerate.
3789         * targhooks.c (default_function_arg): Eliminate check for target macro.
3790         (default_function_incoming_arg): Likewise.
3791         (default_function_arg_advance): Likewise.
3792         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3793         (function_arg_advance): Likewise.
3794         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3795
3796 2011-03-24  Richard Guenther  <rguenther@suse.de>
3797
3798         PR middle-end/48269
3799         * tree-object-size.c (addr_object_size): Do not double-account
3800         for MEM_REF offsets.
3801
3802 2011-03-24  Diego Novillo  <dnovillo@google.com>
3803
3804         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
3805         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
3806         (lto_input_data_block): Move from lto-opts.c.  Make extern.
3807         Update all users.
3808         (lto_input_string): Rename from input_string.  Make extern.
3809         Update all users.
3810         * lto-streamer-out.c (lto_output_string_with_length): Rename from
3811         output_string_with_length.
3812         Output 0 to indicate a non-NULL string.  Update all callers to
3813         not emit 0.
3814         (lto_output_string): Rename from output_string.  Make extern.
3815         Update all users.
3816         (lto_output_decl_state_streams): Make extern.
3817         (lto_output_decl_state_refs): Make extern.
3818         * lto-streamer.h (lto_input_string): Declare.
3819         (lto_input_data_block): Declare.
3820         (lto_output_string): Declare.
3821         (lto_output_string_with_length): Declare.
3822         (lto_output_decl_state_streams): Declare.
3823         (lto_output_decl_state_refs): Declare.
3824
3825 2011-03-24  Richard Guenther  <rguenther@suse.de>
3826
3827         PR tree-optimization/46562
3828         * tree.c (build_invariant_address): New function.
3829         * tree.h (build_invariant_address): Declare.
3830         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
3831         a renamed function moved ...
3832         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
3833         Take valueization callback parameter.
3834         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
3835         * gimple-fold.h: New file.
3836         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
3837         (ccp_fold, fold_const_aggregate_ref,
3838         fold_ctor_reference, fold_nonarray_ctor_reference,
3839         fold_array_ctor_reference, fold_string_cst_ctor_reference,
3840         get_base_constructor): Move ...
3841         * gimple-fold.c: ... here.
3842         (gimple_fold_stmt_to_constant_1): New function
3843         split out from ccp_fold.  Take a valueization callback parameter.
3844         Valueize all operands.
3845         (gimple_fold_stmt_to_constant): New wrapper function.
3846         (fold_const_aggregate_ref_1): New function split out from
3847         fold_const_aggregate_ref.  Take a valueization callback parameter.
3848         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
3849         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
3850         invariant POINTER_PLUS_EXPRs to invariant form.
3851         (vn_valueize): New function.
3852         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
3853         * tree-vrp.c (vrp_valueize): New function.
3854         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
3855         to fold statements to constants.
3856         * tree-ssa-pre.c (eliminate): Properly guard propagation of
3857         function declarations.
3858         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
3859         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
3860
3861 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3862
3863         * config/h8300/predicates.md (jump_address_operand): Fix register
3864         mode check.
3865
3866 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
3867
3868         * doc/invoke.texi (max-stores-to-sink): Document.
3869         * params.h (MAX_STORES_TO_SINK): Define.
3870         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
3871         if either vectorization or if-conversion is disabled.
3872         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
3873         tree-vect-data-refs.c vect_equal_offsets.
3874         (dr_equal_offsets_p): New function.
3875         (find_data_references_in_bb): Remove static.
3876         * tree-data-ref.h (find_data_references_in_bb): Declare.
3877         (dr_equal_offsets_p): Likewise.
3878         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
3879         (vect_drs_dependent_in_basic_block): Update calls to
3880         vect_equal_offsets.
3881         (vect_check_interleaving): Likewise.
3882         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
3883         (cond_if_else_store_replacement): Rename to...
3884         (cond_if_else_store_replacement_1): ... this.  Change arguments and
3885         documentation.
3886         (cond_if_else_store_replacement): New function.
3887         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
3888         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
3889
3890 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
3891
3892         PR target/46934
3893         * config/arm/arm.md (casesi): Use the gen_int_mode() function
3894         to subtract lower bound instead of GEN_INT().
3895
3896 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
3897
3898         PR other/48179
3899         PR other/48221
3900         PR other/48234
3901         * doc/extend.texi (Alignment): Move section to match order in TOC.
3902         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
3903         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
3904
3905 2011-03-23  Jeff Law  <law@redhat.com>
3906
3907         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
3908         before removing the edge.
3909
3910         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
3911         it may have been freed by redirect_branch_edge or
3912         redirect_edge_succ_nodup.
3913
3914 2011-03-23  Richard Guenther  <rguenther@suse.de>
3915
3916         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
3917         (check_va_list_escapes): Likewise.
3918         (check_all_va_list_escapes): Likewise.
3919
3920 2011-03-23  Richard Guenther  <rguenther@suse.de>
3921
3922         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
3923         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
3924         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
3925         (alias.o): Likewise.
3926         (ipa-type-escape.o): Remove.
3927         (ipa-struct-reorg.o): Likewise.
3928         (GTFILES): Remove ipa-struct-reorg.c.
3929         * alias.c: Do not include ipa-type-escape.h.
3930         * tree-ssa-alias.c: Likewise.
3931         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
3932         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
3933         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
3934         and ipa-type-escape passes.
3935         * tree-pass.h (pass_ipa_type_escape): Remove.
3936         (pass_ipa_struct_reorg): Likewise.
3937         * ipa-struct-reorg.h: Remove.
3938         * ipa-struct-reorg.c: Likewise.
3939         * ipa-type-escape.h: Likewise.
3940         * ipa-type-escape.c: Likewise.
3941         * doc/invoke.texi (-fipa-struct-reorg): Remove.
3942         (--param struct-reorg-cold-struct-ratio): Likewise.
3943         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3944         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3945         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
3946
3947 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3948
3949         * config/s390/2084.md: Enable all insn reservations also for z9_ec
3950         cpu attribute value.
3951         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
3952         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
3953         * config/s390/s390.c (processor_flags_table): New constant array.
3954         (s390_handle_arch_option): Remove.
3955         (s390_handle_option): Remove s390_handle_arch_option invocations
3956         and OPT_mwarn_framesize_ handling.
3957         (s390_option_override): Remove s390_handle_arch_option invocation.
3958         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
3959         warnings.
3960         * config/s390/s390.md (cpu attribute): Add z9_ec value.
3961         * config/s390/s390.opt (s390_tune, s390_arch)
3962         (march=): Replace s390_arch_option enum and values with
3963         processor_type.  Set variable name to s390_arch.  Set
3964         initialization value.
3965         (mtune=): Replace s390_arch_option with processor_type.  Set
3966         variable name to s390_tune.  Set initialization value.
3967
3968 2011-03-23  Julian Brown  <julian@codesourcery.com>
3969
3970         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
3971         accesses which are not naturally aligned.
3972
3973 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3974
3975         PR target/47553
3976         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
3977
3978 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3979
3980         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
3981         parameter from "int" to "enum insn_code".
3982         (expand_operand_type): New enum.
3983         (expand_operand): New structure.
3984         (create_expand_operand): New function.
3985         (create_fixed_operand, create_output_operand): Likewise
3986         (create_input_operand, create_convert_operand_to): Likewise.
3987         (create_convert_operand_from, create_address_operand): Likewise.
3988         (create_integer_operand): Likewise.
3989         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
3990         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3991         (expand_insn, expand_jump_insn): Likewise.
3992         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
3993         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
3994         (expand_movstr, expand_builtin___clear_cache): Likewise.
3995         (expand_builtin_lock_release): Likewise.
3996         * explow.c (allocate_dynamic_stack_space): Likewise.
3997         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
3998         and use the default handling in that case.
3999         * expmed.c (check_predicate_volatile_ok): Delete.
4000         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
4001         (emit_cstore): Likewise.
4002         * expr.c (emit_block_move_via_movmem): Likewise.
4003         (set_storage_via_setmem, expand_assignment): Likewise.
4004         (emit_storent_insn, try_casesi): Likewise.
4005         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
4006         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
4007         (expand_vec_shift_expr, expand_binop_directly): Likewise.
4008         (expand_twoval_unop, expand_twoval_binop): Likewise.
4009         (expand_unop_direct, emit_indirect_jump): Likewise.
4010         (emit_conditional_move, vector_compare_rtx): Likewise.
4011         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
4012         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
4013         (expand_sync_lock_test_and_set): Likewise.
4014         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
4015         (emit_unop_insn): Likewise.
4016         (expand_copysign_absneg): Change icode to an insn_code.
4017         (create_convert_operand_from_type): New function.
4018         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
4019         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4020         (expand_insn, expand_jump_insn): Likewise.
4021         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
4022         than const_int_operand for operand 2.
4023
4024 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4025
4026         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
4027         if possible.
4028
4029 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4030
4031         * emit-rtl.c (emit_pattern_before_noloc): New function.
4032         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
4033         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
4034         (emit_pattern_after_noloc): New function.
4035         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
4036         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
4037
4038 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4039
4040         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
4041         (__ffsDI2): Likewise.
4042
4043 2011-03-22  Richard Henderson  <rth@redhat.com>
4044
4045         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
4046         of !TARGET_ABI_OPEN_VMS.
4047         (alpha_trampoline_init, alpha_start_function): Likewise.
4048         (alpha_expand_epilogue, alpha_file_start): Likewise.
4049         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
4050         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
4051         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
4052         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
4053         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
4054
4055 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4056
4057         * config/s390/s390-opts.h: New.
4058         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
4059         s390_arch_flags, s390_warn_framesize, s390_stack_size,
4060         s390_stack_guard): Remove.
4061         (s390_handle_arch_option): Return void.  Take enum
4062         s390_arch_option value instead of string and searching array.
4063         (s390_handle_option): Don't assert that global structures are in
4064         use.  Access variables via opts pointer.  Use error_at.  Don't use
4065         sscanf for -mstack-guard= or -mstack-size=.  Update call to
4066         s390_handle_arch_option.
4067         (s390_option_override): Update call to s390_handle_arch_option.
4068         (s390_emit_prologue): Use %d format for s390_stack_size in
4069         diagnostic.  Use %wd for HOST_WIDE_INT.
4070         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
4071         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
4072         * config/s390/s390.opt (config/s390/s390-opts.h): New
4073         HeaderInclude entry.
4074         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
4075         s390_arch_flags, s390_warn_framesize): New Variable entries.
4076         (s390_arch_option): New Enum and EnumValue entries.
4077         (march=): Use Enum instead of Var.
4078         (mstack-guard=, mstack-size=): Use UInteger and Var.
4079         (mtune=): Use Enum.
4080
4081 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4082
4083         * config/score/score.c (score_handle_option): Don't assert that
4084         global structures are in use.  Access target_flags via opts
4085         pointer.  Use value of -march= option to determine target_flags
4086         settings.
4087         * config/score/score.opt (march=): Use Enum.
4088         (score_arch): New Enum and EnumValue entries.
4089
4090 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4091
4092         * config/mep/mep.c (option_mtiny_specified): Remove.
4093         (mep_option_override): Move register handling for -mivc2 from
4094         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
4095         instead of option_mtiny_specified.
4096         (mep_handle_option): Access target_flags via opts pointer.  Don't
4097         assert that global structures are in use.  Defer part of -mivc2
4098         handling and move it to mep_option_override.
4099         * config/mep/mep.opt (IVC2): New Mask entry.
4100         (mivc2): Use Var and Defer instead of Mask.
4101
4102 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4103
4104         * config/v850/v850-opts.h: New.
4105         * config/v850/v850.c (small_memory): Replace with
4106         small_memory_physical_max array.  Make that array static const.
4107         (v850_handle_memory_option): Take integer value of argument.  Take
4108         gcc_options pointer, option text and location.  Return void.
4109         Update for changes to small memory structures.
4110         (v850_handle_option): Access target_flags via opts pointer.  Don't
4111         assert that global structures are in use.  Update calls to
4112         v850_handle_memory_option.
4113         (v850_encode_data_area): Update references to small memory settings.
4114         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4115         (enum small_memory_type): Move to v850-opts.h.
4116         * config/v850/v850.opt (config/v850/v850-opts.h): New
4117         HeaderInclude entry.
4118         (small_memory_max): New Variable entry.
4119         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
4120         (mtda, mzda): Likewise.
4121
4122 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4123
4124         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
4125         pointer.  Don't assert that global structures are in use.
4126
4127 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4128
4129         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
4130         via opts pointer.  Don't assert that global structures are in use.
4131
4132 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4133
4134         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
4135         (munix=93): Use Var.
4136         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
4137         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
4138         * config/pa/pa-opts.h: New.
4139         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
4140         (pa_handle_option): Don't assert that global structures are in
4141         use.  Access target_flags via opts pointer.  Don't handle
4142         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
4143         OPT_munix_98 here.
4144         (pa_option_override): Handle deferred OPT_mfixed_range_.
4145
4146 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4147
4148         * config/mn10300/mn10300-opts.h: New.
4149         * config/mn10300/mn10300.c (mn10300_processor,
4150         mn10300_tune_string): Remove.
4151         (mn10300_handle_option): Don't assert that global structures are
4152         in use.  Access mn10300_processor via opts pointer.  Don't handle
4153         OPT_mtune_ here.
4154         * config/mn10300/mn10300.h (enum processor_type): Move to
4155         mn10300-opts.h.
4156         (mn10300_processor): Remove.
4157         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
4158         HeaderInclude entry.
4159         (mn10300_processor): New Variable entry.
4160         (mtune=): Use Var.
4161
4162 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4163
4164         * config/microblaze/microblaze.c: Don't include opts.h.
4165         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
4166         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
4167         (mno-clearbss): Use Var and Warn.
4168
4169 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4170
4171         * config/m32r/m32r-opts.h: New.
4172         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
4173         (m32r_handle_option): Don't assert that global structures are in
4174         use.  Access target_flags and m32r_cache_flush_func via opts
4175         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
4176         OPT_mno_flush_trap here.
4177         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
4178         include of m32r-opts.h.
4179         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
4180         HeaderInclude entry.
4181         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
4182         (mmodel=): Use Enum and Var.
4183         (m32r_model): New Enum and EnumValue entries.
4184         (mno-flush-trap): Use Var.
4185         (msdata=): Use Enum and Var.
4186         (m32r_sdata): New Enum and EnumValue entries.
4187
4188 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4189
4190         * config/m32c/m32c.c: Don't include opts.h.
4191         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4192         m32c_handle_option): Remove.
4193         (m32c_option_override): Check global_options_set.x_target_memregs
4194         instead of target_memregs_set.
4195         * config/m32c/m32c.h (target_memregs): Remove.
4196         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4197         variable.
4198
4199 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4200
4201         * config/iq2000/iq2000-opts.h: New.
4202         * config/iq2000/iq2000.c: Don't include opts.h.
4203         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4204         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4205         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4206         HeaderInclude entry.
4207         (iq2000_tune): New Variable entry.
4208         (march=): Add comment.  Use Enum.
4209         (iq2000_arch): New Enum and EnumValue entries.
4210         (mcpu=): Use Enum and Var.
4211         (iq2000_tune): New Enum and EnumValue entries.
4212
4213 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4214
4215         * config/ia64/ia64-opts.h: New.
4216         * config/ia64/ia64.c (ia64_tune): Remove.
4217         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4218         here.  Use error_at.
4219         (ia64_option_override): Handle deferred OPT_mfixed_range_.
4220         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4221         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4222         HeaderInclude entry.
4223         (ia64_tune): New Variable entry.
4224         (mfixed-range=): Use Defer and Var.
4225         (mtune=): Use Enum and Var.
4226         (ia64_tune): New Enum and EnumValue entries.
4227
4228 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4229
4230         * config/frv/frv-opts.h: New.
4231         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4232         frv-opts.h.
4233         (frv_cpu_type): Remove.
4234         * config/frv/frv.c: Don't include opts.h.
4235         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4236         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4237         (frv_cpu_type): New Variable entry.
4238         (frv_cpu): New Enum and EnumValue entries.
4239
4240 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4241
4242         * config/cris/cris.c (cris_handle_option): Access target_flags via
4243         opts pointer.  Don't assert that global structures are in use.
4244         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4245         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4246
4247 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4248
4249         * config/bfin/bfin-opts.h: New.
4250         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4251         bfin_si_revision, bfin_workarounds): Remove.
4252         (bfin_cpus): Make static const.
4253         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4254         not bfin_lib_id_given.
4255         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
4256         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
4257         pointer. Use error_at.  Don't assert that global structures are in use.
4258         * config/bfin/bfin.h: Include bfin-opts.h.
4259         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
4260         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
4261         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
4262         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
4263         entries.
4264
4265 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4266
4267         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
4268         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
4269         or -msoft-float here.
4270         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
4271         -msoft-float and -mhard-float.
4272         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
4273         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4274         msoft-float.
4275         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
4276         -msoft-float.
4277         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
4278         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
4279         not mhard-float.
4280         (LIBGCC_SPEC): Don't handle -msoft-float.
4281         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
4282         -mhard-float.
4283         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4284         msoft-float.
4285         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
4286         -mfloat-abi=*, not -msoft-float and -mhard-float.
4287         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
4288         -msoft-float.
4289         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
4290         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
4291         mhard-float and msoft-float.
4292         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
4293         mfloat-abi=soft in comments, not mhard-float and msoft-float.
4294         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4295         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
4296         mhard-float.
4297         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
4298         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
4299         msoft-float.
4300         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
4301         not mhard-float.
4302         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
4303         not msoft-float.
4304
4305 2011-03-22  Richard Henderson  <rth@redhat.com>
4306
4307         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
4308         TARGET_ABI_WINDOWS_NT.
4309         (alpha_output_function_end_prologue): Likewise.
4310         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
4311         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4312         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
4313         (trap, *movsi_nt_vms): Likewise.
4314         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
4315         (*tablejump_osf_nt_internal): Remove.
4316         * config/alpha/predicates.md (input_operand): Only test Pmode.
4317
4318 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4319
4320         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
4321         via opts pointer.  Use error_at.  Don't assert that global
4322         structures are in use.
4323
4324 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4325
4326         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
4327         (ix86_handle_option): Access ix86_isa_flags and
4328         ix86_isa_flags_explicit via opts pointer.  Don't assert that
4329         global structures are in use.
4330         (ix86_function_specific_save, ix86_function_specific_restore):
4331         Update ix86_isa_flags_explicit field name.
4332         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
4333         (ix86_isa_flags_explicit): Rename TargetSave entry to
4334         x_ix86_isa_flags_explicit.
4335
4336 2011-03-22  Richard Henderson  <rth@redhat.com>
4337
4338         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
4339         (alpha_option_override, direct_return): Likewise.
4340         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
4341         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
4342         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
4343         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4344         (alpha_expand_epilogue, alpha_end_function): Likewise.
4345         (alpha_init_libfuncs): Likewise.
4346         (struct machine_function): Remove unicosmk members.
4347         (print_operand) ['t']: Remove.
4348         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
4349         unicosmk_output_module_name, unicosmk_output_common,
4350         current_section_align, unicosmk_output_text_section_asm_op,
4351         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
4352         unicosmk_section_type_flags, unicosmk_unique_section,
4353         unicosmk_asm_named_section, unicosmk_insert_attributes,
4354         unicosmk_output_align, unicosmk_defer_case_vector,
4355         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
4356         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
4357         unicosmk_output_ssib, unicosmk_add_call_info_word,
4358         unicosmk_extern_head, unicosmk_output_default_externs,
4359         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
4360         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
4361         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
4362         * config/alpha/alpha-protos.h: Update.
4363         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
4364         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
4365         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
4366         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
4367         (*mulsi_se, mulvsi3): Likewise.
4368         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
4369         (*divmodsi_internal, call, call_value, realign): Likewise.
4370         (moddi3, umoddi3): Likewise; remove duplicate expander.
4371         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
4372         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
4373         (*movdi_nofix): Remove r/U alternative.
4374         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
4375         * config/alpha/constraints.md ("U"): Remove.
4376         * config/alpha/predicates.md (call_operand"): Don't test
4377         TARGET_ABI_UNICOSMK.
4378
4379 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4380
4381         * target.def (handle_option): Take gcc_options and
4382         cl_decoded_option pointers and location_t.
4383         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
4384         * doc/tm.texi: Regenerate.
4385         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
4386         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
4387         * lto-opts.c (lto_reissue_options): Generate option structure for
4388         targetm.handle_option call.
4389         * opts.c (target_handle_option): Update call to
4390         targetm.handle_option.  Remove assertions about values now passed
4391         down to hook.
4392         * targhooks.c (default_target_handle_option): New.
4393         * targhooks.h (default_target_handle_option): Declare.
4394         * config/alpha/alpha.c: Include opts.h.
4395         (alpha_handle_option): Update to new hook interface.
4396         * config/arm/arm.c: Include opts.h.
4397         (arm_handle_option): Update to new hook interface.
4398         * config/arm/t-arm (arm.o): Update dependencies.
4399         * config/bfin/bfin.c: Include opts.h.
4400         (bfin_handle_option): Update to new hook interface.
4401         * config/cris/cris.c: Include opts.h.
4402         (cris_handle_option): Update to new hook interface.
4403         * config/frv/frv.c: Include opts.h.
4404         (frv_handle_option): Update to new hook interface.
4405         * config/i386/i386.c: Include opts.h.
4406         (ix86_handle_option): Update to new hook interface.
4407         (ix86_valid_target_attribute_inner_p): Generate option structure
4408         for call to ix86_handle_option.
4409         * config/i386/t-i386 (i386.o): Update dependencies.
4410         * config/ia64/ia64.c: Include opts.h.
4411         (ia64_handle_option): Update to new hook interface.
4412         * config/ia64/t-ia64 (ia64.o): Update dependencies.
4413         * config/iq2000/iq2000.c: Include opts.h.
4414         (iq2000_handle_option): Update to new hook interface.
4415         * config/m32c/m32c.c: Include opts.h.
4416         (m32c_handle_option): Update to new hook interface.
4417         * config/m32r/m32r.c: Include opts.h.
4418         (m32r_handle_option): Update to new hook interface.
4419         * config/m68k/m68k.c: Include opts.h.
4420         (m68k_handle_option): Update to new hook interface.
4421         * config/mep/mep.c: Include opts.h.
4422         (mep_handle_option): Update to new hook interface.
4423         * config/microblaze/microblaze.c: Include opts.h.
4424         (microblaze_handle_option): Update to new hook interface.
4425         * config/mips/mips.c: Include opts.h.
4426         (mips_handle_option): Update to new hook interface.
4427         * config/mn10300/mn10300.c: Include opts.h.
4428         (mn10300_handle_option): Update to new hook interface.
4429         * config/pa/pa.c: Include opts.h.
4430         (pa_handle_option): Update to new hook interface.
4431         * config/pdp11/pdp11.c: Include opts.h.
4432         (pdp11_handle_option): Update to new hook interface.
4433         * config/rs6000/rs6000.c: Include opts.h.
4434         (rs6000_handle_option): Update to new hook interface.
4435         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4436         * config/rx/rx.c: Include opts.h.
4437         (rx_handle_option): Update to new hook interface.
4438         * config/s390/s390.c: Include opts.h.
4439         (s390_handle_option): Update to new hook interface.
4440         * config/score/score.c: Include opts.h.
4441         (score_handle_option): Update to new hook interface.
4442         * config/sh/sh.c: Include opts.h.
4443         (sh_handle_option): Update to new hook interface.
4444         * config/sparc/sparc.c: Include opts.h.
4445         (sparc_handle_option): Update to new hook interface.
4446         * config/v850/v850.c: Include opts.h.
4447         (v850_handle_option): Update to new hook interface.
4448
4449 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4450
4451         * gcc.c (driver_unknown_option_callback): Only permit and save
4452         unknown -Wno- options.
4453         (driver_wrong_lang_callback): Save options directly instead of via
4454         driver_unknown_option_callback.
4455
4456 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4457
4458         * combine.c (simplify_set): Try harder to find the best CC mode when
4459         simplifying a nested COMPARE on the RHS.
4460
4461 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4462
4463         * config/alpha/gnu.h: Remove.
4464         * config/arc: Remove directory.
4465         * config/arm/netbsd.h: Remove.
4466         * config/arm/t-pe: Remove.
4467         * config/crx: Remove directory.
4468         * config/i386/netbsd.h: Remove.
4469         * config/m68hc11: Remove directory.
4470         * config/m68k/uclinux-oldabi.h: Remove.
4471         * config/mcore/mcore-pe.h: Remove.
4472         * config/mcore/t-mcore-pe: Remove.
4473         * config/netbsd-aout.h: Remove.
4474         * config/rs6000/gnu.h: Remove.
4475         * config/sh/sh-symbian.h: Remove.
4476         * config/sh/symbian-base.c: Remove.
4477         * config/sh/symbian-c.c: Remove.
4478         * config/sh/symbian-cxx.c: Remove.
4479         * config/sh/symbian-post.h: Remove.
4480         * config/sh/symbian-pre.h: Remove.
4481         * config/sh/t-symbian: Remove.
4482         * config/svr3.h: Remove.
4483         * config/vax/netbsd.h: Remove.
4484         * config.build: Don't handle i[34567]86-*-pe.
4485         * config.gcc: Remove handling of deprecations for most deprecated
4486         targets.
4487         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
4488         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
4489         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
4490         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
4491         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
4492         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
4493         Remove cases.
4494         * config.host: Don't handle i[34567]86-*-pe.
4495         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
4496         (ASM_SPEC32): Don't handle -mcall-gnu.
4497         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
4498         -mcall-gnu.
4499         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
4500         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
4501         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
4502         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
4503         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
4504         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
4505         conditional on SYMBIAN.
4506         * configure.ac: Don't handle powerpc*-*-gnu*.
4507         * configure: Regenerate.
4508         * doc/extend.texi (interrupt attribute): Don't mention CRX.
4509         * doc/install-old.texi (m6811, m6812): Don't mention.
4510         * doc/install.texi (arc-*-elf*): Don't document multilib option.
4511         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
4512         (m68k-uclinuxoldabi): Don't mention.
4513         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
4514         Remove.
4515         (-mcall-gnu): Remove.
4516         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
4517         families): Remove constraint documentation.
4518
4519 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
4520
4521         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
4522         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
4523         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
4524
4525 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
4526
4527         * config/avr/avr-protos.h (expand_epilogue): Change prototype
4528         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
4529         * config/avr/avr.c (init_cumulative_args)
4530         (avr_function_arg_advance): Use it.
4531         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
4532         sibcall epilogues.
4533         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
4534         (avr_function_ok_for_sibcall): ...this new function.
4535         (avr_lookup_function_attribute1): New static Function.
4536         (avr_naked_function_p, interrupt_function_p)
4537         (signal_function_p, avr_OS_task_function_p)
4538         (avr_OS_main_function_p): Use it.
4539         * config/avr/avr.md ("sibcall", "sibcall_value")
4540         ("sibcall_epilogue"): New expander.
4541         ("*call_insn", "*call_value_insn"): New insn.
4542         ("call_insn", "call_value_insn"): Remove
4543         ("call", "call_value", "epilogue"): Change expander to handle
4544         sibling calls.
4545
4546 2011-03-21  Nick Clifton  <nickc@redhat.com>
4547
4548         * doc/invoke.texi (Overall Options): Move closing brace to end of
4549         options list.
4550         (Optimization Options): Add missing @gol.
4551         (Directory Options): Likewise.
4552         (i386 and x86-64 Options): Likewise.
4553         (RS6000 and PowerPC Options): Likewise.
4554         (i386 and x86-64 Windows Options): Likewise.
4555         (V850 Options): Add text missing from descriptions.
4556
4557 2011-03-22  Richard Henderson  <rth@redhat.com>
4558
4559         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
4560         (avr_incoming_return_addr_rtx): New.
4561         (emit_push_byte): New.
4562         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
4563         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
4564         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
4565         (emit_pop_byte): New.
4566         (expand_epilogue): Use it.  Pop frame pointer by bytes.
4567         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
4568         (INCOMING_RETURN_ADDR_RTX): New.
4569         (INCOMING_FRAME_SP_OFFSET): New.
4570         (ARG_POINTER_CFA_OFFSET): New.
4571         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
4572         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
4573         (pophi): Remove.
4574
4575         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
4576
4577 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4578
4579         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4580         (FUNCTION_ARG_ADVANCE): Likewise.
4581         * tm.texi.in: Change references to them to hook references.
4582         * tm.texi: Regenerate.
4583         * targhooks.c (default_function_arg): Eliminate check for target
4584         macro.
4585         (default_function_incoming_arg): Likewise.
4586         (default_function_arg_advance): Likewise.
4587         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4588         (function_arg_advance): Likewise.
4589         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4590
4591 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4592
4593         * tree.c (build_call_1): New function.
4594         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
4595
4596 2011-03-22  Richard Guenther  <rguenther@suse.de>
4597
4598         PR tree-optimization/48228
4599         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
4600         for single-arg PHIs.
4601
4602 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
4603
4604         PR rtl-optimization/48143
4605         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
4606         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
4607         sse2_cvtps2pd): Likewise.
4608
4609 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4610
4611         * recog.c (canonicalize_change_group): Use validate_unshare_change.
4612
4613 2011-03-22  Richard Guenther  <rguenther@suse.de>
4614
4615         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
4616         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
4617         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
4618         and REALIGN_LOAD_EXPR.
4619         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
4620         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
4621         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
4622         DOT_PROD_EXPR case ...
4623         (expand_expr_real_2): ... here.
4624         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
4625         and REALIGN_LOAD_EXPR.
4626         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
4627         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
4628         (vect_create_epilog_for_reduction): Likewise.
4629         (vectorizable_reduction): Likewise.
4630         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
4631         * tree-vect-stmts.c (vectorizable_load): Likewise.
4632
4633 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
4636
4637 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4638
4639         * config/s390/s390.c (s390_delegitimize_address): Fix offset
4640         handling for PLTOFF/GOTOFF.
4641
4642 2011-03-22  Nick Clifton  <nickc@redhat.com>
4643
4644         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
4645         trailing backslash from the end of the macro definition.
4646
4647 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4648
4649         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
4650         and PLT unspecs.
4651
4652 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
4653
4654         * expr.h (prepare_operand): Move to...
4655         * optabs.h (prepare_operand): ...here and change the insn code
4656         parameter from "int" to "enum insn_code".
4657         (insn_operand_matches): Declare.
4658         * expr.c (init_expr_target): Use insn_operand_matches.
4659         (compress_float_constant): Likewise.
4660         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
4661         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
4662         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
4663         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
4664         Likewise.
4665         (gen_cond_trap): Likewise.
4666         (prepare_operand): Likewise.  Change icode to an insn_code.
4667         (insn_operand_matches): New function.
4668         * reload.c (find_reloads_address_1): Use insn_operand_matches.
4669         * reload1.c (gen_reload): Likewise.
4670         * targhooks.c (default_secondary_reload): Likewise.
4671
4672 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4673
4674         * config/alpha/alpha.md (unspec): New define_c_enum.
4675         (unspecv): Ditto.
4676
4677 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4678
4679         PR debug/48214
4680         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
4681         between a call and its CALL_ARG_LOCATION note.
4682
4683 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
4684
4685         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
4686
4687 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4688
4689         PR c/42544
4690         PR c/48197
4691         * c-common.c (shorten_compare): If primopN is first sign-extended
4692         to opN and then zero-extended to result type, set primopN to opN.
4693
4694 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
4695
4696         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
4697         for barrier handlers.
4698
4699 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4700
4701         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
4702         UNSPEC constants to be in the unspec enumeration, and redefine
4703         all UNSPECV constants to be in the unspecv enumeration, so that
4704         dumps print which unspec/unspec_volatile this is.
4705         * config/rs6000/vector.md (UNSPEC_*): Ditto.
4706         * config/rs6000/paired.md (UNSPEC_*): Ditto.
4707         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
4708         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
4709         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
4710
4711         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
4712         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
4713         UNSPECV_LWSYNC, since these are used as unspec_volatile.
4714         * config/rs6000/sync.md (isync, lwsync): Ditto.
4715
4716 2011-03-21  Richard Guenther  <rguenther@suse.de>
4717
4718         * params.def (lto-min-partition): Fix typo.
4719
4720 2011-03-21  Richard Guenther  <rguenther@suse.de>
4721
4722         PR c/47939
4723         * c-decl.c (grokdeclarator): Drop to the main variant only
4724         for array types.  Drop flag_gen_aux_info check.
4725
4726 2011-03-21  Richard Guenther  <rguenther@suse.de>
4727
4728         PR translation/47911
4729         * params.def (lto-partitions): Fix typo.
4730         (lto-min-partition): Fix wording.
4731
4732 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
4733
4734         * config/rs6000/t-freebsd: Remove duplication from file.
4735
4736 2011-03-21  Richard Guenther  <rguenther@suse.de>
4737
4738         PR middle-end/47661
4739         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
4740
4741 2011-03-21  Richard Guenther  <rguenther@suse.de>
4742
4743         PR lto/48210
4744         * params.def (lto-partitions): Require at least 1 partition.
4745
4746 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4747
4748         * gthr-solaris.h: Remove.
4749         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
4750         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
4751         (LIB_SPEC): Likewise.
4752         * config/sol2.opt (threads): Remove.
4753         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
4754         (sparc*-*-solaris2*): Likewise.
4755         * configure.ac (enable_threads): Enable solaris support.
4756         * configure: Regenerate.
4757         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
4758         * doc/install.texi (Configuration, --enable-threads=lib): Remove
4759         solaris.
4760
4761 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4762
4763         * config.gcc: Obsolete *-*-solaris2.8*.
4764         * doc/install.texi (Specific, *-*-solaris2*): Document it.
4765
4766 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4767
4768         PR bootstrap/48135
4769         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
4770         reference.  Solaris 8 perl works.
4771
4772 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4773
4774         PR bootstrap/48135
4775         * doc/install.texi (Prerequisites): Move jar etc. up.
4776         Explain support library version requirements.
4777
4778 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4779
4780         PR bootstrap/48135
4781         * doc/install.texi (Prerequisites): Move Perl to build
4782         requirements.  Always necessary on Solaris 2 with Sun ld.
4783
4784 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4785
4786         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
4787         binutils 2.21.
4788         (Specific, i?86-*-solaris2.[89]): Likewise.
4789         (Specific, i?86-*-solaris2.10): Likewise.
4790         (Specific, mips-sgi-irix6): Likewise.
4791         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
4792         Update for binutils 2.21.
4793
4794 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4795
4796         * configure.ac (gcc_cv_lto_plugin): Fix typo.
4797         Allow -fuse-linker-plugin for non-default plugin linker.
4798         * configure: Regenerate.
4799
4800 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4801
4802         PR bootstrap/48167
4803         * gengtype.c (files_rules): Added rule for cp/parser.h.
4804
4805 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4806
4807         PR target/48213
4808         * config/s390/s390.c (s390_delegitimize_address): Don't call
4809         lowpart_subreg if orig_x has BLKmode.
4810
4811 2011-03-21  Kai Tietz  <ktietz@redhat.com>
4812
4813         PR target/12171
4814         * doc/plugins.texi: Adjust documentation for plugin register_callback.
4815         * tree.h (attribute_spec): Add new member affects_type_identity.
4816         * attribs.c (empty_attribute_table): Adjust attribute_spec
4817         initializers.
4818         * config/alpha/alpha.c: Likewise.
4819         * config/arc/arc.c: Likewise.
4820         * config/arm/arm.c: Likewise.
4821         * config/avr/avr.c: Likewise.
4822         * config/bfin/bfin.c: Likewise.
4823         * config/crx/crx.c: Likewise.
4824         * config/darwin.h: Likewise.
4825         * config/h8300/h8300.c: Likewise.
4826         * config/i386/cygming.h: Likewise.
4827         * config/i386/i386.c: Likewise.
4828         * config/ia64/ia64.c: Likewise.
4829         * config/m32c/m32c.c: Likewise.
4830         * config/m32r/m32r.c: Likewise.
4831         * config/m68hc11/m68hc11.c: Likewise.
4832         * config/m68k/m68k.c: Likewise.
4833         * config/mcore/mcore.c: Likewise.
4834         * config/mep/mep.c: Likewise.
4835         * config/microblaze/microblaze.c: Likewise.
4836         * config/mips/mips.c: Likewise.
4837         * config/rs6000/rs6000.c: Likewise.
4838         * config/rx/rx.c: Likewise.
4839         * config/sh/sh.c: Likewise.
4840         * config/sol2.h: Likewise.
4841         * config/sparc/sparc.c: Likewise.
4842         * config/spu/spu.c: Likewise.
4843         * config/stormy16/stormy16.c: Likewise.
4844         * config/v850/v850.c: Likewise.
4845
4846 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
4847
4848         * simplify-rtx.c (simplify_binary_operation_1): Handle
4849         (xor (and A B) C) case when B and C are both constants.
4850
4851 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
4852
4853         * tree-dfa.c (add_referenced_var): Fix typo in comment.
4854
4855 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4856
4857         PR bootstrap/48168
4858         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
4859
4860 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
4861
4862         PR rtl-optimization/48156
4863         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
4864         assume df and df_lr are not NULL.
4865
4866 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4867
4868         PR debug/48023
4869         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
4870         between a call and its CALL_ARG_LOCATION note.
4871
4872 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4873
4874         PR debug/48178
4875         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4876         between a call and its corresponding CALL_ARG_LOCATION note.
4877
4878 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
4879
4880         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
4881         instead of loop. Use HARD_REGISTER_NUM_P predicate.
4882         * haifa-sched.c (setup_ref_regs): Ditto.
4883         * caller-save.c (add_used_regs_1): Ditto.
4884         * dse.c (look_for_hardregs): Ditto.
4885         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
4886         * sched-rgn.c (check_live_1): Ditto.
4887
4888 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4889
4890         * c-decl.c (diagnose_mismatched_decls): Give an error for
4891         redefining a typedef with variably modified type.
4892
4893 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4894
4895         * c-decl.c (grokfield): Don't allow typedefs for structures or
4896         unions with no tag by default.
4897         * doc/extend.texi (Unnamed Fields): Update.
4898
4899 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
4900
4901         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4902         Rewrite using indirect functions.
4903         (lwp_slwpcb): Ditto.
4904         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
4905         (avx_vinsertf128<mode>): Ditto.
4906
4907 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4908
4909         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
4910         unspecs.
4911
4912 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4913
4914         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
4915         splitting between a call and its corresponding CALL_ARG_LOCATION note.
4916
4917 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4918
4919         PR rtl-optimization/48170
4920         * gcse.c (hoist_code): Remove bogus asserts.
4921
4922 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
4923
4924         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
4925         computation for prologue/epilogue.
4926
4927 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4928
4929         * Makefile.in (check-consistency): Remove.
4930
4931 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
4932
4933         PR debug/48176
4934         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
4935         arange_table_in_use is 0, but either text_section_used or
4936         cold_text_section_used is true.  Don't call it if
4937         !info_section_emitted.
4938
4939 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
4940
4941         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
4942         FUNCTION_VALUE_REGNO_P): Remove.
4943         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
4944         Remove.
4945         * config/avr/avr.c (avr_ret_register): Make static inline.
4946         (avr_function_value_regno_p): New function.
4947         (avr_libcall_value): Make static. Add 'func' argument.
4948         (avr_function_value): Make static. Rename 'func' argument to
4949         'fn_decl_or_type', forward it to avr_libcall_value. Call
4950         avr_ret_register function instead of RET_REGISTER macro.
4951         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
4952
4953 2011-03-18  Jason Merrill  <jason@redhat.com>
4954
4955         PR c++/23372
4956         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
4957
4958 2011-03-18  Richard Guenther  <rguenther@suse.de>
4959
4960         * doc/install.texi (--enable-gold): Remove.
4961         (--with-plugin-ld): Document.
4962         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
4963
4964 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
4965
4966         PR middle-end/47790
4967         * expr.c (optimize_bitfield_assignment_op): Revamp to work
4968         again after expansion changes.
4969
4970 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
4971
4972         * combine.c (try_combine): Do simplification only call of
4973         subst() on i2 even when i1 is present. Update comments.
4974
4975 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4976
4977         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
4978         and UNSPEC_PCREL_SYMOFF.
4979
4980 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4981
4982         * config/s390/s390.md: Use define_c_enum for the unspec constant
4983         definitions.
4984
4985 2011-03-18  Richard Henderson  <rth@redhat.com>
4986             Jakub Jelinek  <jakub@redhat.com>
4987
4988         PR bootstrap/48161
4989         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
4990         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
4991
4992 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4993
4994         PR middle-end/47725
4995         * combine.c (cant_combine_insn_p): Don't check zero/sign
4996         extended hard registers.
4997
4998 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4999
5000         PR middle-end/47725
5001         * combine.c (cant_combine_insn_p): Check zero/sign extended
5002         hard registers.
5003
5004 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
5005
5006         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5007         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
5008         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
5009         Change return type to bool.
5010         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5011
5012 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5013
5014         PR debug/48163
5015         * var-tracking.c (prepare_call_arguments): If CALL target
5016         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
5017         pc instead of looking it up using cselib_lookup and use
5018         Pmode for it if x has VOIDmode.
5019         * dwarf2out.c (gen_subprogram_die): If also both first and
5020         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
5021
5022         PR debug/48163
5023         * function.c (assign_parms): For data.passed_pointer parms
5024         use MEM of data.entry_parm instead of data.entry_parm itself
5025         as DECL_INCOMING_RTL.
5026         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
5027         also when passed and declared mode is the same, DECL_RTL
5028         is a MEM with pseudo as address and DECL_INCOMING_RTL is
5029         a MEM too.
5030
5031 2011-03-16  Jeff Law  <law@redhat.com>
5032
5033         PR rtl-optimization/37273
5034         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5035         handle them like argument loads from stack slots.  Do not double
5036         count memory for memory constants and argument loads from stack slots.
5037
5038 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5039
5040         PR debug/48160
5041         * var-tracking.c (prepare_call_arguments): Check SUBREG.
5042
5043 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5044
5045         PR target/48171
5046         * config/i386/i386.opt: Add Save to -mavx and -mfma.
5047
5048 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5049
5050         PR bootstrap/48153
5051         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
5052         if dwarf_strict.
5053         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
5054         Clear call_arg_locations and call_arg_loc_last always.
5055
5056         PR middle-end/48152
5057         * var-tracking.c (prepare_call_arguments): If argument needs to be
5058         passed by reference, adjust argtype and mode.
5059
5060 2011-03-17  Richard Guenther  <rguenther@suse.de>
5061
5062         PR middle-end/48134
5063         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
5064         a value make sure to fold the statement.
5065
5066 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
5067
5068         PR target/43872
5069         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
5070         return condition with !cfun->calls_alloca.
5071
5072 2011-03-17  Richard Guenther  <rguenther@suse.de>
5073
5074         PR bootstrap/48148
5075         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5076         origin for decls in other ltrans units.
5077         (input_varpool_node): Likewise.
5078
5079 2011-03-17  Richard Guenther  <rguenther@suse.de>
5080
5081         PR middle-end/48165
5082         * tree-object-size.c (compute_object_offset): Properly return
5083         the offset operand of MEM_REFs as sizetype.
5084
5085 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5086
5087         PR rtl-optimization/48141
5088         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
5089         * dse.c: Include params.h.
5090         (active_local_stores_len): New variable.
5091         (add_wild_read, dse_step1): Clear it when setting active_local_stores
5092         to NULL.
5093         (record_store, check_mem_read_rtx): Decrease it when removing
5094         from the chain.
5095         (scan_insn): Likewise.  Increase it when adding to chain, if it
5096         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
5097         set active_local_stores to NULL before the addition.
5098         * Makefile.in (dse.o): Depend on $(PARAMS_H).
5099
5100         PR rtl-optimization/48141
5101         * dse.c (record_store): If no positions are needed in an insn
5102         that cannot be deleted, at least unchain it from active_local_stores.
5103
5104 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
5105
5106         PR debug/47510
5107         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
5108         (lookup_type_die_strip_naming_typedef): ... here.
5109         (get_context_die): Use it.
5110         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
5111         the anonymous struct named by the naming typedef.
5112
5113 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5114
5115         PR target/48154
5116         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
5117         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5118
5119 2011-03-16  Jeff Law  <law@redhat.com>
5120
5121         * tree-vrp.c (identify_jump_threads): Slightly simplify type
5122         check for operands of conditional.  Allow type to be a pointer.
5123
5124 2011-03-16  Richard Guenther  <rguenther@suse.de>
5125
5126         PR tree-optimization/48149
5127         * fold-const.c (fold_binary_loc): Fold
5128         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
5129
5130 2011-03-16  Richard Guenther  <rguenther@suse.de>
5131
5132         PR tree-optimization/26134
5133         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
5134         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
5135         (non_rewritable_mem_ref_base): Handle complex type component
5136         accesses, constrain offsets for vector and complex extracts
5137         more properly.
5138
5139 2011-03-16  Richard Guenther  <rguenther@suse.de>
5140
5141         PR tree-optimization/48146
5142         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
5143         operands avoiding the need for renaming.
5144
5145 2011-03-16  Richard Guenther  <rguenther@suse.de>
5146
5147         * gimple-fold.c (maybe_fold_reference): Open-code relevant
5148         constant folding.  Move MEM_REF canonicalization first.
5149         Rely on fold_const_aggregate_ref for initializer folding.
5150         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
5151
5152 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5153
5154         PR middle-end/48136
5155         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5156         arg0/arg1 or their arguments are always fold converted to matching
5157         types.
5158
5159         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
5160         to nargs.
5161
5162 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5163
5164         PR lto/46944
5165         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
5166         Handle in-tree gold.
5167         (ld_vers): Extract binutils version for gold.
5168         (gcc_cv_ld_hidden): Handle gold here.
5169         (gcc_cv_lto_plugin): Determine level of linker plugin support.
5170         * configure: Regenerate.
5171         * config.in: Regenerate.
5172         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
5173         -fuse-linker-plugin otherwise.
5174         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
5175         (LINK_COMMAND_SPEC): Use it.
5176         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
5177
5178 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5179
5180         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
5181         * calls.c: Remove debug.h include.
5182         (emit_call_1): Don't call virtual_call_token debug hook.
5183         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
5184         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5185         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5186         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5187         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5188         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5189         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5190         dwarf2out_virtual_call): Remove.
5191         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5192         copy_call_info and virtual_call hooks.
5193         (dwarf2out_init): Don't initialize vcall_insn_table,
5194         debug_dcall_section and debug_vcall_section.
5195         (prune_unused_types): Don't mark nodes from dcall_table.
5196         (dwarf2out_finish): Don't output dcall or vcall tables.
5197         * final.c (final_scan_insn): Don't call direct_call or
5198         virtual_call debug hooks.
5199         * debug.h (struct gcc_debug_hooks): Remove direct_call,
5200         virtual_call_token, copy_call_info and virtual_call hooks.
5201         (debug_nothing_uid): Remove prototype.
5202         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5203         copy_call_info and virtual_call hooks.
5204         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5205         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5206         * debug.c (do_nothing_debug_hooks): Likewise.
5207         (debug_nothing_uid): Remove.
5208         * doc/invoke.texi (-fenable-icf-debug): Remove.
5209         * common.opt (-fenable-icf-debug): Likewise.
5210
5211         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5212         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5213         call's MEM.  Handle functions returning aggregate through a hidden
5214         first pointer.  For virtual calls add clobbered pc to call arguments
5215         chain.
5216         * dwarf2out.c (gen_subprogram_die): Emit
5217         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5218         can't be emitted.
5219
5220         PR debug/45882
5221         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5222         * rtl.h (ENTRY_VALUE_EXP): Define.
5223         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5224         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5225         * print-rtl.c (print_rtx): Likewise.
5226         * gengtype.c (adjust_field_rtx_def): Likewise.
5227         * var-tracking.c (vt_add_function_parameter): Adjust
5228         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5229         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5230         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5231         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5232         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5233
5234         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5235         Call var_location debug hook even on CALL_INSNs.
5236         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5237         * rtl.def (ENTRY_VALUE): New.
5238         * dwarf2out.c: Include cfglayout.h.
5239         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5240         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5241         (struct call_arg_loc_node): New type.
5242         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5243         tail_call_site_count): New variables.
5244         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5245         DW_TAG_GNU_call_site_parameter.
5246         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5247         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5248         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5249         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5250         and DW_AT_GNU_all_source_call_sites.
5251         (mem_loc_descriptor): Handle ENTRY_VALUE.
5252         (add_src_coords_attributes): Don't add enything if
5253         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5254         (dwarf2out_abstract_function): Save and clear call_arg_location,
5255         call_site_count and tail_call_site_count around dwarf2out_decl call.
5256         (gen_call_site_die): New function.
5257         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
5258         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
5259         (dwarf2out_function_decl): Clear call_arg_locations,
5260         call_arg_loc_last, set call_site_count and tail_call_site_count
5261         to -1 and free block_map.
5262         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
5263         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
5264         followed by any real instructions.
5265         (dwarf2out_begin_function): Set call_site_count and
5266         tail_call_site_count to 0.
5267         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
5268         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
5269         attempt to force a DIE for it and worst case remove the attribute.
5270         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
5271         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
5272         the decl itself.
5273         * var-tracking.c: Include tm_p.h.
5274         (vt_stack_adjustments): For calls call note_register_arguments.
5275         (argument_reg_set): New variable.
5276         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
5277         ensure the VALUE is resolved.
5278         (call_arguments): New variable.
5279         (prepare_call_arguments): New function.
5280         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
5281         (struct expand_loc_callback_data): Add ignore_cur_loc field.
5282         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
5283         always use the best expression.
5284         (vt_expand_loc): Add ignore_cur_loc argument.
5285         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
5286         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
5287         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
5288         note for all calls.
5289         (vt_add_function_parameter): Use cselib_lookup_from_insn.
5290         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
5291         argument.  Don't call cselib_preserve_only_values and
5292         cselib_reset_table.
5293         (note_register_arguments): New function.
5294         (vt_initialize): Compute argument_reg_set.  Call
5295         vt_add_function_parameters before processing basic blocks instead of
5296         afterwards.  For calls call prepare_call_arguments before calling
5297         cselib_process_insn.
5298         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
5299         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
5300         (var-tracking.o): Depend on $(TM_P_H).
5301         * cfglayout.h (insn_scope): New prototype.
5302         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
5303         * cfglayout.c (insn_scope): No longer static.
5304         * insn-notes.def (CALL_ARG_LOCATION): New.
5305         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
5306         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
5307         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
5308         nothing for DECL_EXTERNAL BLOCK_VARS.
5309
5310 2011-03-16  Alan Modra  <amodra@gmail.com>
5311
5312         PR target/45844
5313         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5314         create invalid offset address for vsx splat insn.
5315         * config/rs6000/predicates.md (splat_input_operand): New.
5316         * config/rs6000/vsx.md (vsx_splat_*): Use it.
5317
5318 2011-03-15  Xinliang David Li  <davidxl@google.com>
5319
5320         PR c/47837
5321         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
5322         (normalize_preds): New function.
5323         (is_use_properly_guarded): Normalize def predicates.
5324
5325 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5326
5327         PR target/46788
5328         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
5329         in the output template.
5330
5331 2011-03-15  Richard Guenther  <rguenther@suse.de>
5332
5333         PR middle-end/47650
5334         * tree-pretty-print.c (dump_function_declaration): Properly
5335         dump unprototyped and varargs function types.
5336
5337 2011-03-15  Richard Guenther  <rguenther@suse.de>
5338
5339         PR tree-optimization/13954
5340         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
5341         and friends.
5342
5343 2011-03-15  Richard Guenther  <rguenther@suse.de>
5344
5345         PR tree-optimization/48037
5346         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
5347         selects into BIT_FIELD_REFs.
5348         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
5349         vector select.
5350
5351 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
5352
5353         PR tree-optimization/48129
5354         * builtins.c (fold_builtin_snprintf): Convert to type of
5355         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
5356         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
5357
5358 2011-03-15  Richard Guenther  <rguenther@suse.de>
5359
5360         PR tree-optimization/41490
5361         * tree-ssa-dce.c (propagate_necessity): Handle returns without
5362         value but with VUSE.
5363         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
5364         return statements.
5365         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
5366         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
5367         * tree-tailcall.c (find_tail_calls): Ignore returns.
5368
5369 2011-03-15  Richard Guenther  <rguenther@suse.de>
5370
5371         PR middle-end/48031
5372         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
5373         or variable-indexed array accesses when in gimple form.
5374
5375 2011-03-15  Richard Guenther  <rguenther@suse.de>
5376
5377         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
5378
5379 2011-03-15  Alan Modra  <amodra@gmail.com>
5380
5381         PR target/48032
5382         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
5383         presume symbol_refs without a symbol_ref_decl are suitably
5384         aligned, nor other trees we may see here.  Handle anchor symbols.
5385         (legitimate_constant_pool_address_p): Comment.  Add mode param.
5386         Check cmodel=medium addresses.  Adjust all calls.
5387         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
5388         creating cmodel=medium optimized access to locals.
5389         * config/rs6000/constraints.md (R): Pass QImode to
5390         legitimate_constant_pool_address_p.
5391         * config/rs6000/predicates.md (input_operand): Pass mode to
5392         legitimate_constant_pool_address_p.
5393         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
5394         Update prototype.
5395
5396 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5397
5398         PR target/48053
5399         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
5400         64-bit constants being loaded into registers other than GPRs such
5401         as loading 0 into a VSX register.
5402
5403 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5404
5405         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
5406
5407 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5408
5409         PR middle-end/47917
5410         * builtins.c (fold_builtin_snprintf): New function.
5411         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
5412         (fold_builtin_4): Likewise.
5413
5414         PR middle-end/38878
5415         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
5416         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
5417         and C - X == X also strip nops from +/-/p+ operand.
5418         When optimizing -X == C, fold C to arg0's type.
5419
5420         PR debug/47946
5421         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
5422         emit it as add_AT_int instead of add_AT_unsigned.
5423
5424 2011-03-14  Tom Tromey  <tromey@redhat.com>
5425
5426         * unwind-dw2.c: Include sys/sdt.h if it exists.
5427         (_Unwind_DebugHook): Use STAP_PROBE2.
5428         * config.in, configure: Rebuild.
5429         * configure.ac: Check for sys/sdt.h.
5430
5431 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
5432
5433         * config/i386/i386.md (ROUND_FLOOR): New constant.
5434         (ROUND_CEIL): Ditto.
5435         (ROUND_TRUNC): Ditto.
5436         (ROUND_MXCSR): Ditto.
5437         (ROUND_NO_EXC): Ditto.
5438         (rint<mode>2): Use new defines instead of numerical constants.
5439         (floor<mode>2): Ditto.
5440         (ceil<mode>2): Ditto.
5441         (btrunc<mode>2): Ditto.
5442         * config/i386/i386-builtin-types.def: Define ROUND function type
5443         aliases.
5444         * config/i386/i386.c (enum ix86_builtins): Add
5445         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
5446         (struct builtin_description): Add
5447         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
5448         (ix86_expand_sse_round): New static function.
5449         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
5450         function types.
5451         (ix86_builtin_vectorized_function): Handle
5452         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5453
5454 2011-03-14  Tom Tromey  <tromey@redhat.com>
5455
5456         * c-parser.c (c_parser_asm_string_literal): Clear
5457         warn_overlength_strings.
5458
5459 2011-03-14  Tom Tromey  <tromey@redhat.com>
5460
5461         * c-parser.c (disable_extension_diagnostics): Save
5462         warn_overlength_strings.
5463         (restore_extension_diagnostics): Restore warn_overlength_strings.
5464
5465 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5466
5467         * BASE-VER: Change to 4.7.0.
5468
5469 2011-03-14  Richard Guenther  <rguenther@suse.de>
5470
5471         PR middle-end/48098
5472         * tree.c (build_vector_from_val): Adjust assert to requirements
5473         and reality.
5474
5475 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5476
5477         PR bootstrap/48102
5478         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
5479
5480 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
5481
5482         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
5483         terms of target_flags_explicit. Adjust copyright year.
5484
5485         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
5486         * config/rs6000/t-freebsd: New file. Add override for
5487         LIB2FUNCS_EXTRA.
5488
5489 2011-03-13  Chris Demetriou  <cgd@google.com>
5490
5491         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
5492         (-fno-diagnostics-show-option): this, to reflect current default.
5493         (-Werror=): Update text about -fno-diagnostics-show-option.
5494
5495 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
5496
5497         PR target/48053
5498         * config/rs6000/predicates.md (easy_vector_constant_add_self,
5499         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
5500         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
5501         mode is not V2DImode or V2DFmode.
5502         (vspltis_constant): Do not handle V2DImode and V2DFmode.
5503         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
5504         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
5505         registers to 0.
5506         (movdi_internal64): Likewise.
5507
5508 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
5509
5510         PR tree-optimization/47127
5511         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
5512         parameter.
5513         (set_cloog_options): Same.
5514         (scop_to_clast): Same.
5515         (print_clast_stmt): Do not call cloog_state_malloc and
5516         cloog_state_free.
5517         (print_generated_program): Same.
5518         (gloog): Same.
5519         * graphite-clast-to-gimple.h (cloog_state): Declared.
5520         (scop_to_clast): Adjust declaration.
5521         * graphite.c (cloog_state): Defined here.
5522         (graphite_initialize): Call cloog_state_malloc.
5523         (graphite_finalize): Call cloog_state_free.
5524
5525 2011-03-11  Jason Merrill  <jason@redhat.com>
5526
5527         * attribs.c (lookup_attribute_spec): Take const_tree.
5528         * tree.h: Adjust.
5529
5530 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
5531
5532         * config/sparc/sparc.c (sparc_option_override): Use
5533         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
5534
5535 2011-03-11  Richard Guenther  <rguenther@suse.de>
5536
5537         PR tree-optimization/48067
5538         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
5539         multiplication result will be only used once on the target
5540         stmt.
5541
5542 2011-03-11  Richard Guenther  <rguenther@suse.de>
5543
5544         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
5545
5546 2011-03-11  Richard Guenther  <rguenther@suse.de>
5547
5548         PR lto/48073
5549         * tree.c (find_decls_types_r): Do not walk types only reachable
5550         from IDENTIFIER_NODEs.
5551
5552 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5553
5554         PR middle-end/48044
5555         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
5556         all vnode->force_output nodes as needed.
5557
5558 2011-03-11  Jason Merrill  <jason@redhat.com>
5559
5560         PR c++/48069
5561         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
5562         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
5563
5564 2011-03-11  Martin Jambor  <mjambor@suse.cz>
5565
5566         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
5567         cgraph_node.
5568
5569 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5570
5571         PR tree-optimization/48063
5572         * ipa-inline.c (cgraph_decide_inlining): Don't try to
5573         inline functions called once if !tree_can_inline_p (node->callers).
5574
5575 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
5576
5577         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
5578         extra_objs.
5579         * config/score/score3.c: Delete.
5580         * config/score/score3.h: Delete.
5581         * config/score/mul-div.S: Delete.
5582         * config/score/sfp-machine.h: Add new file.
5583         * config/score/constraints.md: Add new file.
5584         * config/score/t-score-softfp: Add new file.
5585         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
5586         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
5587         (score7_extra_constraint): Delete.
5588         (score7_option_override): Remove unused code.
5589         * config/score/score.c: Remove score3 and score5 define and code.
5590         * config/score/score.h: Remove score3 and score5 define and code.
5591         * config/score/score.md: Remove score3 template and unusual insn.
5592         * config/score/score.opt: Remove score3 and score5 options.
5593
5594 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5595
5596         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
5597         when _HPUX_SOURCE is defined.
5598         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
5599
5600 2011-03-10  Jason Merrill  <jason@redhat.com>
5601
5602         PR c++/48029
5603         * stor-layout.c (layout_type): Don't set structural equality
5604         on arrays of incomplete type.
5605         * tree.c (type_hash_eq): Handle comparing them properly.
5606
5607 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
5608
5609         PR debug/48043
5610         * config/s390/s390.c (s390_delegitimize_address): Make sure the
5611         result mode matches original rtl mode.
5612
5613 2011-03-10  Nick Clifton  <nickc@redhat.com>
5614
5615         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
5616         (andsi3, andsi3_flags): Fix timings for three operand alternative.
5617
5618 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
5619
5620         PR rtl-optimization/47866
5621         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
5622         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
5623         if target wasn't scalar.
5624         * function.c (assign_stack_temp_for_type): Assert that neither
5625         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
5626         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
5627         macro.
5628         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
5629
5630 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5631
5632         * config/s390/s390-protos.h (s390_label_align): New prototype.
5633         * config/s390/s390.c (s390_label_align): New function.
5634         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
5635
5636 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5637
5638         PR target/47755
5639         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
5640         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
5641         (output_vec_const_move): Ditto.
5642
5643 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
5644
5645         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
5646         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
5647         * config/mips/mips.c (mips_preferred_reload_class): Make static.
5648         Change 'rclass' argument and result type to reg_class_t.
5649         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5650
5651 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
5652
5653         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5654         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
5655         (TARGET_MEMORY_MOVE_COST): Define.
5656         (avr_register_move_cost, avr_memory_move_cost): New Functions.
5657
5658 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
5659
5660         PR debug/47881
5661         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
5662         removed anything.
5663
5664         PR tree-optimization/48022
5665         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
5666         for EQ/NE_EXPR.
5667
5668 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
5669
5670         PR debug/47991
5671         * var-tracking.c (find_use_val): Return NULL for
5672         cui->sets && cui->store_p BLKmode MEMs.
5673
5674 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
5675
5676         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
5677         Remove.
5678         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
5679         xstormy16_print_operand_address): Remove.
5680         * config/stormy16/stormy16.c (xstormy16_print_operand,
5681         xstormy16_print_operand_address): Make static.
5682         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5683
5684 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
5685
5686         PR target/47862
5687         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
5688         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
5689         before definition.
5690
5691 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
5692
5693         PR bootstrap/48000
5694         * cfgloopmanip.c (fix_bb_placements): Return immediately
5695         if FROM is BASE_LOOP's header.
5696
5697 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
5698
5699         * gimplify.c (gimplify_function_tree): Fix building calls
5700         to __builtin_return_address.
5701
5702 2011-03-07  Alan Modra  <amodra@gmail.com>
5703
5704         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
5705         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
5706         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
5707         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
5708         return_mode args.
5709         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
5710         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
5711         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
5712         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
5713         * config/rs6000/rs6000.c
5714         (rs6000_elf_end_indicate_exec_stack): Rename to..
5715         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
5716         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
5717         (rs6000_file_start): ..here.
5718         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
5719         file scope variables.
5720         (call_ABI_of_interest): New function.
5721         (init_cumulative_args): Set above vars when function return value
5722         is a float, vector, or small struct.
5723         (rs6000_function_arg_advance_1): Likewise for function args.
5724         (rs6000_va_start): Set rs6000_passes_float if variable arg function
5725         references float args.
5726
5727 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
5728
5729         * doc/cfg.texi: Remove "See" before @ref.
5730         * doc/invoke.texi: Likewise.
5731
5732 2011-03-05  Jason Merrill  <jason@redhat.com>
5733
5734         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
5735
5736 2011-03-05  Anthony Green  <green@moxielogic.com>
5737
5738         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
5739
5740 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
5741
5742         PR rtl-optimization/47899
5743         * cfgloopmanip.c (fix_bb_placements): Fix first argument
5744         to flow_loop_nested_p when moving the loop upward.
5745
5746 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
5747
5748         PR target/47719
5749         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
5750
5751 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
5752
5753         PR tree-optimization/47967
5754         * ipa-cp.c (build_const_val): Return NULL instead of creating
5755         VIEW_CONVERT_EXPR for mismatching sizes.
5756         (ipcp_create_replace_map): Return NULL if build_const_val failed.
5757         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
5758         give up on versioning.
5759
5760 2011-03-05  Alan Modra  <amodra@gmail.com>
5761
5762         PR target/47986
5763         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5764         full cmodel medium/large lo_sum + high addresses.
5765
5766 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5767
5768         * config/s390/s390.c (s390_decompose_address): Reject non-literal
5769         pool references in UNSPEC_LTREL_OFFSET.
5770
5771 2011-03-04  Jan Hubicka  <jh@suse.cz>
5772
5773         PR lto/47497
5774         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
5775         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
5776         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
5777         Add node pointers.
5778         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
5779         cgraph_add_thunk): Add node pointers.
5780         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
5781         associated to right node.
5782         (input_node): Update use of cgraph_same_body_alias
5783         and cgraph_add_thunk.
5784
5785 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5786
5787         * config/i386/i386.opt (mprefer-avx128): New flag.
5788         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
5789         modes when the flag -mprefer-avx128 is on.
5790
5791 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
5792
5793         * dwarf2out.c (compare_loc_operands): Fix address handling.
5794
5795 2011-03-04  Alan Modra  <amodra@gmail.com>
5796
5797         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
5798
5799 2011-03-04  Richard Guenther  <rguenther@suse.de>
5800
5801         PR middle-end/47968
5802         * expmed.c (extract_bit_field_1): Prefer vector modes that
5803         vec_extract patterns can handle.
5804
5805 2011-03-04  Richard Guenther  <rguenther@suse.de>
5806
5807         PR middle-end/47975
5808         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
5809
5810 2011-03-04  Richard Henderson  <rth@redhat.com>
5811
5812         * explow.c (emit_stack_save): Remove 'after' parameter.
5813         (emit_stack_restore): Likewise.
5814         * expr.h: Update to match.
5815         * builtins.c, calls.c, stmt.c: Likewise.
5816         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
5817         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
5818         * function.c (expand_function_end): Insert the emit_stack_save
5819         sequence before parm_birth_insn instead of after.
5820
5821 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
5822
5823         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
5824         (ssse3_pmaddubsw128): Ditto.
5825         (ssse3_pmaddubsw): Ditto.
5826
5827 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
5828
5829         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
5830
5831 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
5832
5833         PR c/47963
5834         * gimplify.c (omp_add_variable): Only call omp_notice_variable
5835         on TYPE_SIZE_UNIT if it is a DECL.
5836
5837         PR debug/47283
5838         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
5839         first operand is not is_gimple_mem_ref_addr, try to fold it.
5840         If the operand still isn't is_gimple_mem_ref_addr, clear
5841         MEM_EXPR on op0.
5842
5843 2011-03-03  Richard Guenther  <rguenther@suse.de>
5844
5845         PR middle-end/47283
5846         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
5847         match comment.
5848         (refs_may_alias_p_1): For release branches return true if
5849         we are confused by our input.
5850
5851 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5852
5853         * config/s390/s390.c (s390_function_value): Rename to ...
5854         (s390_function_and_libcall_value): ... this.
5855         (s390_function_value): New function.
5856         (s390_libcall_value): New function.
5857         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
5858         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
5859         target macro definitions.
5860         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
5861
5862 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
5863
5864         * config/i386/freebsd64.h (CC1_SPEC): Define.
5865         * config/i386/linux64.h (CC1_SPEC): Define.
5866         * config/i386/x86-64.h (CC1_SPEC): Don't define.
5867
5868 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
5869
5870         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5871         Remove.
5872         * config/stormy16/stormy16.c: Include reload.h.
5873         (xstormy16_memory_move_cost): New function.
5874         (TARGET_MEMORY_MOVE_COST): Define.
5875
5876 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
5877
5878         PR rtl-optimization/47925
5879         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
5880         with side effects.  Remove the more-specific check for volatile asms.
5881
5882 2011-03-02  Alan Modra  <amodra@gmail.com>
5883
5884         PR target/47935
5885         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
5886         toc relative addresses for valid offsets.
5887
5888 2011-03-01  Richard Guenther  <rguenther@suse.de>
5889
5890         PR tree-optimization/47890
5891         * tree-vect-loop.c (get_initial_def_for_induction): Set
5892         related stmt properly.
5893
5894 2011-03-01  Richard Guenther  <rguenther@suse.de>
5895
5896         PR lto/47924
5897         * lto-streamer.c (lto_record_common_node): Also register
5898         the canonical type.
5899
5900 2011-03-01  Richard Guenther  <rguenther@suse.de>
5901
5902         PR lto/46911
5903         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5904         Do not stream DECL_ABSTRACT_ORIGIN.
5905         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5906         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5907         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5908         Do not stream DECL_ABSTRACT_ORIGIN.
5909         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5910         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5911
5912 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
5913
5914         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
5915         FUNCTION_VALUE_REGNO_P): Remove.
5916         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
5917         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
5918         Add 'outgoing' argument.
5919         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
5920         function.
5921         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5922         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5923
5924 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
5925
5926         PR debug/28047
5927         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
5928         (lookup_filename): Likewise.
5929         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
5930
5931 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
5932             Jakub Jelinek  <jakub@redhat.com>
5933
5934         PR middle-end/47893
5935         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
5936         (assign_stack_local_1): Change last argument type to int.
5937         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
5938         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
5939         don't record padding space into frame_space_list nor use those areas.
5940         (assign_stack_local): Adjust caller.
5941         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
5942         of assign_stack_local, pass 0 as last argument.
5943         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
5944         callers.
5945
5946 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
5947
5948         PR debug/47283
5949         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
5950         Use target address_mode and pointer_mode hooks instead of hardcoded
5951         Pmode and ptr_mode.  Handle some simple cases of extending if
5952         POINTERS_EXTEND_UNSIGNED < 0.
5953         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
5954         Call convert_debug_memory_address.
5955         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
5956         convert_debug_memory_address.
5957
5958         PR middle-end/46790
5959         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
5960         * configure: Regenerated.
5961         * config.in: Regenerated.
5962         * varasm.c (default_function_section): Return NULL
5963         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
5964
5965 2011-02-28  Martin Jambor  <mjambor@suse.cz>
5966
5967         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
5968         the description to match the printed values.
5969
5970 2011-02-28  Richard Guenther  <rguenther@suse.de>
5971
5972         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
5973         of the copied scope tree.
5974
5975 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5976
5977         * doc/extend.texi (Function Attributes): Avoid deeply (and
5978         wrongly) nested tables.
5979
5980 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
5981
5982         PR middle-end/47903
5983         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
5984         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
5985         r isn't op0 nor op1.
5986
5987 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5988
5989         * config/avr/avr.md: Remove magic comment for emacs.
5990
5991 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5992
5993         PR target/45261
5994         * config/avr/avr.c (avr_option_override): Use error on bad options.
5995         (avr_help): New function.
5996         (TARGET_HELP): Define.
5997
5998 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
5999
6000         PR target/42240
6001         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
6002         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
6003
6004 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
6005
6006         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
6007         (ARM Options): Ditto.
6008         (i386 and x86-64 Options): Ditto.
6009         (RX Options): Ditto.
6010         (SPARC Options): Ditto.
6011
6012 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
6013
6014         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
6015         FreeBSD 6 and later.  Generally use cpu generic.
6016
6017 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6018
6019         * doc/cpp.texi: Update copyright years.
6020
6021 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6022
6023         PR target/46898
6024         * config/lm32/lm32.md (ashrsi3): Added needed variable.
6025
6026 2011-02-25  Jon Beniston  <jon@beniston.com>
6027
6028         PR target/46898
6029         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
6030         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6031         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
6032         (lm32_block_move_inline): Add type cast to remove warning.
6033         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
6034         (gen_int_relational): Move declarations to start of function.
6035
6036 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6037
6038         PR tree-optimization/45470
6039         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6040         can throw internally only.
6041         * tree-vect-stmts.c (vectorizable_call): Likewise.
6042
6043 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
6044
6045         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
6046         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6047         * config/stormy16/stormy16-protos.h
6048         (xstormy16_preferred_reload_class): Remove.
6049         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
6050         static. Change 'rclass' argument and return type to reg_class_t.
6051         (TARGET_PREFERRED_RELOAD_CLASS,
6052         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6053
6054 2011-02-24  Richard Guenther  <rguenther@suse.de>
6055
6056         * lto-streamer-in.c (input_bb): Do not find referenced vars
6057         in debug statements.
6058
6059 2011-02-23  Jason Merrill  <jason@redhat.com>
6060
6061         * common.opt (fabi-version): Document v5 and v6.
6062
6063 2011-02-23  Richard Guenther  <rguenther@suse.de>
6064
6065         PR tree-optimization/47849
6066         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
6067
6068 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6069
6070         * opts-common.c (decode_cmdline_option): Print empty string
6071         argument as "" in decoded->orig_option_with_args_text.
6072         * gcc.c (execute): Print empty string argument as ""
6073         in the verbose output.
6074         (do_spec_1): Keep empty string argument.
6075
6076 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
6077
6078         * config.gcc: Declare score-* and crx-* obsolete.
6079
6080 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6081
6082         PR rtl-optimization/47763
6083         * web.c (web_main): Ignore naked clobber when replacing register.
6084
6085 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
6086
6087         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6088         Remove.
6089
6090 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6091
6092         PR doc/47848
6093         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
6094
6095 2011-02-22  Mike Stump  <mikestump@comcast.net>
6096
6097         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
6098         assembler.
6099         * configure: Regenerate.
6100
6101 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
6102
6103         PR rtl-optimization/46002
6104         * ira-color.c (update_copy_costs): Change class intersection
6105         test to reg_class_contents[] test of 'hard_regno'.
6106
6107 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
6108
6109         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
6110         than Driver option.
6111         * config/hpux11.opt (mt): Likewise.
6112         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
6113         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
6114         * config/vax/elf.opt (mno-asm-pic): Likewise.
6115         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
6116
6117 2011-02-21  Mike Stump  <mikestump@comcast.net>
6118
6119         PR target/47822
6120         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
6121         tree so we can get save the type.
6122         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
6123         for CFString instead of trying to use past the end of the builtins.
6124         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
6125         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
6126         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
6127         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
6128         Rename to darwin_builtin_cfstring.
6129         (darwin_init_cfstring_builtins): Return the built type.
6130
6131 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
6132
6133         PR target/47840
6134         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
6135         (_mm256_insert_epi64): Use _mm_insert_epi64.
6136
6137 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
6138
6139         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6140         * config/stormy16/stormy16-protos.h
6141         (xstormy16_mode_dependent_address_p): Remove.
6142         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
6143         Make static. Change return type to bool. Change argument type to
6144         const_rtx. Remove dead code.
6145         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6146
6147 2011-02-21  Richard Guenther  <rguenther@suse.de>
6148
6149         PR lto/47820
6150         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6151         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6152         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
6153         TUs context.
6154         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6155         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6156
6157 2011-02-20  Richard Guenther  <rguenther@suse.de>
6158
6159         PR lto/47822
6160         * tree.c (free_lang_data_in_decl): Clean builtins from
6161         the TU decl BLOCK_VARS.
6162
6163 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
6164
6165         PR debug/47620
6166         PR debug/47630
6167         * haifa-sched.c (fix_tick_ready): Skip tick computation
6168         for debug insns.
6169
6170 2011-02-19  Richard Guenther  <rguenther@suse.de>
6171
6172         PR lto/47647
6173         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6174         Remove lazy BLOCK_VARS streaming.
6175         (lto_input_ts_block_tree_pointers): Likewise.
6176         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6177
6178 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6179
6180         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
6181
6182 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6183
6184         * config/i386/biarch32.h, config/i386/mach.h,
6185         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6186
6187 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
6188
6189         PR target/47800
6190         * config/i386/i386.md (peephole2 for shift and plus): Use
6191         operands[1] original mode in the first insn.
6192
6193 2011-02-18  Mike Stump  <mikestump@comcast.net>
6194
6195         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6196
6197 2011-02-18  Jan Hubicka  <jh@suse.cz>
6198
6199         PR middle-end/47788
6200         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6201         to zero when the function is not inlinable at all.
6202
6203 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6204
6205         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6206         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6207         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6208         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6209         * config/pa/t-pa64: Likewise.
6210         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6211
6212 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6213
6214         PR driver/47787
6215         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6216
6217 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6218
6219         PR target/47792
6220         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6221
6222 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
6223
6224         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6225         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6226         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6227         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6228         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6229         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6230         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6231         m32r_load_postinc_p, m32r_store_preinc_predec_p,
6232         m32r_legitimate_address_p): New functions.
6233         * config/m32r/constraints.md (constraint "S"): Don't use
6234         STORE_PREINC_PREDEC_P.
6235         (constraint "U"): Don't use LOAD_POSTINC_P.
6236
6237 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
6238
6239         PR rtl-optimization/46178
6240         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6241         compute ira_hard_regno_cover_class[].
6242
6243 2011-02-18  Richard Guenther  <rguenther@suse.de>
6244
6245         PR lto/47798
6246         * lto-streamer.h (lto_global_var_decls): Declare.
6247         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6248         statics for global var processing.
6249
6250 2011-02-18  Richard Guenther  <rguenther@suse.de>
6251
6252         PR tree-optimization/47737
6253         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6254         edge dominance check.
6255
6256 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6257
6258         PR debug/47780
6259         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
6260         avoid invalid rtx sharing.
6261
6262 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6263
6264         * doc/cpp.texi (Obsolete Features): Add background on the
6265         origin of assertions.
6266
6267 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
6268
6269         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
6270         objc_abi == 2.
6271         * config/darwin.c (output_objc_section_asm_op): Added support for
6272         ABI v1 and v2.
6273         (is_objc_metadata): New.
6274         (darwin_objc2_section): New.
6275         (darwin_objc1_section): New.
6276         (machopic_select_section): Added support for ABI v1 and v2.
6277         (darwin_emit_objc_zeroed): New.
6278         (darwin_output_aligned_bss): Detect objc metadata and treat it
6279         appropriately.
6280         (darwin_asm_output_aligned_decl_common): Same.
6281         (darwin_asm_output_aligned_decl_local): Same.
6282         * config/darwin-sections.def: Updated for ABI v1 and v2.
6283         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
6284         compiling Objective-C code for the NeXT runtime, default to using
6285         ABI version 0 for 32-bit, and version 2 for 64-bit.
6286
6287 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6288
6289         * common.opt (optimize_fast): New Variable.
6290         * opts.c (default_options_optimization): Use opts->x_optimize_fast
6291         instead of local variable ofast.
6292
6293 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6294
6295         * doc/invoke.texi (fobjc-abi-version): Documented.
6296         (fobjc-nilcheck): Documented.
6297         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
6298         version.
6299
6300 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6301
6302         PR driver/47390
6303         * common.opt (export-dynamic): New Driver option.
6304         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
6305
6306 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6307
6308         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
6309
6310 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
6311             Jan Hubicka  <jh@suse.cz>
6312
6313         PR debug/47106
6314         PR debug/47402
6315         * cfgexpand.c (account_used_vars_for_block): Remove.
6316         (estimated_stack_frame_size): Use referenced vars.
6317         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
6318         that were referenced in the original function.  Test src_fn
6319         rather than cfun.  Drop redundant get_var_ann.
6320         (setup_one_parameter): Drop redundant get_var_ann.
6321         (declare_return_variable): Likewise.
6322         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
6323         (copy_arguments_for_versioning): Drop redundant get_var_ann.
6324         * ipa-inline.c (compute_inline_parameters): Do not compute
6325         disregard_inline_limits here.
6326         (compute_inlinable_for_current, pass_inlinable): New.
6327         (pass_inline_parameters): Require PROP_referenced_vars.
6328         * cgraphunit.c (cgraph_process_new_functions): Don't run
6329         compute_inline_parameters explicitly unless function is in SSA form.
6330         (cgraph_analyze_function): Set .disregard_inline_limits.
6331         * tree-sra.c (convert_callers): Compute inliner parameters
6332         only for functions already in SSA form.
6333
6334 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6335
6336         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
6337         -mlittle-endian-data.
6338
6339 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6340
6341         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
6342         -mno-fpu, not -fpu and -no-fpu.
6343         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
6344         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
6345
6346 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
6347
6348         PR target/43653
6349         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
6350         input reload with PLUS RTX.
6351
6352 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6353
6354         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
6355         of InverseVar(MDMX).
6356
6357 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6358
6359         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
6360         --m4-340.
6361
6362 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6363
6364         * config/mn10300/mn10300.opt (mno-crt0): New.
6365
6366 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6367
6368         * config/m68k/uclinux.opt (static-libc): New Driver option.
6369
6370 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6371
6372         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
6373
6374 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6375
6376         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
6377         %{muser-extend-enabled}.
6378
6379 2011-02-16  Richard Guenther  <rguenther@suse.de>
6380
6381         PR tree-optimization/47738
6382         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
6383         the TODO from tree_predictive_commoning.
6384
6385 2011-02-15  Jeff Law  <law@redhat.com>
6386
6387         Revert
6388         2011-01-25  Jeff Law  <law@redhat.com>
6389
6390         PR rtl-optimization/37273
6391         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6392         handle them like argument loads from stack slots.  Do not double
6393         count memory for memory constants and argument loads from stack slots.
6394
6395 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6396
6397         PR middle-end/47725
6398         * combine.c (cant_combine_insn_p): Revert the last change.
6399
6400 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6401
6402         PR target/47755
6403         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
6404         mode for vector constants.  Remove code that checks for TImode.
6405
6406 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6407
6408         PR debug/47106
6409         PR debug/47402
6410         * cgraph.h (compute_inline_parameters): Return void.
6411         * ipa-inline.c (compute_inline_parameters): Adjust.
6412
6413 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6414
6415         PR debug/47106
6416         PR debug/47402
6417         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
6418         rather than decl.
6419         * cfgexpand.c (estimated_stack_frame_size): Likewise.
6420         * ipa-inline.c (compute_inline_parameters): Adjust.
6421
6422 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6423
6424         PR debug/47106
6425         PR debug/47402
6426         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
6427         Adjust all users.  Pass FN to...
6428         * tree-flow-inline.h (first_referenced_var): ... this.  Add
6429         fn argument.
6430         * ipa-struct-reorg.c: Adjust.
6431         * tree-dfa.c: Adjust.
6432         * tree-into-ssa.c: Adjust.
6433         * tree-sra.c: Adjust.
6434         * tree-ssa-alias.c: Adjust.
6435         * tree-ssa-live.c: Adjust.
6436         * tree-ssa.c: Adjust.
6437         * tree-ssanames.c: Adjust.
6438         * tree-tailcall.c: Adjust.
6439
6440 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6441
6442         PR debug/47106
6443         PR debug/47402
6444         * tree-flow.h (referenced_var_lookup): Add fn parameter.
6445         Adjust all callers.
6446         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
6447         * tree-flow-inline.h: Adjust.
6448         * gimple-pretty-print.c: Adjust.
6449         * tree-into-ssa.c: Adjust.
6450         * tree-ssa.c: Adjust.
6451         * cfgexpand.c: Adjust.
6452
6453 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6454
6455         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
6456         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6457         (EXTRA_CONSTRAINT): Delete.
6458         * config/iq2000/constraints.md: New file.
6459         * config/iq2000/iq2000.md: Include it.
6460         (define_insn ""): Delete.
6461         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
6462         unsupported constraint letters from patterns.
6463         (call_value, call_value_internal1): Likewise.
6464         (call_value_multiple_internal1): Likewise.
6465
6466 2011-02-15  Nick Clifton  <nickc@redhat.com>
6467
6468         * config/mn10300/mn10300.c: Include tm-constrs.h.
6469         (struct liw_data): New data structure describing an LIW candidate
6470         instruction.
6471         (extract_bundle): Use struct liw_data.  Allow small integer
6472         operands for some instructions.
6473         (check_liw_constraints): Use struct liw_data.  Remove swapped
6474         parameter.  Add comments describing the checks.  Fix bug when
6475         assigning the source of liw1 to the source of liw2.
6476         (liw_candidate): Delete.  Code moved into extract_bundle.
6477         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
6478         before swapping.
6479         * config/mn10300/predicates.md (liw_operand): New predicate.
6480         Allows registers and small integer constants.
6481         * config/mn10300/constraints.md (O): New constraint.  Accetps
6482         integers in the range -8 to +7 inclusive.
6483         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
6484         for moving a small integer into a register.  Give this alternative
6485         LIW attributes.
6486         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
6487         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
6488         using the J,K,L and M constraints,
6489         (liw): Remove SI mode on second operands to allow for HI and QI
6490         mode values.
6491         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
6492         instruction.
6493
6494 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6495
6496         PR middle-end/47725
6497         * combine.c (cant_combine_insn_p): Check zero/sign extended
6498         hard registers.
6499
6500 2011-02-15  Richard Guenther  <rguenther@suse.de>
6501
6502         PR tree-optimization/47743
6503         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
6504         for a non-type-compatible VN lookup bail out.
6505
6506 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6507
6508         * config/fr30/constraints.md: New file.
6509         * config/fr30/fr30.md: Include it.
6510         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
6511         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6512         (EXTRA_CONSTRAINT): Delete.
6513
6514 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6515
6516         * config/frv/constraints.md: New file.
6517         * config/frv/predicates.md: Include it.
6518         * config/frv/frv.c (reg_class_from_letter): Delete.
6519         (frv_option_override): Don't initialize it.
6520         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
6521         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
6522         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
6523         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6524         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
6525         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6526         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
6527         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
6528         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
6529         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
6530         (REG_CLASS_FROM_CONSTRAINT): Delete.
6531
6532 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
6533
6534         PR middle-end/47581
6535         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
6536         if frame size is 0 in a leaf function.
6537
6538 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6539
6540         PR pch/14940
6541         * config/alpha/host-osf.c: New file.
6542         * config/alpha/x-osf: New file.
6543         * config.host (alpha*-dec-osf*): Use it.
6544
6545 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6546
6547         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6548         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
6549         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
6550         (rx_mode_dependent_address_p): ...this. Make static. Change argument
6551         type to const_rtx.
6552         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6553
6554 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6555
6556         * config/stormy16/constraints.md: New file.
6557         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
6558         Use satisfies_constraint_Q and satisfies_constraint_R.
6559         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
6560         Delete.
6561         (xstormy16_legitiamte_address_p): Declare.
6562         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
6563         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6564         (EXTRA_CONSTRAINT): Delete.
6565         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6566         Un-staticize.
6567         (xstormy16_extra_constraint_p): Delete.
6568
6569 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6570
6571         PR tree-optimization/46494
6572         * loop-unroll.c (split_edge_and_insert): Adjust comment.
6573         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
6574         (pass_rtl_loop_done): Add TODO_verify_flow.
6575         * fwprop.c (pass_rtl_fwprop): Likewise.
6576         * modulo-sched.c (pass_sms): Likewise.
6577         * tree-ssa-dom.c (pass_dominator): Likewise.
6578         * tree-ssa-loop-ch.c (pass_ch): Likewise.
6579         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
6580         (pass_tree_loop_done): Likewise.
6581         * tree-ssa-pre.c (execute_pre): Likewise.
6582         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6583         * tree-ssa-sink.c (pass_sink_code): Likewise.
6584         * tree-vrp.c (pass_vrp): Likewise.
6585
6586 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6587
6588         * config/v850/constraints.md: New file.
6589         * config/v850/v850.md: Include it.
6590         * config/v850/predicates.md (reg_or_0_operand): Use
6591         satisfies_constraint_G.
6592         (special_symbolref_operand): Use satisfies_constraint_K.
6593         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
6594         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6595         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
6596         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6597         (EXTRA_CONSTRAINT): Delete.
6598         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
6599         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
6600         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
6601
6602 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6603
6604         PR target/47696
6605         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
6606         description.
6607
6608 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6609
6610         * config/mcore/constraints.md: New file.
6611         * config/mcore/mcore.md: Include it.
6612         * config/mcore/mcore.c (reg_class_from_letter): Delete.
6613         * config/mcore/mcore.h (reg_class_from_letter): Delete.
6614         (REG_CLASS_FROM_LETTER): Delete.
6615         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
6616         insn_const_int_ok_for_constraint.
6617         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
6618         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
6619         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6620         (EXTRA_CONSTRAINT): Delete.
6621
6622 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6623
6624         PR ada/41929
6625         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
6626         (IS_SIGHANDLER): Define.
6627         (sparc64_is_sighandler): New function, split off from
6628         sparc64_fallback_frame_state.
6629         (sparc_is_sighandler): New function, split off from
6630         sparc_fallback_frame_state.
6631         (sparc64_fallback_frame_state): Merge with ...
6632         (sparc_fallback_frame_state): ... this into ...
6633         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
6634         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
6635         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
6636         stack instead of hardcoded offsets.
6637
6638 2011-02-14  Andriy Gapon  <avg@freebsd.org>
6639
6640         PR target/45808
6641         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
6642
6643 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6644
6645         * configure: Regenerate.
6646
6647 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
6648
6649         PR driver/45731
6650         * gcc.c (asm_options): Correct spec matching --target-help.
6651
6652 2011-02-12  Martin Jambor  <mjambor@suse.cz>
6653
6654         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
6655         to gimple call error.
6656
6657 2011-02-12  Mike Stump  <mikestump@comcast.net>
6658
6659         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
6660         comments in backslash regions.
6661
6662 2011-02-12  Mike Stump  <mikestump@comcast.net>
6663             Jakub Jelinek  <jakub@redhat.com>
6664             Iain Sandoe  <iains@gcc.gnu.org>
6665
6666         PR target/47324
6667         * dwarf2out.c (output_cfa_loc): When required, apply the
6668         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
6669         (output_loc_sequence): Likewise.
6670         (output_loc_operands_raw): Likewise.
6671         (output_loc_sequence_raw): Likewise.
6672         (output_cfa_loc): Likewise.
6673         (output_loc_list): Suppress register number adjustment when
6674         calling output_loc_sequence()
6675         (output_die): Likewise.
6676
6677 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
6678
6679         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6680         Remove macros.
6681         * config/xtensa/xtensa.c (xtensa_register_move_cost,
6682         xtensa_memory_move_cost): New functions.
6683         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
6684
6685 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
6686
6687         PR lto/47225
6688         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
6689         in the current directory.
6690         * configure: Rebuilt.
6691
6692 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
6693
6694         * config/darwin.c (darwin_override_options): Add a hunk missed
6695         from the commit of r168571.  Trim comment line lengths and
6696         correct indents of the preceding block.
6697
6698 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
6699
6700         * gcc.c (driver_handle_option): Concatenate the argument to -F with
6701         the switch.
6702
6703 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6704
6705         * common.opt (nostartfiles): New Driver option.
6706
6707 2011-02-11  Xinliang David Li  <davidxl@google.com>
6708
6709         PR tree-optimization/47707
6710         * tree-chrec.c (convert_affine_scev): Keep type precision.
6711
6712 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
6713
6714         PR tree-optimization/47420
6715         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
6716
6717 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
6718
6719         PR rtl-optimization/47614
6720         * rtl.h (check_for_inc_dec): Declare.
6721         * dse.c (check_for_inc_dec): Externalize...
6722         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
6723         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
6724
6725 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6726
6727         PR driver/47678
6728         * gcc.c (main): Do not compile inputs if there were errors in
6729         option handling.
6730         * opts-common.c (read_cmdline_option): Check for wrong language
6731         after other error checks.
6732
6733 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
6734
6735         * cgraph.c: Fix comment typos.
6736         * cgraph.h: Likewise.
6737         * cgraphunit.c: Likewise.
6738         * ipa-cp.c: Likewise.
6739         * ipa-inline.c: Likewise.
6740         * ipa-prop.c: Likewise.
6741         * ipa-pure-const.c: Likewise.
6742         * ipa-ref.c: Likewise.
6743         * ipa-reference.c: Likewise.
6744
6745 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
6746
6747         PR debug/47684
6748         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
6749
6750 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6751
6752         PR testsuite/47400
6753         * doc/sourcebuild.texi (Require Support): Document
6754         dg-require-ascii-locale.
6755
6756 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
6757
6758         * doc/lto.texi (Write summary): Fix missing parentheses.
6759
6760 2011-02-10  DJ Delorie  <dj@redhat.com>
6761
6762         * config/m32c/m32c.c (m32c_option_override): Disable
6763         -fcombine-stack-adjustments until flag value tracking and compare
6764         optimization can be rewritten.
6765
6766 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
6767
6768         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
6769         PROCESSOR_POWER7.
6770         (PROCESSOR_DEFAULT64): Likewise.
6771
6772 2011-02-10  Richard Henderson  <rth@redhat.com>
6773
6774         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
6775         change from 2011-02-03.
6776         * config/rx/rx.c (flags_from_code): Likewise.
6777         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
6778         is valid, n/pz otherwise.
6779         (rx_select_cc_mode): Return CCmode if Y is not zero.
6780
6781 2011-02-10  Richard Guenther  <rguenther@suse.de>
6782
6783         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
6784
6785 2011-02-10  Richard Guenther  <rguenther@suse.de>
6786
6787         PR tree-optimization/47677
6788         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
6789
6790 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
6791
6792         PR target/47665
6793         * combine.c (make_compound_operation): Only change shifts into
6794         multiplication for SCALAR_INT_MODE_P.
6795
6796 2011-02-10  Jie Zhang  <jie@codesourcery.com>
6797
6798         PR testsuite/47622
6799         Revert
6800         2011-02-05  Jie Zhang  <jie@codesourcery.com>
6801         PR debug/42631
6802         * web.c (entry_register): Don't clobber the number of the
6803         first uninitialized reference in used[].
6804
6805 2011-02-09  Richard Guenther  <rguenther@suse.de>
6806
6807         PR tree-optimization/47664
6808         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
6809         all edges again.
6810
6811 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
6812
6813         PR target/46481
6814         PR target/47032
6815         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
6816         PROCESSOR_POWER7.
6817         (PROCESSOR_DEFAULT64): Same.
6818         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
6819
6820 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6821
6822         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
6823
6824 2011-02-09  Martin Jambor  <mjambor@suse.cz>
6825
6826         PR middle-end/45505
6827         * tree-sra.c (struct access): New flags grp_scalar_read and
6828         grp_scalar_write.  Changed description of assignment read and write
6829         flags.
6830         (dump_access): Dump new flags, reorder all of them.
6831         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
6832         to detect multiple scalar reads.
6833         (analyze_access_subtree): Use the new scalar read write flags instead
6834         of the old flags.  Adjusted comments.
6835
6836 2011-02-08  DJ Delorie  <dj@redhat.com>
6837
6838         PR target/47548
6839         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
6840         patterns.
6841
6842 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6843
6844         * config/m68k/uclinux.opt: New.
6845         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
6846
6847 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6848
6849         * config/cris/elf.opt (sim): New Driver option.
6850
6851 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6852
6853         * config/xtensa/elf.opt: New.
6854         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
6855
6856 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6857
6858         * config/vax/elf.opt: New.
6859         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
6860
6861 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6862
6863         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
6864
6865 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6866
6867         * config/gnu-user.opt: New.
6868         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
6869         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
6870         *-*-uclinux*): Use gnu-user.opt.
6871
6872 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
6873
6874         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
6875         * config/i386/gnu.h (CPP_SPEC): Likewise.
6876
6877 2011-02-08  Ian Lance Taylor  <iant@google.com>
6878
6879         * common.opt (fcx-limited-range): Add SetByCombined flag.
6880         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
6881         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
6882         (fassociative-math, freciprocal-math): Likewise.
6883         (funsafe-math-optimizations): Likewise.
6884         * opth-gen.awk: Handle SetByCombined.
6885         * optc-gen.awk: Likewise.
6886         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
6887         (set_unsafe_math_optimizations_flags): Likewise.
6888         * doc/options.texi (Option properties): Document SetByCombined.
6889
6890 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6891
6892         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
6893         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
6894         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
6895         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
6896         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
6897
6898 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
6899
6900         PR tree-optimization/46834
6901         PR tree-optimization/46994
6902         PR tree-optimization/46995
6903         * graphite-sese-to-poly.c (used_outside_reduction): New.
6904         (detect_commutative_reduction): Call used_outside_reduction.
6905         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
6906         translate_scalar_reduction_to_array only when at least one
6907         loop-phi/close-phi tuple has been detected.
6908
6909 2011-02-08  Richard Guenther  <rguenther@suse.de>
6910
6911         PR middle-end/47639
6912         * tree-vect-generic.c (expand_vector_operations_1): Update
6913         stmts here ...
6914         (expand_vector_operations): ... not here.  Cleanup EH info
6915         and the CFG if required.
6916
6917 2011-02-08  Richard Guenther  <rguenther@suse.de>
6918
6919         PR tree-optimization/47641
6920         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
6921         require type compatibility.
6922
6923 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6924
6925         * gimple-low.c (lower_function_body): Don't remove the location of
6926         the return statement here.
6927         (lower_gimple_return): Do it here instead but only if the return
6928         statement is actually used twice.
6929
6930 2011-02-08  Richard Guenther  <rguenther@suse.de>
6931
6932         PR tree-optimization/47632
6933         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
6934         unused up_to_stmt parameter, return whether cfg-cleanup is
6935         necessary, remove EH info properly.
6936         (forward_propagate_into_gimple_cond): Adjust caller.
6937         (forward_propagate_into_cond): Likewise.
6938         (forward_propagate_comparison): Likewise.
6939         (tree_ssa_forward_propagate_single_use_vars): Make
6940         forward_propagate_comparison case similar to the two others.
6941
6942 2011-02-08  Nick Clifton  <nickc@redhat.com>
6943
6944         * config/mn10300/mn10300.opt (mliw): New command line option.
6945         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
6946         (liw_bundling): New automaton.
6947         (liw): New attribute.
6948         (liw_op): New attribute.
6949         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
6950         (movsi_internal): Add LIW attributes.
6951         (andsi3): Likewise.
6952         (iorsi3): Likewise.
6953         (xorsi3): Likewise.
6954         (addsi3): Separate register and immediate alternatives.
6955         Add LIW attributes.
6956         (subsi3): Likewise.
6957         (cmpsi): Likewise.
6958         (aslsi3): Likewise.
6959         (lshrsi3): Likewise.
6960         (ashrsi3): Likewise.
6961         (liw): New pattern.
6962         * config/mn10300/mn10300.c (liw_op_names): New
6963         (mn10300_print_operand): Handle 'W' operand descriptor.
6964         (extract_bundle): New function.
6965         (check_liw_constraints): New function.
6966         (liw_candidate): New function.
6967         (mn10300_bundle_liw): New function.
6968         (mn10300_reorg): New function.
6969         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6970         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
6971         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
6972         __LIW__ or __NO_LIW__.
6973         * doc/invoke.texi: Describe the -mliw command line option.
6974
6975 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6976
6977         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
6978         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6979         pthread_mutex_unlock): Remove.
6980         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
6981         * config/pa/t-pa64: Likewise.
6982         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
6983         shared libc if not linking against libpthread.
6984         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6985
6986 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
6987
6988         PR target/47558
6989         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
6990         on 10.6 and later to ensure that we always use the unwinder from
6991         the system.  Only add -no_compact_unwind when tarteting darwin
6992         10.6 or later.
6993
6994 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
6995
6996         PR target/46997
6997         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
6998         (vec_interleave_lowv2sf): Ditto.
6999         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
7000         (vec_extract_oddv2sf): Ditto.
7001
7002 2011-02-07  Mike Stump  <mikestump@comcast.net>
7003
7004         PR target/42333
7005         Add __ieee_divdc3 entry point.
7006         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
7007         entry point.
7008         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
7009         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
7010         * config/darwin.c (darwin_rename_builtins): Add.
7011         * config/darwin-protos.h (darwin_rename_builtins): Add.
7012
7013 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7014
7015         PR target/47636
7016         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
7017         for the condition.
7018
7019 2011-02-07  Mike Stump  <mikestump@comcast.net>
7020
7021         * config/darwin.opt (mmacosx-version-min): Update default OS version.
7022
7023 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
7024
7025         PR target/47534
7026         * config/avr/libgcc.S (exit): Move .endfunc
7027
7028 2011-02-07  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/47615
7031         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
7032         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
7033         (run_scc_vn): Initialize it.
7034         (visit_reference_op_load): Use it.
7035         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
7036
7037 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7038
7039         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
7040         DImode trapping arithmetic libfuncs.
7041
7042 2011-02-07  Richard Guenther  <rguenther@suse.de>
7043
7044         PR tree-optimization/47621
7045         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
7046         two duplicates ...
7047         (execute_update_addresses_taken): ... here.  Make it more
7048         conservative in what we accept.
7049
7050 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7051
7052         * config/sparc/freebsd.h (ASM_SPEC): Define.
7053         * config/sparc/vxworks.h (ASM_SPEC): Define.
7054
7055 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7056
7057         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7058
7059 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
7060
7061         * doc/invoke.texi: Remove reference to compiler internals from
7062         user documentation.
7063
7064         * reg-notes.def: Remove REG_VALUE_PROFILE.
7065         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
7066
7067 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
7068
7069         PR middle-end/47610
7070         * varasm.c (default_section_type_flags): If decl is NULL,
7071         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
7072
7073 2011-02-05  Jie Zhang  <jie@codesourcery.com>
7074
7075         PR debug/42631
7076         * web.c (entry_register): Don't clobber the number of the
7077         first uninitialized reference in used[].
7078
7079 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
7080
7081         PR tree-optimization/46194
7082         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
7083         (build_classic_dist_vector_1): Do not represent classic distance
7084         vectors when the access functions are variating in different loops.
7085
7086 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7087
7088         * config/mips/iris6.opt: New.
7089         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
7090
7091 2011-02-04  Richard Henderson  <rth@redhat.com>
7092             Steve Ellcey  <sje@cup.hp.com>
7093
7094         PR target/46997
7095         * config/ia64/predicates.md (mux1_brcst_element): New.
7096         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
7097         * config/ia64/ia64.c (ia64_unpack_assemble): New.
7098         (ia64_unpack_sign): New.
7099         (ia64_expand_unpack): Rewrite using new routines.
7100         (ia64_expand_widen_sum): Ditto.
7101         (ia64_expand_dot_prod_v8qi): Ditto.
7102         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
7103         routines, add endian check.
7104         (pmpy2_even): Rename from pmpy2_r, add endian check.
7105         (pmpy2_odd): Rename from pmpy2_l, add endian check.
7106         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
7107         (vec_widen_smult_hi_v4hi): Ditto.
7108         (vec_widen_umult_lo_v4hi): Ditto.
7109         (vec_widen_umult_hi_v4hi): Ditto.
7110         (mulv2si3): Change endian checks.
7111         (sdot_prodv4hi): Rewrite with new calls.
7112         (udot_prodv4hi): New.
7113         (vec_pack_ssat_v4hi): Add endian check.
7114         (vec_pack_usat_v4hi): Ditto.
7115         (vec_pack_ssat_v2si): Ditto.
7116         (max1_even): Rename from max1_r, add endian check.
7117         (max1_odd): Rename from max1_l, add endian check.
7118         (*mux1_rev): Format change.
7119         (*mux1_mix): Ditto.
7120         (*mux1_shuf): Ditto.
7121         (*mux1_alt): Ditto.
7122         (*mux1_brcst_v8qi): Use new predicate.
7123         (vec_extract_evenv8qi): Remove endian check.
7124         (vec_extract_oddv8qi): Ditto.
7125         (vec_interleave_lowv4hi): Format change.
7126         (vec_interleave_highv4hi): Ditto.
7127         (mix2_even): Rename from mix2_r, add endian check.
7128         (mix2_odd): Rename from mux2_l, add endian check.
7129         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
7130         (vec_extract_evenodd_helper): Format change.
7131         (vec_extract_evenv4hi): Remove endian check.
7132         (vec_extract_oddv4hi): Remove endian check.
7133         (vec_interleave_lowv2si): Format change.
7134         (vec_interleave_highv2si): Format change.
7135         (vec_initv2si): Remove endian check.
7136         (vecinit_v2si): Add endian check.
7137         (reduc_splus_v2sf): Add endian check.
7138         (reduc_smax_v2sf): Ditto.
7139         (reduc_smin_v2sf): Ditto.
7140         (vec_initv2sf): Remove endian check.
7141         (fpack): Add endian check.
7142         (fswap): Add endian check.
7143         (vec_interleave_highv2sf): Add endian check.
7144         (vec_interleave_lowv2sf): Add endian check.
7145         (fmix_lr): Add endian check.
7146         (vec_setv2sf): Format change.
7147         (*vec_extractv2sf_0_be): Use shift to extract operand.
7148         (*vec_extractv2sf_1_be): New.
7149         (vec_pack_trunc_v4hi): Add endian check.
7150         (vec_pack_trunc_v2si): Format change.
7151
7152 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
7153
7154         PR inline-asm/23200
7155         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
7156         do bb, locus and block comparison and disallow loads if it is not set.
7157         (stmt_is_replaceable_p): New function.
7158         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
7159         callers.
7160         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
7161         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
7162         SSA_NAME_DEF_STMT.
7163         * tree-flow.h (stmt_is_replaceable_p): New prototype.
7164
7165 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7166
7167         * config/rs6000/xilinx.opt: New.
7168         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
7169
7170 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7171
7172         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
7173
7174 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
7175
7176         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
7177         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7178         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
7179         secondary_reload_info, xtensa_secondary_reload): Remove.
7180         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
7181         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7182         (xtensa_preferred_reload_class): Make static. Change return and
7183         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
7184         Use CONST_DOUBLE_P predicate.
7185         (xtensa_preferred_output_reload_class): New function.
7186         (xtensa_secondary_reload): Make static.
7187
7188 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
7189
7190         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7191         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7192         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7193
7194 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7195
7196         PR middle-end/31490
7197         * output.h (SECTION_RELRO): Define.
7198         (SECTION_MACH_DEP): Adjust.
7199         (get_variable_section): New prototype.
7200         * varpool.c (varpool_finalize_named_section_flags): New function.
7201         (varpool_assemble_pending_decls): Call it.
7202         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7203         * cgraphunit.c (cgraph_output_in_order): Call
7204         varpool_finalize_named_section_flags.
7205         * varasm.c (get_section): Allow section flags conflicts between
7206         relro and read-only sections if the section hasn't been declared yet.
7207         Set SECTION_OVERRIDE after diagnosing section type conflict.
7208         (get_variable_section): No longer static.
7209         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7210         readonly sections that need relocations.
7211         (decl_readonly_section_1): New function.
7212         (decl_readonly_section): Use it.
7213
7214         Revert:
7215         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
7216                     Steve Ellcey  <sje@cup.hp.com>
7217
7218         PR middle-end/31490
7219         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7220         if section attribute used.
7221
7222 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7223
7224         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7225         * config/darwin.c (SECTION_NO_ANCHOR): Define.
7226         (darwin_init_sections): Remove assertion.
7227
7228 2011-02-03  Nick Clifton  <nickc@redhat.com>
7229
7230         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7231         lt and ge.
7232         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7233         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7234         instead of "n" and "pz".
7235         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7236         CC_FLAG_S.
7237
7238 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7239
7240         PR target/47312
7241         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7242         fma, expand FMA_EXPR as fma{,f,l} call.
7243
7244         PR lto/47274
7245         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7246         copy them into a unsigned char variable and pass address of it to
7247         lto_output_data_stream.
7248
7249         PR target/47564
7250         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7251         around backend_init_target and lang_dependent_init_target calls.
7252         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7253         (verify_cgraph_node): Don't call set_cfun here.  Use
7254         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
7255         Set error_found for incorrectly represented calls to thunks.
7256
7257 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7258
7259         PR debug/43092
7260         PR rtl-optimization/43494
7261         * rtl.h (for_each_inc_dec_fn): New type.
7262         (for_each_inc_dec): Declare.
7263         * rtlanal.c (struct for_each_inc_dec_ops): New type.
7264         (for_each_inc_dec_find_inc_dec): New fn.
7265         (for_each_inc_dec_find_mem): New fn.
7266         (for_each_inc_dec): New fn.
7267         * dse.c (struct insn_size): Remove.
7268         (replace_inc_dec, replace_inc_dec_mem): Remove.
7269         (emit_inc_dec_insn_before): New fn.
7270         (check_for_inc_dec): Use it, along with for_each_inc_dec.
7271         (canon_address): Pass mem modes to cselib_lookup.
7272         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
7273         (cselib_lookup_from_insn): Likewise.
7274         (cselib_subst_to_values): Likewise.
7275         * cselib.c (find_slot_memmode): New var.
7276         (cselib_find_slot): New fn.  Use it instead of
7277         htab_find_slot_with_hash everywhere.
7278         (entry_and_rtx_equal_p): Use find_slot_memmode.
7279         (autoinc_split): New fn.
7280         (rtx_equal_for_cselib_p): Rename and implement in terms of...
7281         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
7282         Deal with autoinc.  Special-case recursion into MEMs.
7283         (cselib_hash_rtx): Likewise.
7284         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
7285         address and MEM modes.
7286         (cselib_subst_to_values): Add memmode, pass it on.
7287         Deal with autoinc.
7288         (cselib_lookup): Add memmode argument, pass it on.
7289         (cselib_lookup_from_insn): Add memmode.
7290         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
7291         (struct cselib_record_autoinc_data): New.
7292         (cselib_record_autoinc_cb): New fn.
7293         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
7294         mode to cselib_lookup.  Reset autoinced REGs here instead of...
7295         (cselib_process_insn): ... here.
7296         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
7297         to cselib_lookup.
7298         (add_uses): Likewise, also to cselib_subst_to_values.
7299         (add_stores): Likewise.
7300         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
7301         cselib_subst_to_values.
7302         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
7303         * gcse.c (do_local_cprop): Adjusted.
7304         * postreload.c (reload_cse_simplify_set): Adjusted.
7305         (reload_cse_simplify_operands): Adjusted.
7306         * sel-sched-dump (debug_mem_addr_value): Pass mode.
7307
7308 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7309
7310         PR tree-optimization/45122
7311         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
7312         unsafe assumptions when there's more than one loop exit.
7313
7314 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7315
7316         PR target/47272
7317         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7318         Document using vector double with the load/store builtins, and
7319         that the load/store builtins always use Altivec instructions.
7320
7321         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
7322         to use altivec memory instructions, even on VSX.
7323         (vector_altivec_store_<mode>): Ditto.
7324
7325         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
7326         function.
7327
7328         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7329         V2DF, V2DI support to load/store overloaded builtins.
7330
7331         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
7332         altivec load/store builtins for V2DF/V2DI types.
7333
7334         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7335         set avoid indexed addresses on power6 if -maltivec.
7336         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
7337         vector_altivec_load/vector_altivec_store builtins.
7338         (altivec_expand_st_builtin): Ditto.
7339         (altivec_expand_builtin): Add VSX memory builtins.
7340         (rs6000_init_builtins): Add V2DI types to internal types.
7341         (altivec_init_builtins): Add support for V2DF/V2DI altivec
7342         load/store builtins.
7343         (rs6000_address_for_altivec): Insure memory address is appropriate
7344         for Altivec.
7345
7346         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
7347         vec_vsx_ld and vec_vsx_st.
7348         (vsx_store_<mode>): Ditto.
7349
7350         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
7351         variables to hold long long types for VSX vector memory builtins.
7352         (RS6000_BTI_unsigned_long_long): Ditto.
7353         (long_long_integer_type_internal_node): Ditti.
7354         (long_long_unsigned_type_internal_node): Ditti.
7355
7356         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
7357         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
7358         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
7359
7360         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
7361         short cuts.
7362         (vec_vsx_st): Ditto.
7363
7364 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7365
7366         * config/pa/pa-hpux10.opt: New.
7367         * config/hpux11.opt (pthread): New Driver option.
7368         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
7369         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
7370
7371 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7372
7373         * config/ia64/vms.opt: New.
7374         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
7375
7376 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7377
7378         PR target/47580
7379         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
7380         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
7381         generator functions.
7382         (vsx_floatuns<VSi><mode>2): Ditto.
7383         (vsx_fix_trunc<mode><VSi>2): Ditto.
7384         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
7385
7386 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7387
7388         * config/i386/djgpp.opt (posix): New Driver option.
7389
7390 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7391
7392         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
7393         Move to the unsupported targets list.
7394
7395 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
7396
7397         PR rtl-optimization/47525
7398         * df-scan.c: Update copyright years.
7399         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
7400         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
7401
7402 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7403
7404         * config/i386/sysv4.h (TARGET_VERSION): Remove.
7405         (SUBTARGET_RETURN_IN_MEMORY): Remove.
7406         (ASM_OUTPUT_ASCII): Remove.
7407         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
7408
7409 2011-02-02  Jeff Law  <law@redhat.com>
7410
7411         PR middle-end/47543
7412         * reload.c (find_reloads_address): Handle reg+d address where both
7413         components are invalid by reloading the entire address.
7414
7415 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7416             Richard Guenther  <rguenther@suse.de>
7417
7418         PR tree-optimization/40979
7419         PR bootstrap/47044
7420         * passes.c (init_optimization_passes): After LIM call copy_prop
7421         and DCE to clean up.
7422         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
7423
7424 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7425
7426         PR tree-optimization/47576
7427         PR tree-optimization/47555
7428         * doc/invoke.texi (scev-max-expr-complexity): Documented.
7429         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7430         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
7431         * tree-scalar-evolution.c (follow_ssa_edge): Use
7432         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
7433
7434 2011-02-02  Richard Guenther  <rguenther@suse.de>
7435
7436         PR tree-optimization/47566
7437         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
7438
7439 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7440
7441         PR debug/47106
7442         PR debug/47402
7443         * tree-inline.c (declare_return_variable): Remove unused caller
7444         variable.
7445
7446         PR debug/47106
7447         PR debug/47402
7448         * tree-flow-inline.h (clear_is_used, is_used_p): New.
7449         * cfgexpand.c (account_used_vars_for_block): Use them.
7450         * tree-nrv.c (tree_nrv): Likewise.
7451         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
7452         (dump_scope_block): Likewise.
7453         (remove_unused_locals): Likewise.
7454
7455         PR debug/47106
7456         PR debug/47402
7457         * tree-inline.c (declare_return_variable): Add result decl to
7458         local decls only once.
7459         * gimple-low.c (record_vars_into): Mark newly-created variables
7460         as referenced.
7461
7462 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7463
7464         PR debug/47498
7465         PR debug/47501
7466         PR debug/45136
7467         PR debug/45130
7468         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7469         debug insns.
7470         (no_real_insns_p, schedule_block, set_priorities): Drop special
7471         treatment of boundary debug insns.
7472         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7473         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
7474         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7475         (BOUNDARY_DEBUG_INSN_P): Likewise.
7476         (SCHEDULE_DEBUG_INSN_P): Likewise.
7477         * sched-rgn.c (init_ready_list): Drop special treatment of
7478         boundary debug insns.
7479         * final.c (rest_of_clean_state): Clear notes' BB.
7480
7481 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7482
7483         * config/openbsd.opt (assert=): New Driver option.
7484
7485 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7486
7487         * config/i386/nto.opt: New.
7488         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
7489
7490 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7491
7492         * config/i386/netware.opt: New.
7493         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
7494
7495 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7496
7497         * config/interix.opt (posix): New Driver option.
7498
7499 2011-02-01  DJ Delorie  <dj@redhat.com>
7500
7501         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
7502
7503         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
7504         class for A0/A1.
7505
7506 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
7507
7508         PR tree-optimization/47561
7509         * toplev.c (process_options): Print the Graphite flags.  Add
7510         flag_loop_flatten to the list of options requiring Graphite.
7511
7512 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7513
7514         * config/i386/cygming.opt (posix): New Driver option.
7515
7516 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7517
7518         * config/arm/vxworks.opt: New.
7519         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
7520
7521 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7522
7523         * config/alpha/elf.opt: New.
7524         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
7525         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
7526
7527 2011-02-01  Richard Guenther  <rguenther@suse.de>
7528
7529         PR tree-optimization/47559
7530         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
7531         store-motion on references that can throw.
7532
7533 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
7534
7535         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
7536         * tree-pass.h (TDF_CSELIB): New macro.
7537         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
7538         cselib_lookup): Check for it rather than for TDF_DETAILS.
7539
7540 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
7541
7542         PR driver/47547
7543         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
7544         is HOST_BIT_BUCKET.
7545
7546         * opts.c (finish_options): Don't add x_aux_base_name if it is
7547         HOST_BIT_BUCKET.
7548
7549 2011-02-01  Richard Guenther  <rguenther@suse.de>
7550
7551         PR tree-optimization/47555
7552         Revert
7553         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
7554
7555         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7556
7557 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
7558
7559         PR gcc/46692
7560         * config/lm32/t-lm32: Add multilib for all CPU options.
7561
7562 2011-02-01  Richard Guenther  <rguenther@suse.de>
7563
7564         PR tree-optimization/47541
7565         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7566         sure to have a field at offset zero.
7567
7568 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7569
7570         * config/arc/arc.opt (EB, EL): New Driver options.
7571
7572 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7573
7574         * config/alpha/osf5.opt: New.
7575         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
7576
7577 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7578
7579         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
7580
7581 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
7582
7583         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
7584         -floop-interchange.
7585         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
7586         is an alias of -floop-interchange and that it requires the
7587         Graphite infrastructure.
7588         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
7589         flag_loop_interchange based on the value of flag_tree_loop_linear.
7590
7591 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
7592             Richard Guenther  <rguenther@suse.de>
7593
7594         PR tree-optimization/47538
7595         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
7596         type instead of r1type, except for comparisons.  For right
7597         shifts and comparisons punt if there are mismatches in
7598         sizetype vs. non-sizetype types.
7599
7600 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7601
7602         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7603         avx_runtime.
7604
7605 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7606
7607         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
7608         version number.
7609         * configure: Regenerate.
7610
7611 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7612
7613         * configure.ac (gcc_cv_ld_static_option): Define.
7614         (gcc_cv_ld_dynamic_option): Define.
7615         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
7616         instead.
7617         (HAVE_LD_STATIC_DYNAMIC): Update message.
7618         (LD_STATIC_OPTION): Define.
7619         (LD_DYNAMIC_OPTION): Define.
7620         * configure: Regenerate.
7621         * config.in: Regenerate.
7622         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
7623         HAVE_LD_STATIC_DYNAMIC]: Use them.
7624
7625 2011-01-31  Nick Clifton  <nickc@redhat.com>
7626
7627         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
7628         registers inside interrupt handlers if the handler is not a leaf
7629         function.
7630
7631 2011-01-31  Nick Clifton  <nickc@redhat.com>
7632
7633         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
7634         reg_renumber returning an INVALID_REGNUM.
7635
7636 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7637
7638         PR libgcj/44341
7639         * doc/install.texi: Document host options discarded when cross
7640         configuring target libraries.
7641
7642 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7643
7644         Reverted:
7645         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7646         PR debug/45136
7647         PR debug/45130
7648         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7649         debug insns.
7650         (no_real_insns_p, schedule_block, set_priorities): Drop special
7651         treatment of boundary debug insns.
7652         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7653         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7654         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7655         (BOUNDARY_DEBUG_INSN_P): Likewise.
7656         (SCHEDULE_DEBUG_INSN_P): Likewise.
7657         * sched-rgn.c (init_ready_list): Drop special treatment of
7658         boundary debug insns.
7659         * final.c (rest_of_clean-state): Clear notes' BB.
7660
7661 2011-01-31  Alan Modra  <amodra@gmail.com>
7662
7663         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
7664         toc relative expressions as we do in print_operand_address.
7665
7666 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
7667
7668         * doc/extend.texi: Follow spelling conventions.
7669         * doc/invoke.texi: Fix a typo.
7670
7671 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
7672
7673         * config/hpux11.opt: New.
7674         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
7675         ia64*-*-hpux*): Use hpux11.opt.
7676
7677 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
7678
7679         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
7680         to tmake_file.
7681
7682 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7683
7684         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
7685         support sites.
7686
7687 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7688
7689         * doc/install.texi (Binaries): Remove outdated reference for
7690         Motorola 68HC11/68HC12 downloads.
7691
7692 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7693
7694         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
7695         Drepper's paper.
7696
7697 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
7698
7699         PR bootstrap/47147
7700         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
7701         used by NetBSD.
7702
7703 2011-01-28  Ahmad Sharif  <asharif@google.com>
7704
7705         * value-prof.c (check_counter): Corrected error message.
7706
7707 2011-01-29  Jie Zhang  <jie@codesourcery.com>
7708
7709         * config/arm/arm.c (arm_legitimize_reload_address): New.
7710         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
7711         arm_legitimize_reload_address.
7712         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
7713
7714 2011-01-28  Ian Lance Taylor  <iant@google.com>
7715
7716         * godump.c (go_define): Ignore macros whose definitions include
7717         two adjacent operands.
7718
7719 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
7720
7721         PR target/42894
7722         * varasm.c (force_const_mem): Store copy of x in desc->constant
7723         instead of x itself.
7724         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
7725         itself into REG_EQUAL note.
7726
7727 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
7728
7729         * config/freebsd.opt (posix, rdynamic): New Driver options.
7730
7731 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7732
7733         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
7734         -Bstatic/-Bdynamic.
7735         * configure: Regenerate.
7736
7737 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
7738
7739         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
7740         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
7741
7742 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
7743
7744         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
7745         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
7746         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7747         (s390_preferred_reload_class): Make static. Change return and
7748         'rclass' argument type to reg_class_t.
7749
7750 2011-01-27  Jan Hubicka  <jh@suse.cz>
7751
7752         PR middle-end/46949
7753         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
7754         (process_function_and_variable_attributes): Check defined weakrefs.
7755
7756 2011-01-27  Martin Jambor  <mjambor@suse.cz>
7757
7758         PR tree-optimization/47228
7759         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
7760         build_ref_for_offset.
7761
7762 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7763
7764         * config/spu/spu-elf.h (ASM_SPEC): Remove.
7765
7766 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
7767
7768         PR rtl-optimization/46856
7769         * postreload.c (reload_combine_recognize_const_pattern): Do not
7770         separate cc0 setter and user on cc0 targets.
7771
7772 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
7773
7774         PR c/43082
7775         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
7776         passed a VOID_TYPE expression, immediately emit an error and
7777         return error_mark_node.
7778
7779 2011-01-26  Jeff Law  <law@redhat.com>
7780
7781         PR rtl-optimization/47464
7782         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
7783         rather than may_trap_p as needed.
7784
7785 2011-01-26  DJ Delorie  <dj@redhat.com>
7786
7787         PR rtl-optimization/46878
7788         * combine.c (insn_a_feeds_b): Check for the implicit cc0
7789         setter/user dependency as well.
7790
7791 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7792
7793         PR rtl-optimization/44469
7794         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
7795         after removing trivially dead basic blocks.
7796
7797 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7798
7799         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
7800         * config/frv/frv.h (LINK_SPEC): Likewise.
7801         * config/i386/netware.h (LINK_SPEC): Likewise.
7802         * config/m68k/linux.h (ASM_SPEC): Likewise.
7803         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
7804         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7805         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7806         * config/sparc/linux.h (ASM_SPEC): Likewise.
7807         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7808         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7809
7810 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7811
7812         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
7813         * config/frv/frv.h (ASM_SPEC): Likewise.
7814         * config/m68k/linux.h (ASM_SPEC): Likewise.
7815         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7816         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
7817         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7818         * config/sparc/linux.h (ASM_SPEC): Likewise.
7819         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7820         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7821
7822 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7823
7824         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
7825         * config/frv/frv.h (LINK_SPEC): Likewise.
7826         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7827
7828 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7829
7830         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
7831         * config/frv/frv.h (ASM_SPEC): Likewise.
7832         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
7833         * config/m68k/linux.h (ASM_SPEC): Likewise.
7834         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7835         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
7836         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7837         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
7838         * config/sparc/linux.h (ASM_SPEC): Likewise.
7839         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7840         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7841         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
7842
7843 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
7844
7845         PR target/46997
7846         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
7847         (*mux2): Ditto.
7848         (vec_extract_evenodd_help): Ditto.
7849         (vec_extract_evenv4hi): Ditto.
7850         (vec_extract_oddv4hi): Ditto.
7851         (vec_interleave_lowv2si): Ditto.
7852         (vec_interleave_highv2si): Ditto.
7853         (vec_extract_evenv2si): Ditto.
7854         (vec_extract_oddv2si: Ditto.
7855         (vec_pack_trunc_v2si): Ditto.
7856
7857 2011-01-22  Jan Hubicka  <jh@suse.cz>
7858
7859         PR target/47237
7860         * cgraph.h (cgraph_local_info): New field can_change_signature.
7861         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
7862         signature can change.
7863         (ipcp_estimate_growth): Call sequence simplify only if calle signature
7864         can change.
7865         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
7866         (cgraph_function_versioning): We can not change signature of functions
7867         that don't allow that.
7868         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
7869         (lto_input_node): Likewise.
7870         * ipa-inline.c (compute_inline_parameters): Compute
7871         local.can_change_signature.
7872         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
7873         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
7874         functions that can not change signature.
7875         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
7876         init_cumulative_args): Do not use local calling conventions
7877         for functions that can not change signature.
7878
7879 2011-01-22  Jan Hubicka  <jh@suse.cz>
7880
7881         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
7882
7883 2011-01-26  Richard Guenther  <rguenther@suse.de>
7884
7885         PR tree-optimization/47190
7886         * cgraphunit.c (process_common_attributes): New function.
7887         (process_function_and_variable_attributes): Use it.
7888
7889 2011-01-26  Richard Guenther  <rguenther@suse.de>
7890
7891         PR lto/47423
7892         * cgraphbuild.c (record_eh_tables): Record reference to personality
7893         function.
7894
7895 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
7896
7897         PR debug/45454
7898         * sel-sched.c (moveup_expr): Don't let debug insns prevent
7899         non-debug insns from moving up.
7900
7901 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7902
7903         PR target/40125
7904         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
7905         t-dlldir{,-x} fragment for build and add it to tmake_file.
7906         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
7907         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
7908         * config/i386/t-dlldir: New file.
7909         (SHLIB_DLLDIR): Define.
7910         * config/i386/t-dlldir-x: New file.
7911         (SHLIB_DLLDIR): Define.
7912         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
7913         (SHLIB_INSTALL): Use it.
7914
7915 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
7916
7917         PR target/47246
7918         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
7919         lower bound of the allowed Thumb-2 coprocessor load/store
7920         index range to -256. Add explaining comment.
7921
7922 2011-01-25  Ian Lance Taylor  <iant@google.com>
7923
7924         * godump.c (go_define): Improve lexing of macro expansion to only
7925         accept expressions which match Go spec.
7926
7927 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7928
7929         PR c++/43601
7930         * tree.c (handle_dll_attribute): Handle it.
7931         * doc/extend.texi (@item dllexport): Mention it.
7932         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
7933
7934 2011-01-25  Ian Lance Taylor  <iant@google.com>
7935
7936         PR tree-optimization/26854
7937         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
7938         (decl_jump_unsafe): Move higher in file, with no other change.
7939         (bind): Set has_jump_unsafe_decl if appropriate.
7940         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
7941         (check_earlier_gotos): Likewise.
7942         (c_check_switch_jump_warnings): Likewise.
7943
7944 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
7945
7946         * doc/invoke.texi (Warning Options): Add missing hyphen.
7947         (-fprofile-dir): Minor grammatical fixes.
7948         (-fbranch-probabilities): Likewise.
7949
7950 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7951
7952         PR debug/45136
7953         PR debug/45130
7954         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7955         debug insns.
7956         (no_real_insns_p, schedule_block, set_priorities): Drop special
7957         treatment of boundary debug insns.
7958         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7959         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7960         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7961         (BOUNDARY_DEBUG_INSN_P): Likewise.
7962         (SCHEDULE_DEBUG_INSN_P): Likewise.
7963         * sched-rgn.c (init_ready_list): Drop special treatment of
7964         boundary debug insns.
7965         * final.c (rest_of_clean-state): Clear notes' BB.
7966
7967 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7968
7969         * Makefile.in (LAMBDA_H): Removed.
7970         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
7971         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
7972         lambda-trans.o, and tree-loop-linear.o.
7973         (lto-symtab.o): Remove dependence on LAMBDA_H.
7974         (tree-loop-linear.o): Remove rule.
7975         (lambda-mat.o): Same.
7976         (lambda-trans.o): Same.
7977         (lambda-code.o): Same.
7978         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
7979         (tree-vect-slp.o): Same.
7980         * hwint.h (gcd): Moved here.
7981         (least_common_multiple): Same.
7982         * lambda-code.c: Removed.
7983         * lambda-mat.c: Removed.
7984         * lambda-trans.c: Removed.
7985         * lambda.h: Removed.
7986         * tree-loop-linear.c: Removed.
7987         * lto-symtab.c: Do not include lambda.h.
7988         * omega.c (gcd): Removed.
7989         * passes.c (init_optimization_passes): Remove pass_linear_transform.
7990         * tree-data-ref.c (print_lambda_vector): Moved here.
7991         (lambda_vector_copy): Same.
7992         (lambda_matrix_copy): Same.
7993         (lambda_matrix_id): Same.
7994         (lambda_vector_first_nz): Same.
7995         (lambda_matrix_row_add): Same.
7996         (lambda_matrix_row_exchange): Same.
7997         (lambda_vector_mult_const): Same.
7998         (lambda_vector_negate): Same.
7999         (lambda_matrix_row_negate): Same.
8000         (lambda_vector_equal): Same.
8001         (lambda_matrix_right_hermite): Same.
8002         * tree-data-ref.h: Do not include lambda.h.
8003         (lambda_vector): Moved here.
8004         (lambda_matrix): Same.
8005         (dependence_level): Same.
8006         (lambda_transform_legal_p): Removed declaration.
8007         (lambda_collect_parameters): Same.
8008         (lambda_compute_access_matrices): Same.
8009         (lambda_vector_gcd): Same.
8010         (lambda_vector_new): Same.
8011         (lambda_vector_clear): Same.
8012         (lambda_vector_lexico_pos): Same.
8013         (lambda_vector_zerop): Same.
8014         (lambda_matrix_new): Same.
8015         * tree-flow.h (least_common_multiple): Removed declaration.
8016         * tree-parloops.c (lambda_trans_matrix): Moved here.
8017         (LTM_MATRIX): Same.
8018         (LTM_ROWSIZE): Same.
8019         (LTM_COLSIZE): Same.
8020         (LTM_DENOMINATOR): Same.
8021         (lambda_trans_matrix_new): Same.
8022         (lambda_matrix_vector_mult): Same.
8023         (lambda_transform_legal_p): Same.
8024         * tree-pass.h (pass_linear_transform): Removed declaration.
8025         * tree-ssa-loop.c (tree_linear_transform): Removed.
8026         (gate_tree_linear_transform): Removed.
8027         (pass_linear_transform): Removed.
8028         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
8029         flag_loop_interchange.
8030
8031 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8032
8033         PR tree-optimization/47265
8034         PR tree-optimization/47443
8035         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
8036         if name still has some uses.
8037
8038 2011-01-25  Martin Jambor  <mjambor@suse.cz>
8039
8040         PR tree-optimization/47382
8041         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
8042         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
8043
8044 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
8045
8046         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
8047         sjlj_except_unwind_info.
8048
8049 2011-01-25  Richard Guenther  <rguenther@suse.de>
8050
8051         PR tree-optimization/47426
8052         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
8053         visible functions results escape.
8054
8055 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8056
8057         PR target/45701
8058         * config/arm/arm.c (any_sibcall_uses_r3): New function.
8059         (arm_get_frame_offsets): Use it.
8060
8061 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8062             Jakub Jelinek  <jakub@redhat.com>
8063
8064         PR tree-optimization/47271
8065         * tree-if-conv.c (bb_postdominates_preds): New.
8066         (if_convertible_bb_p): Call bb_postdominates_preds.
8067         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
8068         (predicate_scalar_phi): Call bb_postdominates_preds.
8069
8070 2011-01-25  Nick Clifton  <nickc@redhat.com>
8071
8072         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
8073         * config/rx/rx.c (rx_function_value): Likewise.
8074         (rx_promote_function_mode): Likewise.
8075         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
8076         in order to make it legitimate.
8077         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
8078         make sure that the first operand is the same as the result register.
8079         (addsi3_unspec): Delete.
8080         (subdi3): Do not accept immediate operands.
8081         (subdi3_internal): Likewise.
8082
8083 2011-01-25  Jeff Law  <law@redhat.com>
8084
8085         PR rtl-optimization/37273
8086         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8087         handle them like argument loads from stack slots.  Do not double
8088         count memory for memory constants and argument loads from stack slots.
8089
8090 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8091
8092         PR tree-optimization/47427
8093         PR tree-optimization/47428
8094         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8095         coalesce if the new root var would be TREE_READONLY.
8096
8097 2011-01-25  Richard Guenther  <rguenther@suse.de>
8098
8099         PR middle-end/47414
8100         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
8101         correct type for TBAA.
8102
8103 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8104
8105         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
8106         (close_phi_written_to_memory): Call for_each_index with
8107         dr_indices_valid_in_loop.
8108
8109 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8110
8111         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
8112         when it is initialized.
8113
8114 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8115
8116         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
8117         call to graphite_find_data_references_in_stmt.
8118         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
8119         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
8120         call to graphite_find_data_references_in_stmt.
8121         (analyze_drs_in_stmts): Same.
8122         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
8123         in which the scalar analysis of indices is performed.
8124         (create_data_ref): Same.  Update call to dr_analyze_indices.
8125         (find_data_references_in_stmt): Update call to create_data_ref.
8126         (graphite_find_data_references_in_stmt): Same.
8127         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
8128         declaration.
8129         (create_data_ref): Same.
8130         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
8131         call to create_data_ref.
8132
8133 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8134
8135         * graphite-sese-to-poly.c (build_poly_scop): Move
8136         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
8137
8138 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8139
8140         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
8141         VAR_DECL, PARM_DECL, and RESULT_DECL.
8142
8143 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8144
8145         * graphite-dependences.c (reduction_dr_1): Allow several reductions
8146         in a reduction PBB.
8147         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
8148         that have already been marked as PBB_IS_REDUCTION.
8149
8150 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8151
8152         * graphite-scop-detection.c (same_close_phi_node): New.
8153         (remove_duplicate_close_phi): New.
8154         (make_close_phi_nodes_unique): New.
8155         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
8156
8157 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8158
8159         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
8160         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
8161         of both data references to be the same.
8162
8163 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8164
8165         * graphite-dependences.c (build_lexicographical_constraint): Remove
8166         the gdim parameter.
8167         (build_lexicographical_constraint): Adjust call to
8168         ppl_powerset_is_empty.
8169         (dependence_polyhedron): Same.
8170         (graphite_legal_transform_dr): Same.
8171         (graphite_carried_dependence_level_k): Same.
8172         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
8173         parameter.
8174         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
8175
8176 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8177
8178         * graphite-sese-to-poly.c
8179         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
8180         (close_phi_written_to_memory): New.
8181         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
8182         and unshare_expr.
8183
8184 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8185
8186         * doc/install.texi: Update the expected version number of PPL to 0.11.
8187         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8188         #if PPL_VERSION_MINOR < 11.
8189
8190 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8191
8192         * graphite-dependences.c: Include graphite-cloog-util.h.
8193         (new_poly_ddr): Inlined into dependence_polyhedron.
8194         (free_poly_ddr): Moved close by new_poly_ddr.
8195         (dependence_polyhedron_1): Renamed dependence_polyhedron.
8196         Early return NULL when ppl_powerset_is_empty returns true.
8197         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
8198         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
8199         (graphite_legal_transform_dr): Call new_poly_ddr.
8200         (graphite_carried_dependence_level_k): Same.
8201         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
8202         (dot_transformed_deps_stmt_1): Removed.
8203         (dot_deps_stmt_1): Call dot_deps_stmt_2.
8204         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
8205         (dot_deps_1): Call dot_deps_2.
8206         * Makefile.in (graphite-dependences.o): Add missing dependence on
8207         graphite-cloog-util.h.
8208
8209 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8210
8211         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8212         (build_lexicographical_constraint): Same.
8213         (dependence_polyhedron_1): Same.
8214         (graphite_legal_transform_dr): Same.
8215         (graphite_carried_dependence_level_k): Same.
8216         * graphite-ppl.c (ppl_powerset_is_empty): New.
8217         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8218         * tree-data-ref.c (dump_data_reference): Print the basic block index.
8219
8220 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8221
8222         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8223         the "a followed by b" relation and document it.
8224
8225 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8226
8227         * graphite-dependences.c (build_lexicographical_constraint): Stop the
8228         iteration when the bag of constraints is empty.
8229
8230 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8231
8232         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8233
8234 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8235
8236         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8237         nest and two loop depths as parameters.
8238         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8239         lst_perfect_nestify.
8240
8241 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8242
8243         * graphite-dependences.c (print_pddr): Call
8244         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8245
8246 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8247
8248         * graphite-ppl.c (debug_gmp_value): New.
8249         * graphite-ppl.h (debug_gmp_value): Declared.
8250
8251 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
8252
8253         * doc/install.texi: Document availability of cloog-0.16.
8254
8255 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
8256
8257         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
8258         invalid postdominance info.
8259
8260 2011-01-24  Jan Hubicka  <jh@suse.cz>
8261
8262         PR c/21659
8263         * doc/extend.texi (weak pragma): Drop claim that it must
8264         appear before definition.
8265         * varasm.c (merge_weak, declare_weak): Only sanity check
8266         that DECL is not output at a time it is declared weak.
8267
8268 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
8269
8270         * machmode.def: Fixed comments.
8271
8272 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
8273
8274         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
8275
8276 2011-01-24  Paul Koning  <ni1d@arrl.net>
8277
8278         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
8279         WORDS_BIG_ENDIAN.
8280
8281 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8282
8283         PR target/46519
8284         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
8285         (block_info): Add scanned and prev.
8286         (move_or_delete_vzeroupper_2): Return if the basic block
8287         has been scanned and the upper 128bit state is unchanged
8288         from the last scan.
8289         (move_or_delete_vzeroupper_1): Return true if the exit
8290         state is changed.
8291         (move_or_delete_vzeroupper): Visit basic blocks using the
8292         work-list based algorithm based on vt_find_locations in
8293         var-tracking.c.
8294
8295         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
8296
8297 2011-01-24  Nick Clifton  <nickc@redhat.com>
8298
8299         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
8300         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
8301         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
8302         then define __v850e1__.
8303         * doc/invoke.texi: Document -mv850es.
8304
8305 2011-01-24  Richard Henderson  <rth@redhat.com>
8306
8307         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
8308         compound unordered comparisons.
8309         * config/rx/rx.c (rx_split_fp_compare): Remove.
8310         * config/rx/rx-protos.h: Update.
8311         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
8312         (cbranchsf4): Don't call rx_split_fp_compare.
8313         (*cbranchsf4): Use rx_split_cbranch.
8314         (*cmpsf): Don't accept "i" constraint.
8315         (*conditional_branch): Only valid after reload.
8316         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
8317
8318 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8319
8320         PR target/47385
8321         * config/rs6000/altivec.md (vector constant splitters): Add
8322         support for creating vector single precision constants if -mvsx is
8323         used and we would create the constant using Altivec primitives.
8324
8325 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
8326             Richard Sandiford  <rdsandiford@googlemail.com>
8327
8328         PR rtl-optimization/47166
8329         * reload1.c (emit_reload_insns): Disable the spill_reg_store
8330         mechanism for PRE_MODIFY and POST_MODIFY.
8331         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
8332         reloadreg.
8333
8334 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
8335
8336         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
8337
8338 2011-01-22  Jan Hubicka  <jh@suse.cz>
8339
8340         PR lto/47333
8341         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
8342
8343 2011-01-22  Jan Hubicka  <jh@suse.cz>
8344
8345         PR tree-optimization/43884
8346         PR lto/44334
8347         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
8348         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
8349
8350 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
8351
8352         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8353         * config/s390/s390.c (s390_register_move_cost,
8354         s390_memory_move_cost): New.
8355         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8356
8357 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8358
8359         PR middle-end/47401
8360         * except.c (sjlj_assign_call_site_values): Move setting the
8361         crtl->uses_eh_lsda flag to ...
8362         (sjlj_mark_call_sites): ... here.
8363         (sjlj_emit_function_enter): Support NULL dispatch label.
8364         (sjlj_build_landing_pads): In a function with no landing pads
8365         that still has must-not-throw regions, generate code to register
8366         a personality function with empty LSDA.
8367
8368 2011-01-21  Richard Henderson  <rth@redhat.com>
8369
8370         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
8371
8372         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
8373
8374         * compare-elim.c: New file.
8375         * Makefile.in (OBJS-common): Add it.
8376         (compare-elim.o): New.
8377         * common.opt (fcompare-elim): New.
8378         * opts.c (default_options_table): Add OPT_fcompare_elim.
8379         * tree-pass.h (pass_compare_elim_after_reload): New.
8380         * passes.c (init_optimization_passes): Add it.
8381         * recog.h: Protect against re-inclusion.
8382         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
8383         * doc/invoke.texi (-fcompare-elim): Document it.
8384         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
8385         * doc/tm.texi: Rebuild.
8386
8387 2011-01-22  Nick Clifton  <nickc@redhat.com>
8388
8389         * config/rx/rx.md (cstoresf4): Pass comparison operator to
8390         rx_split_fp_compare.
8391
8392 2011-01-22  Nick Clifton  <nickc@redhat.com>
8393
8394         * config/rx/rx.md (UNSPEC_CONST): New.
8395         (deallocate_and_return): Wrap the amount popped off the stack in
8396         an UNSPEC_CONST in order to stop it being rejected by
8397         -mmax-constant-size.
8398         (pop_and_return): Add a "(return)" rtx.
8399         (call): Drop the immediate operand.
8400         (call_internal): Likewise.
8401         (call_value): Likewise.
8402         (call_value_internal): Likewise.
8403         (sibcall_internal): Likewise.
8404         (sibcall_value_internal): Likewise.
8405         (sibcall): Likewise.  Generate an explicit call using
8406         sibcall_internal.
8407         (sibcall_value): Likewise.
8408         (mov<>): FAIL if a constant operand is not legitimate.
8409         (addsi3_unpsec): New pattern.
8410
8411         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
8412         (ok_for_max_constant): New function.
8413         (gen_safe_add): New function.
8414         (rx_expand_prologue): Use gen_safe_add.
8415         (rx_expand_epilogue): Likewise.
8416         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
8417         UNSPEC CONSTs.
8418
8419 2011-01-21  Jeff Law  <law@redhat.com>
8420
8421         PR tree-optimization/47053
8422         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
8423         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
8424         statements are deleted.
8425         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
8426         is nonempty, then purge dead edges and cleanup the CFG.
8427
8428 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8429
8430         PR debug/47402
8431         Temporarily revert:
8432         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8433         PR debug/47106
8434         * tree-dfa.c (create_var_ann): Mark variable as used.
8435
8436 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8437
8438         PR middle-end/45566
8439         * except.c (convert_to_eh_region_ranges): Emit queued no-region
8440         notes from other section in hot/cold partitioning even if
8441         last_action is -3.  Increment call_site_base.
8442
8443         PR rtl-optimization/47366
8444         * fwprop.c (forward_propagate_into): Return bool.  If
8445         any changes are made, -fnon-call-exceptions is used and
8446         REG_EH_REGION note is present, call purge_dead_edges
8447         and return true if it purged anything.
8448         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
8449         any EH edges were purged.
8450
8451 2011-01-21  Jeff Law  <law@redhat.com>
8452
8453         PR rtl-optimization/41619
8454         * caller-save.c (setup_save_areas): Break out code to determine
8455         which hard regs are live across calls by examining the reload chains
8456         so that it is always used.
8457         Eliminate code which checked REG_N_CALLS_CROSSED.
8458
8459 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8460
8461         PR tree-optimization/47355
8462         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
8463         NOP has non-debug uses beyond PHIs in new_bb.
8464
8465 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8466
8467         PR debug/47106
8468         * cfgexpand.c (account_used_vars_for_block): Only account vars
8469         that are annotated as used.
8470         (estimated_stack_frame_size): Don't set TREE_USED.
8471         * tree-dfa.c (create_var_ann): Mark variable as used.
8472
8473 2011-01-21  Richard Guenther  <rguenther@suse.de>
8474
8475         PR middle-end/47395
8476         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
8477
8478 2011-01-21  Richard Guenther  <rguenther@suse.de>
8479
8480         PR tree-optimization/47365
8481         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
8482         (vn_reference_lookup_pieces): Adjust.
8483         (vn_reference_lookup): Likewise.
8484         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
8485         (vn_reference_lookup_3): Only look through kills if in
8486         VN_WALKREWRITE mode.
8487         (vn_reference_lookup_pieces): Adjust.
8488         (vn_reference_lookup): Likewise.
8489         (visit_reference_op_load): Likewise.
8490         (visit_reference_op_store): Likewise.
8491         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
8492         (compute_avail): Likewise.
8493         (eliminate): Likewise.
8494
8495 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8496
8497         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
8498         DECL_IGNORED_P non-reg vars if they are used.
8499
8500         PR tree-optimization/47391
8501         * varpool.c (const_value_known_p): Return false if
8502         decl is volatile.
8503
8504 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
8505
8506         PR bootstrap/47215
8507         * config/i386/i386.c (ix86_local_alignment): Handle
8508         case for va_list_type_node is nil.
8509         (ix86_canonical_va_list_type): Likewise.
8510
8511 2011-01-21  Alan Modra  <amodra@gmail.com>
8512
8513         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
8514         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
8515
8516 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8517
8518         * config/arm/arm.md (define_attr type): Rename f_load
8519         and f_store to f_fpa_load and f_fpa_store. Update.
8520         (write_conflict): Deal with rename fallout.
8521         (*push_fp_multi): Likewise.
8522         * config/arm/fpa.md (f_load): Use f_fpa_load.
8523         (f_store): Use f_fpa_store.
8524         (*movsf_fpa): Likewise.
8525         (*movdf_fpa): Likewise.
8526         (*movxf_fpa): Likewise.
8527         (*thumb2_movsf_fpa): Likewise.
8528         (*thumb2_movdf_fpa): Likewise.
8529         (*thumb2_movxf_fpa): Likewise.
8530         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
8531         f_loadd and f_stored.
8532         (*thumb2_movdi_vfp): Likewise.
8533         (*thumb2_movsf_vfp): Fix attribute to f_loads.
8534         (*thumb2_movsi_vfp): Likewise.
8535         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
8536         Use f_loads instead of f_load.
8537         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
8538
8539 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
8540
8541         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8542         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
8543         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8544         (xtensa_mode_dependent_address_p): New function.
8545         (constantpool_address_p): Make static. Change return type to bool.
8546         Change argument type to const_rtx. Use CONST_INT_P predicate.
8547
8548 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
8549
8550         PR debug/46583
8551         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
8552
8553 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8554
8555         PR debug/47283
8556         * cfgexpand.c (expand_debug_expr): Instead of generating
8557         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
8558         etc. handling.
8559
8560 2011-01-20  Richard Guenther  <rguenther@suse.de>
8561
8562         PR middle-end/47370
8563         * tree-inline.c (remap_gimple_op_r): Recurse manually for
8564         the pointer operand of MEM_REFs.
8565
8566 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8567
8568         PR tree-optimization/46130
8569         * ipa-split.c (consider_split): If return_bb contains non-virtual
8570         PHIs other than for retval or if split_function would not adjust it,
8571         refuse to split.
8572
8573 2011-01-20  Richard Guenther  <rguenther@suse.de>
8574
8575         PR tree-optimization/47167
8576         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
8577         Revert previous change, only avoid enumeral type changes.
8578
8579 2011-01-19  Mike Stump  <mikestump@comcast.net>
8580
8581         * doc/tm.texi.in (BRANCH_COST): Englishify.
8582         * doc/tm.texi (BRANCH_COST): Likewise.
8583
8584 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
8585
8586         PR c++/47291
8587         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
8588         (gen_scheduled_generic_parms_dies): New functions.
8589         (gen_struct_or_union_type_die): Schedule template parameters DIEs
8590         generation for the end of CU compilation.
8591         (dwarf2out_finish): Generate template parameters DIEs here.
8592
8593 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8594
8595         PR debug/46240
8596         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
8597         debug bind stmt on merge edges.
8598
8599 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8600
8601         PR debug/47079
8602         PR debug/46724
8603         * function.c (instantiate_expr): Instantiate incoming rtl of
8604         implicit arguments, and recurse on VALUE_EXPRs.
8605         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
8606         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
8607
8608 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8609
8610         * c-parser.c (c_parser_for_statement): Initialize
8611         collection_expression.
8612
8613 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8614
8615         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
8616
8617 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8618
8619         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
8620         (LINK_SHLIB_SPEC): Don't use %(link_path).
8621         (SUBTARGET_EXTRA_SPECS): Remove link_path.
8622
8623 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8624
8625         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
8626         (NO_SHARED_LIB_SUPPORT): Remove.
8627         (LINK_SHLIB_SPEC): Remove one conditional definition.
8628
8629 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8630
8631         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
8632         %{call_shared}.
8633         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
8634         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
8635         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
8636         %{call_shared} and conditionals on these options not being passed.
8637         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
8638         %{call_shared}.
8639
8640 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8641
8642         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
8643         simplify.
8644
8645         * ipa-split.c: Spelling fixes.
8646
8647 2011-01-19  Richard Henderson  <rth@redhat.com>
8648
8649         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
8650         (*mulsi3): Likewise.
8651
8652         * longlong.h [__mn10300__] (count_leading_zeros): New.
8653         [__mn10300__] (umul_ppmm, smul_ppmm): New.
8654         [__mn10300__] (add_ssaaaa, subddmmss): New.
8655         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
8656         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
8657
8658 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8659
8660         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
8661
8662 2011-01-19  Richard Henderson  <rth@redhat.com>
8663
8664         * config/mn10300/mn10300.md (addsi3_flags): New.
8665         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
8666         (subsi3_flags, subc_internal, subdi3): New.
8667         (subdi3_internal, *subdi3_degenerate): New.
8668         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
8669
8670         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
8671         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
8672         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
8673         * config/mn10300/mn10300-protos.h: Update.
8674         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
8675         (return_ret): Likewise.  Rename from return_internal_regs.
8676         (return_internal): Remove.
8677
8678         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
8679         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
8680         (mn10300_legitimate_constant_p): Likewise.
8681         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
8682         (mn10300_frame_size): New.
8683         (mn10300_expand_prologue): Use it.
8684         (mn10300_expand_epilogue): Likewise.
8685         (mn10300_initial_offset): Likewise.
8686         * config/mn10300/mn10300-protos.h: Update.
8687         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
8688         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
8689         (prologue, epilogue, return_internal): Tidy output code.
8690         (mn10300_store_multiple_operation, return): Likewise.
8691         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
8692         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
8693         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
8694         (load_pic, am33_load_pic): New.
8695         (mn10300_load_pic0, mn10300_load_pic1): New.
8696
8697         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
8698         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
8699         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
8700         (cc_flags_for_mode, cc_flags_for_code): New.
8701         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
8702         overflow flag is not valid.  Validate that the flags we need
8703         for the comparison are valid.
8704         (mn10300_output_cmp): Remove.
8705         (mn10300_output_add): New.
8706         (mn10300_select_cc_mode): Use cc_flags_for_code.
8707         (mn10300_split_cbranch): New.
8708         (mn10300_match_ccmode): New.
8709         (mn10300_split_and_operand_count): New.
8710         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
8711         to the function.
8712         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
8713         (addsi3): ... here.  Use mn10300_output_add.
8714         (*addsi3_flags): New.
8715         (*am33_subsi3, *mn10300_subsi3): Merge...
8716         (subsi3): ... here.  Use attribute isa.
8717         (*subsi3_flags): New.
8718         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
8719         when possible.
8720         (*am33_andsi3, *mn10300_andsi3): Merge...
8721         (andsi3): ... here.
8722         (*andsi3_flags): New.
8723         (andsi3 splitters): New.
8724         (*am33_iorsi3, *mn10300_iorsi3): Merge...
8725         (iorsi3): ... here.
8726         (*iorsi3_flags): New.
8727         (*am33_xorsi3, *mn10300_xorsi3): Merge...
8728         (xorsi3): ... here.
8729         (*xorsi3_flags): New.
8730         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
8731         (one_cmplsi2): ... here.
8732         (*one_cmplsi2_flags): New.
8733         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
8734         instead of "dax" in constraints.  Use mn10300_split_cbranch.
8735         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
8736         use matching constraints to eliminate a self-comparison.
8737         (*integer_conditional_branch): Rename from integer_conditional_branch.
8738         Use int_mode_flags to match CC_REG.
8739         (*cbranchsi4_btst, *btstsi): New.
8740         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
8741         mn10300_split_cbranch.
8742         (*am33_cmpsf): Rename from am33_cmpsf.
8743         (*float_conditional_branch): Rename from float_conditional_branch.
8744         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
8745         (zero_extendqisi2): ... here.
8746         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
8747         (zero_extendhisi2): ... here.
8748         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
8749         (extendqisi2): ... here.
8750         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
8751         (extendhisi2): ... here.
8752         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
8753         (ashlsi3): ... here.
8754         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
8755         (lshrsi3): ... here.
8756         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
8757         (ashrsi3): ... here.
8758         (consecutive add peephole): Remove.
8759         * config/mn10300/predicates.md (label_ref_operand): New.
8760         (int_mode_flags): New.
8761         (CCZN_comparison_operator): New.
8762
8763         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
8764         (throughput_42_latency_43): New reservation.
8765         (mulsidi3, umulsidi3): New expanders.
8766         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
8767         the MDR register to allocation; separately allocate the low and
8768         high parts of the DImode result.
8769         (umulsidi3_internal): Similarly.
8770         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
8771         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
8772         (udivsi3, umodsi3): Remove.
8773         (udivmodsi4, divmodsi4): New expanders.
8774         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
8775         (*divmodsi4): Simiarly.
8776         (ext_internal): New.
8777
8778         * config/mn10300/constraints.md ("z"): New constraint.
8779         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
8780         (FIXED_REGISTERS): Don't fix MDR.
8781         (CALL_USED_REGSITERS): Reformat nicely.
8782         (REG_ALLOC_ORDER): Add MDR.
8783         (enum regclass): Add MDR_REGS.
8784         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
8785         (IRA_COVER_CLASSES): Add MDR_REGS.
8786         (REGNO_REG_CLASS): Handle MDR_REG.
8787         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
8788         (mn10300_register_move_cost): Likewise.
8789         * config/mn10300/mn10300.md (MDR_REG): New.
8790         (*movsi_internal): Handle moves to/from MDR_REGS.
8791
8792         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
8793         POST_MODIFY.
8794         (mn10300_secondary_reload): Tidy combination reload classes.
8795         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
8796         addresses for AM33.  Allow symbolic offsets for reg+imm.
8797         (mn10300_regno_in_class_p): New.
8798         (mn10300_legitimize_reload_address): New.
8799         * config/mn10300/mn10300.h (enum reg_class): Remove
8800         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
8801         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
8802         SP_OR_GENERAL_REGS.
8803         (REG_CLASS_NAMES): Update to match.
8804         (REG_CLASS_CONTENTS): Likewise.
8805         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
8806         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
8807         (REGNO_IN_RANGE_P): Remove.
8808         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
8809         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
8810         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
8811         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
8812         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
8813         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
8814         (REGNO_GENERAL_P): New.
8815         (HAVE_POST_MODIFY_DISP): New.
8816         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
8817         (LEGITIMIZE_RELOAD_ADDRESS): New.
8818         * config/mn10300/mn10300-protos.h: Update.
8819
8820         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
8821         DATA_REGS for AM33 stack-pointer destination.
8822         (mn10300_preferred_output_reload_class): Likewise.
8823         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
8824         into a form appropriate for ...
8825         (TARGET_SECONDARY_RELOAD): New.
8826         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
8827         * config/mn10300/mn10300-protos.h: Update.
8828         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
8829         reload_insi; use the "A" constraint for the scratch; handle AM33
8830         moves of sp to non-address registers.
8831
8832         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
8833         (*movqi_internal): ... here.
8834         (*am33_movhi, *mn10300_movhi): Merge into...
8835         (*movhi_internal): ... here.
8836         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
8837         as the source/destination of moves from/to SP.
8838         (movsf): Only allow for AM33-2.
8839         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
8840         any integer constant constraint.  Only allow for AM33-2.  Tidy
8841         all of the alternative outputs.
8842         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
8843         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
8844         for MN103.
8845         (udivsi3, umodsi3): New patterns for MN103 only.
8846
8847 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
8848
8849         * doc/tm.texi.in: Spell out that a lack of register class unions
8850         can lead to ICEs.
8851         * doc/tm.texi: Regenerate.
8852
8853 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8854
8855         PR rtl-optimization/47337
8856         * dce.c (check_argument_store): New function.
8857         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
8858
8859         PR tree-optimization/47290
8860         * tree-eh.c (infinite_empty_loop_p): New function.
8861         (cleanup_empty_eh): Use it.
8862
8863 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
8864
8865         PR target/46997
8866         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
8867         (a64_expand_widen_sum): Ditto.
8868         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
8869         (vec_extract_evenodd_help): Ditto.
8870         (vec_extract_evenv4hi): Ditto.
8871         (vec_extract_oddv4hi): Ditto.
8872         (vec_extract_evenv2si): Ditto.
8873         (vec_extract_oddv2si): Ditto.
8874         (vec_extract_evenv2sf): Ditto.
8875         (vec_extract_oddv2sf): Ditto.
8876         (vec_pack_trunc_v4hi: Ditto.
8877         (vec_pack_trunc_v2si): Ditto.
8878         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
8879         (vec_interleave_highv8qi): Ditto.
8880         (mix1_r): Ditto.
8881         (vec_extract_oddv8qi): Ditto.
8882         (vec_interleave_lowv4hi): Ditto.
8883         (vec_interleave_highv4hi): Ditto.
8884         (vec_interleave_lowv2si): Ditto.
8885         (vec_interleave_highv2si): Ditto.
8886
8887 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8888
8889         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
8890         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
8891         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
8892         (pa_c_mode_for_suffix): New.
8893         (TARGET_EXPAND_BUILTIN): Define.
8894         (TARGET_C_MODE_FOR_SUFFIX): Define.
8895         (pa_builtins): Define.
8896         (pa_init_builtins): Register __float128 type and init new support
8897         builtins.
8898         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
8899         * config/pa/quadlib.c (_U_Qfcopysign): New.
8900
8901 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
8902
8903         PR middle-end/46894
8904         * explow.c (allocate_dynamic_stack_space): Do not assume more than
8905         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
8906         are defined.
8907
8908 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8909
8910         PR tree-optimization/47179
8911         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
8912         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
8913
8914 2011-01-18  Richard Guenther  <rguenther@suse.de>
8915
8916         PR rtl-optimization/47216
8917         * emit-rtl.c: Include tree-flow.h.
8918         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
8919         of replicating it with different semantics.
8920         * Makefile.in (emit-rtl.o): Adjust.
8921
8922 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8923
8924         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
8925         (cortex_a9_dp): Handle neon types correctly.
8926
8927 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
8928
8929         PR rtl-optimization/47299
8930         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
8931         subtarget.  Use normal multiplication if both operands are constants.
8932         * expmed.c (expand_widening_mult): Don't try to optimize constant
8933         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
8934         before using it.
8935
8936 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8937
8938         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
8939         spacing after 'e.g.', typos, comma, hyphenation.
8940
8941 2011-01-17  Richard Henderson  <rth@redhat.com>
8942
8943         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
8944         (rx_restricted_mem_operand): New.
8945         (rx_shift_operand): Use register_operand.
8946         (rx_source_operand, rx_compare_operand): Likewise.
8947         * config/rx/rx.md (addsi3_flags): New expander.
8948         (adddi3): Rewrite as expander.
8949         (adc_internal, *adc_flags, adddi3_internal): New patterns.
8950         (subsi3_flags): New expander.
8951         (subdi3): Rewrite as expander.
8952         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
8953
8954         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
8955         (rx_init_builtins): Remove sat builtin.
8956         (rx_expand_builtin): Likewise.
8957         * config/rx/rx.md (ssaddsi3): New.
8958         (*sat): Rename from sat.  Represent the CC_REG input.
8959
8960         * config/rx/predicates.md (rshift_operator): New.
8961         * config/rx/rx.c (rx_expand_insv): Remove.
8962         * config/rx/rx-protos.h: Update.
8963         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
8964         operand to the canonical position.
8965         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
8966         (*bitclr, *bitclr_in_memory): Similarly.
8967         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
8968         (insv): Retain the zero_extract in the expansion.
8969
8970         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
8971         (bswaphi2, bitinvert, revw): Likewise.
8972
8973         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
8974         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
8975         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
8976         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
8977         (bitset, bitset_in_memory): Likewise.
8978         (bitinvert, bitinvert_in_memory): Likewise.
8979         (bitclr, bitclr_in_memory): Likewise.
8980         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
8981         (rx_strend, rx_cmpstrn): Likewise.
8982         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
8983         (bitop peep2 patterns): Remove.
8984
8985         * config/rx/rx.c (rx_match_ccmode): New.
8986         * config/rx/rx-protos.h: Update.
8987         * config/rx/rx.md (abssi2): Clobber, don't set flags.
8988         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
8989         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
8990         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
8991         (fix_truncsfsi2, floatsisf2): Likewise.
8992         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
8993         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
8994         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
8995         (*subsi3_flags, *xorsi3_flags): New.
8996
8997         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
8998
8999         * config/rx/rx.c (rx_print_operand): Remove workaround for
9000         unsplit comparison operations.
9001
9002         * config/rx/rx.md (movsicc): Split after reload.
9003         (*movsicc): Merge *movsieq and *movsine via match_operator.
9004         (*stcc): New pattern.
9005
9006         * config/rx/rx.c (rx_float_compare_mode): Remove.
9007         * config/rx/rx.h (rx_float_compare_mode): Remove.
9008         * config/rx/rx.md (cstoresi4): Split after reload.
9009         (*sccc): New pattern.
9010
9011         * config/rx/predicates.md (label_ref_operand): New.
9012         (rx_z_comparison_operator): New.
9013         (rx_zs_comparison_operator): New.
9014         (rx_fp_comparison_operator): New.
9015         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
9016         Validate that the flags are set properly for the comparison.
9017         (rx_gen_cond_branch_template): Remove.
9018         (rx_cc_modes_compatible): Remove.
9019         (mode_from_flags): New.
9020         (flags_from_code): Rename from flags_needed_for_conditional.
9021         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
9022         (rx_select_cc_mode): Likewise.
9023         (rx_split_fp_compare): New.
9024         (rx_split_cbranch): New.
9025         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
9026         (*cbranchsi4): Use match_operator and rx_split_cbranch.
9027         (*cbranchsf4): Similarly.
9028         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
9029         match_operator and rx_split_cbranch.
9030         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
9031         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
9032         (*cmpsi): Rename from cmpsi.
9033         (*tstsi): Rename from tstsi.
9034         (*cmpsf): Rename from cmpsf; use CC_Fmode.
9035         (*conditional_branch): Rename from conditional_branch.
9036         (*reveresed_conditional_branch): Remove.
9037         (b<code>): Remove expander.
9038         * config/rx/rx-protos.h: Update.
9039
9040         * config/rx/rx.c (rx_compare_redundant): Remove.
9041         * config/rx/rx.md (cmpsi): Don't use it.
9042         * config/rx/rx-protos.h: Update.
9043
9044         * config/rx/rx-modes.def (CC_F): New mode.
9045         * config/rx/rx.c (rx_select_cc_mode): New.
9046         * config/rx/rx.h (SELECT_CC_MODE): Use it.
9047         * config/rx/rx-protos.h: Update.
9048
9049 2011-01-17  Richard Henderson  <rth@redhat.com>
9050
9051         * except.c (dump_eh_tree): Fix stray ; after for statement.
9052
9053 2011-01-17  Richard Guenther  <rguenther@suse.de>
9054
9055         PR tree-optimization/47313
9056         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
9057         handling before copying the body.  Properly deal with
9058         by-reference result in SSA form.
9059
9060 2011-01-17  Ian Lance Taylor  <iant@google.com>
9061
9062         PR target/47219
9063         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
9064         (struct_value_alias_set): Don't define.
9065         (sparc_option_override): Don't set sparc_sr_alias_set and
9066         struct_value_alias_set.
9067         (save_or_restore_regs): Use gen_frame_mem rather than calling
9068         set_mem_alias_set.
9069         (sparc_struct_value_rtx): Likewise.
9070
9071 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9072
9073         PR target/47318
9074         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
9075         (_mm_maskstore_pd): Likewise.
9076         (_mm_maskload_ps): Likewise.
9077         (_mm_maskstore_ps): Likewise.
9078         (_mm256_maskload_pd): Change mask to __m256i.
9079         (_mm256_maskstore_pd): Likewise.
9080         (_mm256_maskload_ps): Likewise.
9081         (_mm256_maskstore_ps): Likewise.
9082
9083         * config/i386/i386-builtin-types.def: Updated.
9084         (ix86_expand_special_args_builtin): Likewise.
9085
9086         * config/i386/i386.c (bdesc_special_args): Update
9087         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
9088         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
9089         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
9090         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
9091
9092         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
9093         Use <avxpermvecmode> on mask register.
9094         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
9095
9096 2011-01-17  Olivier Hainque  <hainque@adacore.com>
9097             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
9098             Eric Botcazou  <ebotcazou@adacore.com>
9099
9100         PR target/46655
9101         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
9102         if <= USHRT_MAX in 32-bit mode.
9103
9104 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9105
9106         * doc/install.texi (Configuration, Specific): Wrap long
9107         lines in examples.  Allow line wrapping in long options
9108         and URLs where beneficial for PDF output.
9109
9110 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
9111
9112         * config/mips/mips.c (mips_classify_symbol): Don't return
9113         SYMBOL_PC_RELATIVE for nonlocal labels.
9114
9115 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9116
9117         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
9118
9119 2011-01-15  Jan Hubicka  <jh@suse.cz>
9120
9121         PR tree-optimization/47276
9122         * ipa.c (function_and_variable_visibility): Do not try to mark alias
9123         declarations as needed.
9124
9125 2011-01-15  Martin Jambor  <mjambor@suse.cz>
9126
9127         * common.opt (fdevirtualize): New flag.
9128         * doc/invoke.texi (Option Summary): Document it.
9129         * opts.c (default_options_table): Add devirtualize flag.
9130         * ipa-prop.c (detect_type_change): Return immediately if
9131         devirtualize flag is not set.
9132         (detect_type_change_ssa): Likewise.
9133         (compute_known_type_jump_func): Likewise.
9134         (ipa_analyze_virtual_call_uses): Likewise.
9135
9136 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9137
9138         PR tree-optimization/45934
9139         PR tree-optimization/46302
9140         * ipa-prop.c (type_change_info): New type.
9141         (stmt_may_be_vtbl_ptr_store): New function.
9142         (check_stmt_for_type_change): Likewise.
9143         (detect_type_change): Likewise.
9144         (detect_type_change_ssa): Likewise.
9145         (compute_complex_assign_jump_func): Check for dynamic type change.
9146         (compute_complex_ancestor_jump_func): Likewise.
9147         (compute_known_type_jump_func): Likewise.
9148         (compute_scalar_jump_functions): Likewise.
9149         (ipa_analyze_virtual_call_uses): Likewise.
9150         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
9151
9152 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9153
9154         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
9155         * config/i386/i386.opt (msse5): New Alias.
9156
9157 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9158
9159         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9160         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9161         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9162         * config/sparc/sparc.h (CC1_SPEC): Likewise.
9163
9164 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9165
9166         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
9167         -mcpu options.
9168         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9169         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9170         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
9171         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
9172         Likewise.
9173         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
9174
9175 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9176
9177         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
9178
9179 2011-01-14  Mike Stump  <mikestump@comcast.net>
9180
9181         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
9182         * config/fr30/fr30.md: Likweise
9183         (movsi_push): Likewise.
9184         (movsi_pop): Likewise.
9185         (enter_func): Likewise.
9186         * config/moxie/moxie.md (movsi_push): Likewise.
9187         (movsi_pop): Likewise.
9188
9189 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9190
9191         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9192         %{no_archive} %{exact_version}.
9193         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9194         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9195         %{no_archive} %{exact_version}.
9196         * config/mips/openbsd.h (LINK_SPEC): Likewise.
9197         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9198         * config/mips/vxworks.h: Likewise.
9199
9200 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9201
9202         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9203
9204 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9205
9206         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9207         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9208
9209 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9210
9211         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9212         -nodefaultlib.
9213
9214 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9215
9216         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9217         for mcpu not cpu.
9218         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9219         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9220         not cpu.
9221         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9222         Don't handle -shlib.
9223
9224 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9225
9226         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9227         (CC1_SPEC): Don't handle -profile.
9228
9229 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9230
9231         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9232         * config/mips/mips.h (CC1_SPEC): Likewise.
9233
9234 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9235
9236         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9237         * config/mips/mips.h (CC1_SPEC): Likewise.
9238
9239 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9240
9241         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9242         * config/m32r/linux.h (LINK_SPEC): Likewise.
9243         * config/mips/linux.h (LINK_SPEC): Likewise.
9244         * config/mips/linux64.h (LINK_SPEC): Likewise.
9245         * config/sparc/linux.h (LINK_SPEC): Likewise.
9246         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9247         LINK_SPEC): Likewise.
9248         * config/xtensa/linux.h (LINK_SPEC): Likewise.
9249
9250 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9251
9252         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9253         %{version:-v}.
9254         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
9255
9256 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9257
9258         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
9259         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9260
9261 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9262
9263         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
9264
9265 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9266
9267         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
9268         supports -Bstatic/-Bdynamic.
9269         * configure: Regenerate.
9270
9271 2011-01-14  Jan Hubicka  <jh@suse.cz>
9272             Jack Howarth  <howarth@bromo.med.uc.edu>
9273
9274         PR target/46037
9275         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
9276         when checking debug_info_level. Test write_symbols instead of
9277         debug_hooks->var_location when setting flag_var_tracking_uninit.
9278
9279 2011-01-14  Richard Guenther  <rguenther@suse.de>
9280
9281         PR tree-optimization/47179
9282         * target.def (ref_may_alias_errno): New target hook.
9283         * targhooks.h (default_ref_may_alias_errno): Declare.
9284         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
9285         (default_ref_may_alias_errno): New function.
9286         * target.h (struct ao_ref_s): Declare.
9287         * tree-ssa-alias.c: Include target.h.
9288         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
9289         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
9290         (targhooks.o): Likewise.
9291         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
9292         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
9293
9294 2011-01-14  Richard Guenther  <rguenther@suse.de>
9295
9296         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
9297
9298 2011-01-14  Richard Guenther  <rguenther@suse.de>
9299
9300         PR tree-optimization/47280
9301         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
9302         return CFG changes.
9303         (tree_ssa_forward_propagate_single_use_vars): Deal with
9304         CFG changes from associate_plusminus.
9305
9306 2011-01-14  Richard Guenther  <rguenther@suse.de>
9307
9308         PR middle-end/47281
9309         Revert
9310         2011-01-11  Richard Guenther  <rguenther@suse.de>
9311
9312         PR tree-optimization/46076
9313         * tree-ssa.c (useless_type_conversion_p): Conversions from
9314         unprototyped to empty argument list function types are useless.
9315
9316 2011-01-14  Richard Guenther  <rguenther@suse.de>
9317
9318         PR tree-optimization/47286
9319         * tree-ssa-structalias.c (new_var_info): Register variables are global.
9320
9321 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9322
9323         PR middle-end/46823
9324         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
9325
9326 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
9327
9328         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
9329         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9330         * config/xtensa/xtensa.c (xtensa_libcall_value,
9331         xtensa_function_value_regno_p): New functions.
9332         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9333
9334 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
9335
9336         PR c++/47213
9337         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
9338         PE specific hook.
9339         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
9340         New function prototype.
9341         * config/i386/winnt.c (i386_pe_assemble_visibility):
9342         Warn only if attribute was specified by user.
9343
9344 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9345
9346         PR target/47251
9347         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
9348         floating point.
9349         (floatunsdidf2_fcfidu): Ditto.
9350
9351 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9352
9353         * config/s390/s390.c (print_operand_address): Replace 'error' with
9354         'output_operand_lossage'.
9355         (print_operand): Likewise.
9356
9357 2011-01-13  Jeff Law  <law@redhat.com>
9358
9359         PR rtl-optimization/39077
9360         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
9361         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
9362         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
9363         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
9364         * gcse.c (prune_insertions_deletions): New function.
9365         (compute_pre_data): Use it.
9366
9367 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
9368
9369         PR debug/PR46973
9370         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
9371         static function.
9372         (prune_unused_types_mark): Use it.
9373
9374 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
9375
9376         PR rtl-optimization/45352
9377         * sel-sched.c: Update copyright years.
9378         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
9379         in the advancing loop when we have issued issue_rate insns.
9380
9381 2011-01-12  Richard Henderson  <rth@redhat.com>
9382
9383         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
9384         (TARGET_MD_ASM_CLOBBERS): New.
9385
9386         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
9387         (TARGET_DELEGITIMIZE_ADDRESS): New.
9388
9389         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
9390         (clzsi2, *bsch): New patterns.
9391
9392         * config/mn10300/mn10300.md (INT): New mode iterator.
9393         (*mov<INT>_clr): New pattern, and peep2 to generate it.
9394
9395         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
9396         flag_split_wide_types.
9397
9398         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
9399         (mn10300_trampoline_init): Rewrite without a template, an immediate
9400         load and a direct branch.
9401         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
9402
9403 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
9404
9405         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9406         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
9407         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
9408         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9409
9410 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
9411
9412         PR debug/47209
9413         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
9414         of type.
9415
9416 2011-01-12  Jan Hubicka  <jh@suse.cz>
9417
9418         PR driver/47244
9419         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
9420         (PLUGIN_COND_CLOSE): New macro.
9421         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
9422
9423 2011-01-12  Richard Guenther  <rguenther@suse.de>
9424
9425         PR lto/47259
9426         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
9427         register variables in a MEM_REF.
9428
9429 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
9430
9431         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
9432         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
9433         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
9434         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9435         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9436         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
9437         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
9438         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
9439         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
9440         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
9441         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
9442         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
9443         * config/gnu-user.h: New.  Copied from linux.h.
9444         (LINUX_TARGET_STARTFILE_SPEC): Rename to
9445         GNU_USER_TARGET_STARTFILE_SPEC.
9446         (LINUX_TARGET_ENDFILE_SPEC): Rename to
9447         GNU_USER_TARGET_ENDFILE_SPEC.
9448         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
9449         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
9450         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
9451         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
9452         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
9453         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9454         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
9455         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
9456         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
9457         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
9458         * config/arm/linux-eabi.h (CC1_SPEC): Use
9459         GNU_USER_TARGET_CC1_SPEC.
9460         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
9461         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
9462         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
9463         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
9464         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
9465         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
9466         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
9467         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
9468
9469 2011-01-12  Richard Guenther  <rguenther@suse.de>
9470
9471         PR other/46946
9472         * doc/invoke.texi (ffast-math): Document it is turned on
9473         with -Ofast.
9474
9475 2011-01-12  Jan Hubicka  <jh@suse.cz>
9476
9477         PR tree-optimization/47233
9478         * opts.c (common_handle_option): Disable ipa-reference with profile
9479         feedback.
9480
9481 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9482
9483         * c-parser.c (c_parser_objc_at_property_declaration): Improved
9484         error message.
9485
9486 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9487
9488         * c-parser.c (c_lex_one_token): Updated and reindented some
9489         comments.  No changes in code.
9490
9491 2011-01-11  Ian Lance Taylor  <iant@google.com>
9492
9493         * godump.c (go_output_var): Don't output the variable if there is
9494         already a type with the same name.
9495
9496 2011-01-11  Ian Lance Taylor  <iant@google.com>
9497
9498         * godump.c (go_format_type): Don't generate float80.
9499
9500 2011-01-11  Richard Henderson  <rth@redhat.com>
9501
9502         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
9503         declaration.  Rewrite for both speed and size.
9504         (mn10300_address_cost_1): Remove.
9505         (mn10300_register_move_cost): New.
9506         (mn10300_memory_move_cost): New.
9507         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
9508         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
9509         extensions, shifts, BSWAP, CLZ.
9510         (mn10300_wide_const_load_uses_clr): Remove.
9511         (TARGET_REGISTER_MOVE_COST): New.
9512         (TARGET_MEMORY_MOVE_COST): New.
9513         * config/mn10300/mn10300-protos.h: Update.
9514         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
9515
9516         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
9517         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
9518         * config/mn10300/mn10300-protos.h: Update.
9519         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
9520         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
9521         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
9522         (*test_int_bitfield, *test_byte_bitfield): Remove.
9523         (*bit_test, *subreg_bit_test): Remove.
9524         * config/mn10300/predicates.md (const_8bit_operand): Remove.
9525
9526         * config/mn10300/constraints.md ("c"): Rename from "A".
9527         ("A", "D"): New constraint letters.
9528         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
9529         (fmssf4, fnmasf4, fnmssf4): Likewise.
9530
9531         * config/mn10300/mn10300.md (isa): New attribute.
9532         (enabled): New attribute.
9533
9534         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
9535         (abssf2, negsf2): Define only for hardware fp.
9536         (sqrtsf2): Reformat.
9537         (addsf3, subsf3, mulsf3): Merge expander and insn.
9538
9539         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
9540         (DEBUGGER_AUTO_OFFSET): Remove.
9541         (DEBUGGER_ARG_OFFSET): Remove.
9542
9543         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
9544         Emit register stores with the same offsets as the hardware.
9545         (mn10300_store_multiple_operation): Don't check that the register
9546         save offsets are monotonic.
9547         * config/mn10300/mn10300-protos.h: Update.
9548
9549         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
9550
9551         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
9552         in terms of the value on the stack, not the MDR register.
9553
9554 2011-01-11  Jan Hubicka  <jh@suse.cz>
9555
9556         PR lto/45721
9557         PR lto/45375
9558         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
9559         (symbol_alias_set_destroy, symbol_alias_set_contains,
9560         propagate_aliases_backward): Declare.
9561         * lto-streamer-out.c (struct sets): New sturcture.
9562         (trivally_defined_alias): New function.
9563         (output_alias_pair_p): Rewrite.
9564         (output_unreferenced_globals): Fix output of alias pairs.
9565         (produce_symtab): Likewise.
9566         * ipa.c (function_and_variable_visibility): Set weak alias destination
9567         as needed in lto.
9568         * varasm.c (symbol_alias_set_t): Remove.
9569         (symbol_alias_set_destroy): Export.
9570         (propagate_aliases_forward, propagate_aliases_backward): New functions
9571         based on ...
9572         (compute_visible_aliases): ... this one; remove.
9573         (trivially_visible_alias): New
9574         (trivially_defined_alias): New.
9575         (remove_unreachable_alias_pairs): Rewrite.
9576         (finish_aliases_1): Reorganize code checking if alias is defined.
9577         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
9578         in LTO mode.
9579
9580 2011-01-11  Richard Guenther  <rguenther@suse.de>
9581
9582         PR tree-optimization/46076
9583         * tree-ssa.c (useless_type_conversion_p): Conversions from
9584         unprototyped to empty argument list function types are useless.
9585
9586 2011-01-11  Richard Guenther  <rguenther@suse.de>
9587
9588         PR middle-end/45235
9589         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
9590         volatile MEMs as MEM_READONLY_P.
9591
9592 2011-01-11  Richard Guenther  <rguenther@suse.de>
9593
9594         PR tree-optimization/47239
9595         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
9596
9597 2011-01-11  Jeff Law  <law@redhat.com>
9598
9599         PR tree-optimization/47086
9600         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
9601         IVs from statements that might throw.
9602
9603 2011-01-10  Jan Hubicka  <jh@suse.cz>
9604
9605         PR lto/45375
9606         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
9607
9608 2011-01-10  Jan Hubicka  <jh@suse.cz>
9609
9610         PR lto/45375
9611         * profile.c (read_profile_edge_counts): Ignore profile inconistency
9612         when correcting profile.
9613
9614 2011-01-10  Jan Hubicka  <jh@suse.cz>
9615
9616         PR lto/46083
9617         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
9618         DECL_FINI_PRIORITY.
9619         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
9620         Restore DECL_FINI_PRIORITY.
9621
9622 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9623
9624         * doc/gimple.texi: Fix quoting of multi-word return values in
9625         @deftypefn statements.  Ensure presence of return value.  Wrap
9626         overlong @deftypefn lines.
9627         (is_gimple_operand, is_gimple_min_invariant_address): Remove
9628         descriptions of removed functions.
9629         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
9630         of multi-word return value in @deftypefn statement.
9631
9632 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9633
9634         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
9635         (Conditional Expressions, Logical Operators)
9636         (Statement and operand traversals): Do not indent smallexample
9637         code.  Fix duplicate function argument in example.
9638
9639 2011-01-10  Jeff Law  <law@redhat.com>
9640
9641         PR tree-optimization/47141
9642         * ipa-split.c (split_function): Handle case where we are
9643         returning a value and the return block has a virtual operand phi.
9644
9645 2011-01-10  Jan Hubicka  <jh@suse.cz>
9646
9647         PR tree-optimization/47234
9648         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
9649         (pass_feedback_split_functions): Declare.
9650         * passes.c (init_optimization_passes): Add ipa-split as subpass of
9651         tree-profile.
9652         * ipa-split.c (gate_split_functions): Update comments; disable
9653         split-functions for profile_arc_flag and branch_probabilities.
9654         (gate_feedback_split_functions): New function.
9655         (execute_feedback_split_functions): New function.
9656         (pass_feedback_split_functions): New global var.
9657
9658 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
9659
9660         PR lto/46760
9661         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
9662         calling gimple_call_set_cannot_inline.
9663
9664 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
9665
9666         * config/darwin-sections.def: Remove unused section.
9667
9668 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
9669
9670         PR c++/47218
9671         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
9672
9673 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
9674
9675         PR objc/47232
9676         * c-parser.c (c_parser_declaration_or_fndef): Improved
9677         error message.
9678
9679 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
9680
9681         * config/i386/winnt.c (i386_pe_start_function): Make sure
9682         to switch back to function's section.
9683
9684 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
9685
9686         PR gcc/46902
9687         PR testsuite/46912
9688         * plugin.c: Move include of dlfcn.h from here...
9689         * system.h: ... to here.
9690
9691 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9692
9693         * doc/cpp.texi (C++ Named Operators): Fix markup for header
9694         file name.
9695         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
9696         two extra empty pages in PDF output.
9697
9698 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
9699
9700         PR objc/47078
9701         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
9702         for error recovery purposes behave as if it was not specified so
9703         that the default type is usd.
9704
9705 2011-01-07  Jan Hubicka  <jh@suse.cz>
9706
9707         PR tree-optmization/46469
9708         * ipa.c (function_and_variable_visibility): Clear needed flags on
9709         nodes with external decls; handle weakrefs merging correctly.
9710
9711 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
9712
9713         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
9714         not false.
9715
9716 2011-01-07  Jan Hubicka  <jh@suse.cz>
9717
9718         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
9719         and no longer claim that gold is required for linker plugin.
9720         * configure: Regenerate.
9721         * gcc.c (PLUGIN_COND): New macro.
9722         (LINK_COMMAND_SPEC): Use it.
9723         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
9724         * config.in (HAVE_LTO_PLUGIN): New.
9725         * configure.ac (--with-lto-plugin): New parameter; autodetect
9726         HAVE_LTO_PLUGIN.
9727
9728 2011-01-07  Jan Hubicka  <jh@suse.cz>
9729
9730         PR tree-optimization/46367
9731         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
9732         when we can update original.
9733         (cgraph_mark_inline_edge): Sanity check.
9734         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
9735
9736 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9737
9738         * config/spu/spu.h (ASM_COMMENT_START): Define.
9739
9740 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9741
9742         PR driver/42445
9743         * gcc.c (%>S): New.
9744         (SWITCH_KEEP_FOR_GCC): Likewise.
9745         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
9746         (do_spec_1): Handle "%>".
9747
9748         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
9749
9750 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
9751
9752         PR target/47201
9753         * config/i386/i386.c (ix86_delegitimize_address): If
9754         simplify_gen_subreg fails, return orig_x.
9755
9756         PR bootstrap/47187
9757         * value-prof.c (gimple_stringop_fixed_value): Handle
9758         lhs of the call properly.
9759
9760 2011-01-07  Jan Hubicka  <jh@suse.cz>
9761
9762         PR lto/45375
9763         * lto-opt.c (lto_reissue_options): Set flag_shlib.
9764
9765 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9766
9767         * target.def (function_switched_text_sections): New hook.
9768         * doc/tm.texi: Regenerated.
9769         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9770         * final.c (default_function_switched_text_sections): New.
9771         (final_scan_insn): Call function_switched_text_sections when a
9772         mid-function section change occurs.
9773         * output.h (default_function_switched_text_sections): Declare.
9774         * config/darwin-protos.h (darwin_function_switched_text_sections):
9775         Likewise.
9776         * config/darwin.c (darwin_function_switched_text_sections): New.
9777         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9778
9779 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9780
9781         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
9782         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
9783         the secondary code fragment when outputting for DWARF == 2.
9784
9785 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
9786
9787         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9788         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
9789         Remove.
9790         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
9791         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9792
9793 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9794
9795         PR debug/46704
9796         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
9797         when it is not empty.
9798
9799 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
9800
9801         Bobcat Enablement
9802         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
9803         (case ${target}): Add btver1.
9804         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9805         -march=native recognize btver1 processors.
9806         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9807         btver1 def_and_undef
9808         * config/i386/i386.c (struct processor_costs btver1_cost): New
9809         btver1 cost table.
9810         (m_BTVER1): New definition.
9811         (m_AMD_MULTIPLE): Includes m_BTVER1.
9812         (initial_ix86_tune_features): Add btver1 tune.
9813         (processor_target_table): Add btver1 entry.
9814         (static const char *const cpu_names): Add btver1 entry.
9815         (software_prefetching_beneficial_p): Add btver1.
9816         (ix86_option_override_internal): Add btver1 instruction sets.
9817         (ix86_issue_rate): Add btver1.
9818         (ix86_adjust_cost): Add btver1.
9819         * config/i386/i386.h (TARGET_BTVER1): New definition.
9820         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
9821         (enum processor_type): Add PROCESSOR_BTVER1.
9822         * config/i386/i386.md (define_attr "cpu"): Add btver1.
9823
9824 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9825
9826         PR target/43309
9827         * config/i386/i386.c (legitimize_tls_address)
9828         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
9829         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
9830         (tls_initial_exec_64_sun): New pattern.
9831
9832 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
9833
9834         * doc/invoke.texi (Overall Options): Improve wording and markup
9835         of the description of -wrapper.
9836
9837 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9838
9839         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
9840         rdynamic, threads): New Driver options.
9841
9842 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9843
9844         PR target/38118
9845         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
9846         if coming from .tdata.
9847         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9848
9849 2011-01-06  Jan Hubicka  <jh@suse.cz>
9850
9851         PR lto/47188
9852         * collect2.c (main): Do not enable LTOmode when plugin is active.
9853
9854 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9855
9856         PR other/45915
9857         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
9858         --version output if supported.
9859         * configure: Regenerate.
9860
9861 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9862
9863         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
9864         Driver options.
9865
9866 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
9867
9868         PR c/47150
9869         * c-convert.c (convert): When converting a complex expression
9870         other than COMPLEX_EXPR to a different complex type, ensure
9871         c_save_expr is called instead of save_expr, unless in_late_binary_op.
9872         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
9873         when converting COMPLEX_TYPE.
9874
9875 2011-01-06  Ira Rosen  <irar@il.ibm.com>
9876
9877         PR tree-optimization/47139
9878         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
9879         only the last reduction value is used outside the loop.  Update
9880         documentation.
9881
9882 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
9883
9884         * config/rtems.opt: New.
9885         * config.gcc (*-*-rtems*): Use rtems.opt.
9886
9887 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
9888
9889         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
9890         processors do not support 3DNow instructions.
9891
9892 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9893
9894         * config/spu/spu.c (spu_option_override): Set parameter
9895         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
9896
9897 2011-01-05  Jan Hubicka  <jh@suse.cz>
9898
9899         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
9900         at the command line.
9901
9902 2011-01-05  Martin Jambor  <mjambor@suse.cz>
9903
9904         PR lto/47162
9905         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
9906         deltas on streamed outgoing edges.
9907         (output_node_opt_summary): Output info for outgoing edges only when
9908         the node is in new parameter set.
9909         (output_cgraph_opt_summary): New parameter set, passed to the two
9910         aforementioned functions.  Update its forward declaration and its
9911         callee too.
9912
9913 2011-01-05  Tom Tromey  <tromey@redhat.com>
9914
9915         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
9916         operator to c_finish_omp_atomic.
9917         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
9918         (build_unary_op): Update.
9919         (build_modify_expr): Update.
9920         (build_asm_expr): Update.
9921
9922 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9923
9924         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
9925         newly inserted insns.
9926         (pad_bb): Likewise.
9927         (spu_emit_branch_hint): Likewise.
9928         (insert_hbrp_for_ilb_runout): Likewise.
9929         (spu_machine_dependent_reorg): Call df_finish_pass after
9930         schedule_insns returns.
9931
9932 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9933
9934         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
9935
9936 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
9937
9938         PR tree-optimization/47005
9939         * tree-sra.c (struct access): Add 'non_addressable' bit.
9940         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
9941         (decide_one_param_reduction): Return 0 if the parameter is passed by
9942         reference and one of the accesses in the group is non_addressable.
9943
9944 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9945
9946         PR tree-optimization/47056
9947         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
9948         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
9949         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
9950
9951 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9952
9953         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
9954         initializer.  Skip view conversions from aggregate types.
9955
9956 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
9957
9958         PR bootstrap/47055
9959         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
9960
9961 2011-01-04  Philipp Thomas  <pth@suse.de>
9962
9963         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
9964         obvious typo.
9965
9966 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9967
9968         * function.c (thread_prologue_and_epilogue_insns): Do not crash
9969         on empty epilogue sequences.
9970
9971 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
9972
9973         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
9974         non-static): New Driver options.
9975
9976 2011-01-04  Jie Zhang  <jie@codesourcery.com>
9977
9978         PR driver/47137
9979         * gcc.c (default_compilers[]): Set combinable field to 0
9980         for all assembly languages.
9981
9982 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
9983
9984         * config/mips/loongson3a.md: New file.
9985         * config/mips/mips.md: Include loongson3a.md.
9986         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
9987         TUNE_LOONGSON_3A.
9988
9989 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
9990
9991         PR middle-end/47017
9992         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
9993         instead of convert_memory_address_addr_space on the base expression.
9994
9995 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9996
9997         * config/spu/spu.c (spu_option_override): Update error text
9998         for bad -march= / -mtune= values.
9999
10000 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10001
10002         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
10003         if branch-hint optimization will be performed.
10004
10005 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10006
10007         PR tree-optimization/47148
10008         * ipa-split.c (split_function): Convert arguments to
10009         DECL_ARG_TYPE if possible.
10010
10011         PR tree-optimization/47155
10012         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
10013         when computing uns.
10014
10015         PR rtl-optimization/47157
10016         * combine.c (try_combine): If undobuf.other_insn becomes
10017         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
10018         and set *new_direct_jump_p too.
10019
10020 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10021
10022         PR tree-optimization/47021
10023         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
10024
10025 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10026
10027         * gcc.c (process_command): Update copyright notice dates.
10028         * gcov.c (print_version): Likewise.
10029         * gcov-dump.c (print_version): Likewise.
10030         * mips-tfile.c (main): Likewise.
10031         * mips-tdump.c (main): Likewise.
10032
10033 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10034
10035         PR tree-optimization/46801
10036         * tree-sra.c (type_internals_preclude_sra_p): Check whether
10037         aggregate fields start at byte boundary instead of the bit-field flag.
10038
10039 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10040
10041         PR driver/47137
10042         * gcc.c (main): Revert revision 168407.
10043
10044 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10045
10046         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
10047
10048 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10049
10050         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
10051         vector optab to expand vector/scalar shift, update gimple to vector.
10052
10053 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10054
10055         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
10056         a thunk.
10057
10058 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10059
10060         PR tree-optimization/46984
10061         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
10062         HOST_WIDE_INT.
10063         (cgraph_create_indirect_edge): Fixed line length.
10064         (cgraph_indirect_call_info): Declare.
10065         (cgraph_make_edge_direct) Update declaration.
10066         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
10067         (cgraph_create_indirect_edge): Use it.
10068         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
10069         callees.
10070         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
10071         the new thunk_delta representation.
10072         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
10073         HOST_WIDE_INT.
10074         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
10075         (ipa_read_indirect_edge_info): Likewise.
10076         * lto-cgraph.c (output_edge_opt_summary): New function.
10077         (output_node_opt_summary): Call it on all outgoing edges.
10078         (input_edge_opt_summary): New function.
10079         (input_node_opt_summary): Call it on all outgoing edges.
10080
10081 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
10082
10083         PR driver/47137
10084         * gcc.c (main): Don't check have_o when settting combine_inputs.
10085
10086 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
10087
10088         * regrename.c: Add general comment describing the pass.
10089         (struct du_head): Remove 'length' field.
10090         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
10091         (regrename_optimize): Do not sort chains.  Rework comments, add others.
10092         Force renaming to the preferred class (if any) in the first pass and do
10093         not consider registers that belong to it in the second pass.
10094         (create_new_chain): Do not set 'length' field.
10095         (scan_rtx_reg): Likewise.
10096
10097 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
10098
10099         PR tree-optimization/47140
10100         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
10101         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
10102         to bit_value_binop.
10103
10104         PR rtl-optimization/47028
10105         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
10106         parm_birth_insn instead of at the beginning of first bb.
10107
10108 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
10109
10110         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
10111         Remove the word "see" before "@pxref".
10112         * doc/rtl.texi: Remove the word "see" before "@pxref".
10113
10114 2011-01-01  Jan Hubicka  <jh@suse.cz>
10115
10116         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
10117         memory.
10118
10119 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
10120
10121         PR target/38662
10122         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
10123
10124 \f
10125 Copyright (C) 2011 Free Software Foundation, Inc.
10126
10127 Copying and distribution of this file, with or without modification,
10128 are permitted in any medium without royalty provided the copyright
10129 notice and this notice are preserved.