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