OSDN Git Service

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