OSDN Git Service

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