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